ThinkPad X250 の CPU ファンがうるさいので回転数を制御してみる (Windows・Ubuntu 両方)
M.2 SSD に Windows 10 Pro、SATA SSD に Ubuntu 18.04 がインストールされている、物理的に分断されたデュアルブート環境の ThinkPad X250 君。
この個体の前に買った1台目の X250 は CPU が Core i5 だったためか、さほど CPU ファンの音は気にならなかったのだが、この2台目 X250 は Core i7 なためか、CPU ファンがやたらと回る。
ファンの音が結構うるさいので、回転数を制御して静音化できないか調べてみた。
目次
Windows での対応法 : TPFanControl を使う
Windows で ThinkPad の CPU ファンを制御するには、TPFanControl というフリーソフトが使いやすい。
どうも既に開発が終了しているっぽいが、v0.62 (tpfc_v062.zip
) をインストールしたらちゃんと動いた。
↑上のページから最新版をダウンロードし、インストールすれば使える。
最初イマイチ使い方が分からなかったのだが、標準で選択されている Smart モードは、.ini
ファイルで閾値を詳細に設定できる。内容は以下の日本語訳が参考になるかと。
Manual モードは、0 〜 7 の8段階でファンの回転数を制御できる。ただし、既に CPU 温度が閾値以上に高い状態だと、自動的に Smart モードに切り替わってファンが回り出す。
コレを使って CPU 温度を見てみると、ちょっとブラウジングしているだけで90度超え、いくつかタブを開いたりするとすぐに98度前後まで上昇していたので、CPU ファンを回転させないようにするのはちょっと怖いかな、と思った。何でこんな冷却性能悪いんだ…?
- 参考 : TPFanControl (TPFC)でThinkPadのファンを静音にする話 - popup mlv
- 参考 : ThinkPadな日々 ファン調整ソフト / TPFanControl
- 参考 : ThinkPad ファンを手動制御できるソフトウェアを導入してみた - 元「なんでもエンジニ屋」のダメ日記
- 参考 : Thinkpad Fan Controller (tpfancontrol) download | SourceForge.net
Ubuntu での対応法 : thinkpad_acpi
と thinkfan
コマンドを使う
ThinkPad に Linux をインストールすると、thinkpad_acpi
というカーネルモジュールがインストールされていて、コイツで CPU ファンの回転数を制御できるようだ。
まずはコイツを有効にするため、以下のファイルを作成し、fan_control=1
と書いて機能を有効化する。
$ sudo vi /etc/modprobe.d/thinkpad_acpi.conf
# 次の1行を書く
options thinkpad_acpi fan_control=1
設定後、次の擬似ファイルを見ると CPU の様子が分かる。
$ cat /proc/acpi/ibm/fan
この擬似ファイルに対して level
を書き込むと、ファンの回転数を指定したレベルに設定できる。
# 0 (ファン停止) 〜 7 (高速) の8段階
$ echo level 0 | sudo tee /proc/acpi/ibm/fan
$ echo level 7 | sudo tee /proc/acpi/ibm/fan
# 自動
$ echo level auto | sudo tee /proc/acpi/ibm/fan
コレで手動操作できるようになった。続いて、CPU 温度に合わせてファンの回転数を自動操作するために、thinkfan
というデーモンをインストールする。
$ sudo apt install -y lm-sensors thinkfan
# センサー類をファイルに記録する
# 以下のコマンドを実行後、質問にひたすら Enter で答えていく
$ sudo sensors-detect
# …中略…
# 最後に以下の質問が出たら「yes」と入力して終える
Do you want to add these lines automatically to /etc/modules? (yes/NO)yes
Successful!
# 後略…
# 以下を見て、`coretemp` の文字が記録されていれば良い
$ cat /etc/modules
# 次のコマンドで CPU 温度などが分かる
$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +49.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +48.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +47.0°C (high = +105.0°C, crit = +105.0°C)
# 以下でデバイス認識を確認できる
$ sudo find /sys/devices -type f -name 'temp*_input' | sort
/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp1_input
/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp2_input
/sys/devices/platform/coretemp.0/hwmon/hwmon4/temp3_input
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon6/temp1_input
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon6/temp2_input
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon6/temp3_input
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon6/temp4_input
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon6/temp5_input
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon6/temp6_input
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon6/temp7_input
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon6/temp8_input
/sys/devices/virtual/thermal/thermal_zone0/hwmon1/temp1_input
/sys/devices/virtual/thermal/thermal_zone1/hwmon5/temp1_input
/sys/devices/virtual/thermal/thermal_zone2/hwmon7/temp1_input
# thinkfan の閾値は以下で設定できる
$ sudo vi /etc/thinkfan.conf
# 手動で起動する場合
$ sudo thinkfan -n
# サービスとして起動しておく
$ sudo systemctl enable thinkfan
$ sudo systemctl start thinkfan
# ステータス確認。こんな感じ
$ sudo systemctl status thinkfan
● thinkfan.service - simple and lightweight fan control program
Loaded: loaded (/lib/systemd/system/thinkfan.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-03-31 00:12:27 JST; 1min 0s ago
Process: 6451 ExecStart=/usr/sbin/thinkfan $DAEMON_ARGS (code=exited, status=0/SUCCESS)
Main PID: 6452 (thinkfan)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/thinkfan.service
└─6452 /usr/sbin/thinkfan -q
3月 31 00:12:27 Neos-ThinkPad systemd[1]: Starting simple and lightweight fan control program...
3月 31 00:12:27 Neos-ThinkPad thinkfan[6451]: thinkfan 0.9.1 starting...
3月 31 00:12:27 Neos-ThinkPad thinkfan[6451]: WARNING: Using default fan control in /proc/acpi/ibm/fan.
3月 31 00:12:27 Neos-ThinkPad thinkfan[6451]: WARNING: Using default temperature inputs in /proc/acpi/ibm/thermal.
3月 31 00:12:27 Neos-ThinkPad thinkfan[6451]: WARNING: You're using simple temperature limits without correction values, and your fan will only start at 55 °C. This can be dangerous for your hard drive.
3月 31 00:12:27 Neos-ThinkPad systemd[1]: Started simple and lightweight fan control program.
コレで設定自体はおけおけ。
Ubuntu で見ると、CPU 温度が50度程度で済んでいるように見える。CPU ファンの回転も、Windows よりは大人しい。温度計測が間違っているのか、ホントに温度が違ってるのか…?よく分からない。ただ、動作は Windows よりも Ubuntu の方が快適なので、Ubuntu 使用時の CPU ファンの動作には問題はないと思っている。
- 参考 : ThinkPad X1 Ubuntu GnomeでCPUファンをコントロール | BOOLEE STREET.net
- 参考 : thinkfan - とりあえず暇だったし何となくはじめたブログ
- 参考 : Ubuntu 11.10 on ThinkPad X220 でファン制御 - アーキテクチャをスマートに。
以上
以上の方法で、Windows でも Linux でも、CPU ファンの回転数が制御できて、静音化できるようにはなった。
Ubuntu の時は温度が低く見えるが、Windows 10 Pro だと普段から CPU 温度が90度近くなっているみたいなので、物理的な問題よね。どうしたものか…。