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.
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.
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
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:
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 🙂