Set fan speed by RPM on Thinkpad T420s in Linux

All we need is an easy explanation of the problem, so here it is.

The only interface I’ve found for setting the fan speed with the thinkpad-acpi module, is setting pre-defined levels, 0-7. Example:

sudo su -c 'echo "level 2" > /proc/acpi/ibm/fan'

I would like to set the fan speed by RPM and not by pre-defined levels. Level 2 is 2000 RPM, and level 3 is 3500 RPM. I would like my fan to run at about 2500-3000 RPM (at a certain temperature level, of course). Does a RPM based interface exist?

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

Seems that it’s dependent on the hardware’s firmware. As the README page says:

Most ThinkPad fans work in “levels” at the firmware interface. Level
0 stops the fan. The higher the level, the higher the fan speed,
although adjacent levels often map to the same fan speed. 7 is the
highest level, where the fan reaches the maximum recommended speed.

and

On the X31 and X40 (and ONLY on those models), the fan speed can be
controlled to a certain degree. Once the fan is running, it can be
forced to run faster or slower with the following command:

echo 'speed <speed>' > /proc/acpi/ibm/fan

Method 2

Thinkfan http://thinkfan.sourceforge.net/ seems to be commonly used (it’s mentioned a lot in the lenovo forums) whilst it’s not RPM based it does allow switching between the preset fan speed levels based on customisable temperatures.

Additional solutions are listed here:

Method 3

TPFancontrol supports fixed RPM:s, see TPFancontrol. It also supports variable fan RPM:s.
I have used it on three different Thinkpads (X61s, T400s, T410s) works great.

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply