ThinkPad A275のファン制御

ThinkPad A275のファン制御をDebian上で行う方法

4.9系のカーネルだと温度センサーの値を取得できなかったため、以下の内容はバージョン4.18.5のカーネルで確認。

センサー情報の取得

まずはセンサー情報を取得するためのパッケージをインストールする。カーネルのバージョンによってはハードウェアに対応できない可能性があるため注意。

$ sudo apt install lm-sensors
$ sensors
fam15h_power-pci-00c4
Adapter: PCI adapter
power1:       26.60 mW (avg =   6.52 mW, interval =   0.01 s)
                       (crit =  15.00 W)

thinkpad-isa-0000
Adapter: ISA adapter
fan1:        4300 RPM

amdgpu-pci-0008
Adapter: PCI adapter
vddgfx:       +3.00 V  
vddnb:            N/A  
fan1:             N/A
temp1:        +40.0°C  (crit =  +5.0°C, hyst = -273.1°C)
power1:           N/A  

k10temp-pci-00c3
Adapter: PCI adapter
temp1:         +0.0°C  (high = +70.0°C)
                       (crit = +100.0°C, hyst = +99.0°C)

温度情報をhwmonの値から確認するため、findでファイルを確認する。

# find /sys/devices -type f -name "temp*_input"
/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp1_input
/sys/devices/pci0000:00/0000:00:01.0/hwmon/hwmon3/temp1_input

確認できたtemp*_inputファイルの値(温度)を出力

# cat /sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp1_input
0
# cat /sys/devices/pci0000:00/0000:00:01.0/hwmon/hwmon3/temp1_input
46000

hwmon3のほうで値を確認できるので、この値を元にファンの速度を制御できるようにする。

ファン制御

ThinkPad用のファン制御ツール、thinkfanというパッケージをインストールする。

# apt install thinkfan
# vi /etc/modprobe.d/thinkfan.conf

confファイルに以下の内容を記述し、ファン制御を有効化する。

options thinkpad_acpi fan_control=1

ThinkFanを使わずファンの速度を制御したい場合、以下のコマンドでファンの回転数を変更できる。

# echo level 7 > /proc/acpi/ibm/fan
番号 速度
0 停止
2 低速(4900rpm)
4 中速(5800rpm)
7 高速
auto 自動
disengaged 最高速

また、/proc/acpi/ibm/fanの内容を出力すると、ファンの状態、設定を確認できる。

# cat /proc/acpi/ibm/fan
cat /proc/acpi/ibm/fan
status:		enabled
speed:		6200
level:		7
commands:	level <level> (<level> is 0-7, auto, disengaged, full-speed)
commands:	enable, disable
commands:	watchdog <timeout> (<timeout> is 0 (off), 1-120 (seconds))

温度に応じて回転数を変更するため、/etc/thinkfan.confを編集し、以下の内容を書き込む。温度の閾値によってどれくらいの回転速度にするかを設定する。

hwmon /sys/devices/pci0000:00/0000:00:01.0/hwmon/hwmon3/temp1_input

(0,     0,      55)
(1,     48,     60)
(2,     50,     61)
(3,     52,     63)
(4,     56,     65)
(5,     59,     66)
(7,     63,     32767)

最後にthinfanのサービスを開始する。設定を変更した後はrestartする。

# /etc/init.d/thinkfan start
# journalctl -xe

参考