To all my Thinkpad friends running Linux

Hello there!

A little tip that can really improve your battery life and give you peace of mind while working: Install thinkfan: A simple fan control program.

Installation

Here is how it goes on Ubuntu: Step zero is to become superuser ( sudo bash ). Then you install the thinkfan package.

~# apt-get install thinkfan

Once the package is installed, you can try running it as a normal process to see how it works:

~# thinkfan -n

It will most likely give you an error because fan_control=1 has not been set for the thinkpad_acpi module. You can enable fan control like this:

~# echo "options thinkpad_acpi fan_control=1" > /etc/modprobe.d/thinkfan.conf  
 ~# rmmod thinkpad_acpi  
~# modprobe thinkpad_acpi

In order to run thinkfan as an upstart script (actually rc.d), you should set START=yes in /etc/defaults/thinkfan.

~# nano -w /etc/default/thinkfan

Customizing

What thinkfan does is to turn the speed of your fan up and down according to the currently highest measured temperature of all your sensors. If you wish to see the temperature of your sensors, simply run:

~# sensors

If it does not exists, do sudo apt-get install sensors and notice that since the output does not tell you a lot about which sensor is which, you might want to customize /etc/sensors3.conf according to the configurations on ThinkWiki.

Now it's time to look in /etc/thinkfan.conf. Besides instructions, you'll see this matrix at the bottom:

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

The default settings are very safe, but if when running thinkfan, you get too much or too little fan activity, you can adjust the numbers. The first vector (0, 0, 55) says that whenever a sensor reaches 55C, the fan should step up one level. The second vector (1,48,60) says that if we are at level 1 and a sensor reaches down to 48C or below, we can step back to level 0, however if we reach 60C we should go to level 2 etc.

Please keep in mind that your hard drive temperatures are very important
, and that you can add a line that automatically adds a safety value to those more sensible temperatures. For instance, to ensure that thinkfan is responsive to sensor value 5, we can add this adjustment vector:

sensor /proc/acpi/ibm/thermal (0, 0, 0, 0, 0, 15, 0, 0, 0, 0)

To identify which sensor number your hard drive has, go to ThinkWiki or run Disk Utility (System->Administration->Disk Utility), click your hard drive and click SMART Data to see the temperature of your hard drive.

Troubleshooting

If you have problems:

  • Check that /proc/acpi/ibm/thermal exists, otherwise you might have to look for something else

  • If you run T420 (or some other model that uses the coretemp module), check out mejo's forum post.