Vine LinuxでSpeedStepを使う

Last-modified: 2008-11-08 (土) 11:29:59 (3301d)

概要

Vine Linux 3.1をIntelのSpeed Step対応ノートパソコンで使う場合、AC電源とバッテリーで動作モードが変わるようになっている。AC電源の場合はFullスピードで動作しているため、本体が熱くなりファンが回りっぱなしになる。そこで、CPUの使用率によってCPUの動作周波数を変更するようにしてみた。 以下は、IBM Thinkpad X23(低電圧版モバイルPentium III-M 866MHz)の話。

設定手順

Speed Stepに対応しているか調べる。

$ cat /proc/cpufreq
          minimum CPU frequency  -  maximum CPU frequency  -  policy
CPU  0       532000 kHz ( 61 %)  -     864500 kHz (100 %)  -  performance

X23の場合、532Mhzと864.5Mhzの2種類がある。対応していない場合は、CPU 0が表示されない。

cpufreqdのインストール

# apt-get install cpufreqd
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
  cpufreqd
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 0 個
39.0kB のアーカイブを取得する必要があります。
展開後に 85.5kB のディスク容量が追加消費されます。
取得:1 http://updates.vinelinux.org 3.1/i386/main cpufreqd 1.1.2-0vl1 [39.0kB]
39.0kB を 0s 秒で取得しました (150kB/s)
変更を適用しています...
Preparing...                ########################################### [100%]
   1:cpufreqd               ########################################### [100%]
Shutting down CPU Frequency daemon: [FAILED]
Starting CPU Frequency daemon: [  OK  ]
完了

cpufreqd.confの編集

# vi /etc/cpufreqd.conf
[Profile]
name=perf				←負荷がかかっているときのProfile
minfreq=864500				←さっき調べた値を記述(%でもよい)
maxfreq=864500
policy=performance

[Profile]
name=idle				←アイドル時のProfile
minfreq=532000				←さっき調べた値を記述(%でもよい)
maxfreq=532000
policy=performance

# when AC use performance mode
[Rule]					←上のProfileを適用させるための条件を決める
name=AC_on
ac=on                    # (on/off)
cpu_interval=20-100			←CPU使用率が20-100%の時
profile=perf				←Profileをperfにする

[Rule]
name=AC_on_idle
ac=on                    # (on/off)
cpu_interval=0-20			←CPU使用率が0-20%の時
profile=idle				←Profileをidleにする

cpufreqdの再起動

# /etc/init.d/cpufreqd restart
CPU Frequency daemonを停止中:                              [  OK  ]
CPU Frequency daemonを起動中:                              [  OK  ]

確認

# cat /proc/sys/cpu/0/speed
532000

低くなってる。

CPUに負荷を与えると

# cat /proc/sys/cpu/0/speed
864500

となる。

Tips

CPUの情報を見たい

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 11
model name      : Intel(R) Pentium(R) III Mobile CPU       866MHz
stepping        : 1
cpu MHz         : 865.953
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips        : 1723.59

自分でCPUの周波数を変更したい

# echo -n "864500:864500:performance" > /proc/cpufreq
# cat /proc/sys/cpu/0/speed
864500

コメント