Pages

Thursday, June 9, 2011

ThinkPad T420 thinkfan settings

Update Dec 16 2011: After upgrading the BIOS to 1.34 in October, the issue went away - the fan was spinning at about 3500 RPM which produces quite a bearable noise and an OK temperature. Unfortunately, the issue returned yesterday after installing the newest Ubuntu updates. So I'm back to using ThinkFan for now. I'm using new settings that seem to be closer to Lenovo's intention (based on observation during the time I used only the BIOS 1.34 and no ThinkFan):


(0, 0, 35)
(1, 33, 38)
(2, 36, 45)
(3, 39, 49)
(4, 46, 58)
(5, 50, 62)
(7, 56, 32767)

Also note that the sensors in thinkfan.conf now should be (Ubuntu 11.10):

sensor /sys/devices/platform/coretemp.0/temp1_input (0)
sensor /sys/devices/platform/coretemp.0/temp2_input (0)
sensor /sys/devices/platform/coretemp.0/temp3_input (0)
sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input (0)

(thanks for the comments)

Perhaps I should add that I'm using an external LCD which is attached to the laptop most of the time. Someone on Lenovo Forums points out that the expected temperature and thus fan speed is higher in such a case.



The new ThinkPad T420 series unfortunately suffers from loud fan problems. With the default settings it spins almost all the time and produces an uncomfortable high-pitched hair-dryer-like noise.

The Ubuntu forums provide a how-to for setting up the thinkfan utility that helps to manage a laptop's fans.  However, the default thinkfan temperature settings are too low for a T420, and even an alternative adjusted to a T420 that I found is a bit too low because of the loud fan problem. Given that the operating temperature of SandyBridge CPUs is up to 100C (85C is considered high) and given that SSDs work up to ~70C (at least the OCZ Vertex 3 Max IOPS), I decided to use the following settings:


(0, 0, 52)
(1, 46, 59)
(2, 54, 65)
(3, 58, 69)
(4, 62, 72)
(5, 65, 74)
(7, 68, 32767)


The file is /etc/thinkfan.conf. The syntax is (Level, Low, High). The rationale behind it is that the highest temperature will always be at the CPU (I don't have a discrete graphics card) so the SSD (and a HDD in the UltraBay) will be cooler and it is ok if the fan kicks in for a CPU temperature a bit higher than is the highest operating temperature of the SSD. Unfortunately, there is apparently no temperature sensor by the OCZ Vertex (hddtemp /dev/sda doesn't provide a reasonable temperature) and I did not find a way how to tell thinkfan to read the temperature of the HDD from its SMART values.

Another problem is that the thinkfan makes the fan jump on a too high level if the temperature rises too suddenly which seems to be the usual case (and normal) with the T420. Here the thinkfan "bias" value is  to blame. It is a multiplier in a formula that thinkfan uses to correct for the delay with which it reads temperatures and to deal with the fact that the temperature is likely rising after the read. The default bias is set to 5 which causes sudden jumps even to the max RPM level of the fan even though nothing is  really going on in the system. Setting it to 2 works better for me in normal use. You can set the bias in /etc/default/thinkfan:

# Additional startup parameters
DAEMON_ARGS="-q -b 2"
Use the settings on your own risk, I'm no expert in these matters.

(updated with a bit more conservative temperature settings)

9 comments:

AJ said...

thanks for this. experimenting with different temp setting for thinkfan.conf on my T410.

georges said...

Hi, also had to add

sensor /sys/devices/platform/coretemp.0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp2_input
sensor /sys/devices/platform/coretemp.0/temp3_input
sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input

To /etc/thinkfan.conf so that T420 thermal sensors are ok (Debian testing)

kiko said...

These are the correct sensor settings for Ubuntu 11.10 (kernel 3.0.0-13):

sensor /sys/devices/platform/coretemp.0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp2_input
sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input

Sudhir Khanger said...

Could you please explain DAEMON_ARGS argument? I am unable to find information about it and what it does specially what 5 or 2 means?

Thinkfan has recently upgraded to 0.8 alpha release and i was wondering if you have setup a complex config for it.

Sudhir Khanger said...

Could you please explain DAEMON_ARGS argument? I am unable to find information about it and what it does specially what 5 or 2 means?

Thinkfan has recently upgraded to 0.8 alpha release and i was wondering if you have setup a complex config for it.

Christopher Staerkel said...

Thanks! Your settings really make a difference on my T420 on Ubuntu 12.04

theone said...
This comment has been removed by the author.
theone said...

I'm also glad I found your settings. With these settings my T430s is quiet as it should.

spamatica said...

These things move around a bit it seems.

In (k)ubuntu 14.10beta2 I set the sensors to:
sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
sensor /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp2_input