ThinkPad X220はすぐに熱くなってしまうため、できるだけCPU周波数を下げて温度が下がるようにしたい。 そのための調査メモ。
関連ページ: 自宅のX220についてのメモ - はとのーと
参考資料
CPU周波数ドライバーを調べる
cpupower frequency-info
コマンドで調べる。
$ cpupower frequency-info analyzing CPU 0: driver: intel_pstate CPUs which run at the same hardware frequency: 0 CPUs which need to have their frequency coordinated by software: 0 maximum transition latency: Cannot determine or is not supported. hardware limits: 800 MHz - 3.40 GHz available cpufreq governors: performance powersave current policy: frequency should be within 800 MHz and 2.70 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency: Unable to call hardware current CPU frequency: 1.60 GHz (asserted by call to kernel) boost state support: Supported: yes Active: yes 25500 MHz max turbo 4 active cores 25500 MHz max turbo 3 active cores 25500 MHz max turbo 2 active cores 25500 MHz max turbo 1 active cores
ドライバはintel_pstate
、ガバナーはpowersave
を使っている。
intel_pstateは以下によって設定できる。
- cpupowerコマンド
- /sys/devices/system/cpu/intel_pstateのファイル
intel_pstateを設定する
1. cpupowerコマンド
cpupower frequency-set コマンド 周波数
で周波数を指定する。
コマンド:
* -u
- 最大周波数を指定する
* -d
- 最小周波数を指定する
* -f
- 固定周波数を指定する
周波数は 2400MHz
、4GHz
のように単位を付けて指定する。
$ sudo cpupower frequency-set -u 3200MHz Setting cpu: 0 Setting cpu: 1 Setting cpu: 2 Setting cpu: 3
2. /sys/devices/system/cpu/intel_pstateのファイル
/sys/devices/system/cpu/intel_pstateにあるファイルを読み込むことで設定値が表示でき、書き込むことで動作を指定することができる。
ファイル:
- 書き込めるもの
- max_perf_pct - ドライバから要求される最大のP状態を制限する。パーセンテージ表示
- min_perf_pct - ドライバから要求される最小のP状態を制限する。パーセンテージ表示
- no_turbo - ターボブースト周波数範囲以下でP状態を選択するようにドライバを制限する
- 書き込めないもの
- turbo_pct - ターボブースト範囲にあるハードウェアがサポートするトータルパフォーマンスのパーセンテージ。no_turboの値の影響を受けない
- num_pstates - ハードウェアがサポートするP状態の数を表示する。no_turboの値の影響を受けない
- status - ドライバが使われているかを表示する。
off
またはactive
内容を一括表示するにはカレントディレクトリを/sys/devices/system/cpu/intel_pstateに変更したあとに次のように入力する。
$ for f in *; do echo $f "->" `cat $f`; done max_perf_pct -> 50 min_perf_pct -> 23 no_turbo -> 0 num_pstates -> 27 status -> active turbo_pct -> 27