How to: thinkpad_acpi and fan control on Arch
From the "this might help some random person" department - setting up manual Thinkpad fan control in Arch Linux.
Edit /etc/rc.conf. Add thinkpad_acpi to MODULES=() in the hardware section.
Create a new file enabling fan control as /etc/modprobe.d/thinkfan.conf:
options thinkpad_acpi fan_control=1
- Reload the thinkpad_acpi module:
sudo modprobe -r thinkpad_acpi && sudo modprobe thinkpad_acpi
To view the current fan speed:
[~]$ cat /proc/acpi/ibm/fan
status: enabled
speed: 2887
level: 4
commands: level ( is 0-7, auto, disengaged, full-speed)
commands: enable, disable
commands: watchdog ( is 0 (off), 1-120 (seconds))
To control fan speed:
# echo level 0 | sudo tee /proc/acpi/ibm/fan (fan off)
# echo level 2 | sudo tee /proc/acpi/ibm/fan (low speed)
# echo level 4 | sudo tee /proc/acpi/ibm/fan (medium speed)
# echo level 7 | sudo tee /proc/acpi/ibm/fan (maximum speed)
# echo level auto | sudo tee /proc/acpi/ibm/fan (automatic - default)
For easy control from the command line:
function fan() {
sensors
echo level $@ | sudo tee /proc/acpi/ibm/fan
}
Now you can run fan 2
to set the fan level to 2 and so on.
To view fan speed, install lm_sensors following the instructions on the Arch wiki. Example output:
[~]$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +37.0°C (crit = +99.0°C)
thinkpad-isa-0000
Adapter: ISA adapter
fan1: 2904 RPM
coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +39.0°C (high = +86.0°C, crit = +100.0°C)
Core 0: +37.0°C (high = +86.0°C, crit = +100.0°C)
Core 1: +37.0°C (high = +86.0°C, crit = +100.0°C)
Core 2: +35.0°C (high = +86.0°C, crit = +100.0°C)
Core 3: +39.0°C (high = +86.0°C, crit = +100.0°C)
Comments
Mateusz Loskot: Thanks for the quick and clear how-to. FYI, I used it in my response to one of thinkfan questions on the Arch forum: https://bbs.archlinux.org/viewtopic.php?pid=1112691#p1112691