WARNING: Before doing this bear in mind that if your laptop explodes in a cloud of molten plastic and silicon that I warned you and I take no responsibility… so don’t blame me ! 😉

A Friend of mine was running CentOS on a Thinkpad T43 (this should work on all though) and the fan was running but apparently not enough to stop the laptop dying after a hour or so. Sounds like a hardware issue, but nonetheless here’s a wee hack to get it to run in Maximum Fan Mode and so far has done the trick.

There is a kernel module in CentOS 5 called ibm_acpi, it needs to be loaded with experimental features, so easiest way to do this is to edit (or create, he didn’t have the file initially, so open in vi/nano etc.)


And add the line;

modprobe ibm_acpi experimental=1

This will load the module each time in experimental mode. Dont’ forget to

chmod +x /etc/rc.modules

If it didn’t exist as it’s a script that needs to be run so has to have execute permissions. Next use an editor to open up /etc/rc.local and add the following line to it;

echo 0x2F 0x40 > /proc/acpi/ibm/ecdump

When the laptop reboots it’ll load the ibm_acpi module creating a new directory in /proc containing special files, for instance the fan info file located at /proc/acpi/ibm/fan (you can cat this file and it’ll list the fans RPM and what mode it is in).

What the echo command we entered in ecdump does is switch the fan into “disengaged” mode, which basically tells it to not bother with auto sensing when it should turn on and run in full speed mode instead, which is around the 6000rpm mark as opposed to 3000rpm in normal mode. so in this new disengaged mode you’ll get something like this from using cat on /proc/acpi/ibm/fan

status:         disabled
speed:          6357
commands:       enable, disable

Yes it does say disabled but that’s it’s disengaged mode. If at any point you want to temporarily go back to auto just do the following;

echo 0x2F 0x80 > /proc/acpi/ibm/ecdump

And to permanently leave it in auto mode just remove that line from /etc/rc.local

Hope this helps someone out and it should be relativly simple to port to other distros. Bear in mind that after kernel 2.6.22 ibm_acpi no longer exists and totally new functionality has been built in a thinkpad module, but for more info best off looking on the thinkpad wiki site at:

ThinkPad Wiki

Edit To Add Other Mode Available:

#(fan off – DONT DO THIS !!)

echo 0x2F 0x00 > /proc/acpi/ibm/ecdump

#(low speed)

echo 0x2F 0x02 > /proc/acpi/ibm/ecdump

#(medium speed)

echo 0x2F 0x04 > /proc/acpi/ibm/ecdump

# (maximum speed)

echo 0x2F 0x07 > /proc/acpi/ibm/ecdump

#(automatic – default)

echo 0x2F 0x80 > /proc/acpi/ibm/ecdump


echo 0x2F 0x40 > /proc/acpi/ibm/ecdump