Sat Aug 7 12:20:32 EEST 2010

Controlling fan with Thinkfan on Lenovo Thinkpad R61 on Debian GNU/Linux (adjusting proper fan cycling)

Some time ago before I have blogged about How to properly control your Lenovo Thinkpad R61 fan rotation cycles on Linux with ThinkFan
In this tiny article I have explained my previous obstacles of making my Notebook CPU cooling fan to properly rotate and cool up my Central Processing Unit.

However just recently I've upgraded my Debian Unstable - Squeeze/Sid through the apt-get manager to the newest possible package updates.
The upgraded bundle of packages also updated my sid thinkfan package to:

hipo@noah:~$ dpkg -l |grep -i thinkfan
ii thinkfan 0.7.1-1 simple and lightweight fan control program


I was unpleasently suprised when I tried to restart thinkfan using the thinkfan init.d script I have used until recently /etc/init.d/thinkfan , cause /etc/init.d/thinkfan was no longer be.

Furthermore I give a try to directly launch the thinkfan daemon from the terminal trying to backround the service, like so:

noah:~# thinkfan &
WARNING: Using default temperature inputs in /proc/acpi/ibm/thermal.
WARNING: You have not provided any correction values for any sensor, and your fan will only start at 55 °C. This can be dangerous for your hard drive.


Though this started up the thinkfan daemon as you can see the note in the message below it started up with a consistent cycling cooling to keep the CPU wamrth sticked to 55 ° degrees:

WARNING: Using default temperature inputs in /proc/acpi/ibm/thermal.
WARNING: You have not provided any correction values for any sensor, and your fan will only start at 55 °C. This can be dangerous for your hard drive.


The message also indicated that the temperature values in in my recently hand crafted thinkfan.conf with custom temperature values does no longer comply to the thinkfan conf file syntax.

Therefore I had to change the obsolete thinkfan.conf file's values with a ones with which thinkfan wouldn't complain.

Thanksfully this wasn't such a hard job and in about 10 minutes time I have prepared the newer thinkfan.conf compatible with my Debian thinkfan 0.7.1-1 release.
The new working thinkfan.conf file can be obtained from here
It's necessary the old conf in /etc/thinkfan.conf is overwritten with the newer thinkfan.conf

Thereon a thinkfan daemon restart is required:

noah:~# killall -9 thinkfan
noah:~# rm -f /var/run/thinkfan.pid


Of course afterwards the daemon has to be started again :)
noah:~# /usr/sbin/thinkfan &


The proper thinkfan daemon start up with the new conf should return an output:

WARNING: Using default temperature inputs in /proc/acpi/ibm/thermal.
Config as read from /etc/thinkfan.conf:
Fan level Low High
0 0 40
1 40 42
2 42 44
3 44 46
4 46 48
5 48 50
6 50 54
7 54 32767
Daemon PID: 22085


I've also put on crontab that thinkfan is restarted every 30 minutes, just to make sure the daemon doesn't hang after a system restore from a hibernate state, this works generally well, if you want to follow my way add following in your root crontab.
,br /> noah:~# crontab -u root -e
Place there:

0,30 * * * * killall -HUP thinkfan


This is it, now thinkfan will be fine again :)