Problem with fan noise

From ThinkWiki
Revision as of 11:56, 28 May 2005 by 212.202.170.70 (Talk) (always on problem:)
Jump to: navigation, search

Information about the fan noise problem in Thinkpad models from 2003/2004.

Problem description

There seem to be two different occurances of the problem (or two different problems).

acceleration problem:

The Thinkpad Fan accelerates in regular intervals, making an annoying noise.

always on problem:

The Fan is always on, even though the processor is rather cool.

Affected Models

acceleration problem:

always on problem:

Affected Operating Systems

acceleration problem:

  • Linux, all flavours

always on problem:

  • Linux, all flavours
  • FreeBSD 5.3
  • Windows XP
  • Windows 2000 pro

Status

acceleration problem:

IBM released an update to the embedded controller program that seems to at least partially solve this problem:

Version 3.03 - 1RHT70WW
NOTE: This version of Embedded Controller Program will only work with BIOS Version 3.06f (or higher).
   * (Fix) Reduced Fan noise in some models.

The update can be found here: http://www-306.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-50279

always on problem:

The problem is yet unsolved. But see the partial fix below.

IBM made a statement regarding this on their homepage: http://www-307.ibm.com/pc/support/site.wss/MIGR-56504.html

It seems that it's a feature of centrino - http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2004-September/019737.html Perhaps it's fixable by adding the fans and temps to the dsdt?

== Update May 28, 2005 ==


It seems that IBM has decided to adjust temperature thresholds for fan activity at a very conservative level in order to make sure that the CPU will not be fried, under no circumstance.

As of version 0.11 of the IBM acpi support ([1]) the kernel module "ibm-acpi" can be loaded with the option "experimental=1" which in turn will give you /proc/acpi/ibm/thermal and /proc/acpi/ibm/fan

The latter one can be used to disable or enable the fan by 'echo disable > /proc/acpi/ibm/fan'.

WARNING: Using this method to control the fan activity disables BIOS control over the fans.

Once you disable the fan, it will stay disabled until you explicitly enable it by 'echo enable > /proc/acpi/ibm/fan'. Interestingly enough, dependent on the actual CPU temperature the fan speed will be regulated to the predefined speeds stored in the BIOS.

Make sure that you do understand the output of /proc/acpi/ibm/thermal by carefully reading the documentation: [2]

You can then design a tiny script that monitors the output of /proc/acpi/ibm/thermal with higher thresholds for both the CPU and the GPU.

WARNING: Do not try this if you don't know what you are doing! Disabling BIOS control over the fans without adequate control over ACPI may seriously damage your hardware, render your Thinkpad useless, burn down your house and will result in premature baldness.

Solutions

acceleration problem:

Replacing the fan

Some people reported that they replaced the original fan against one of a similar notebook without the problem has worked for them, i.e. changing a T41s fan against one from a T41p.

BIOS upgrade

You can try upgrading your embedded controller program to version 3.03 or newer.

The update can be found here: http://www-306.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-50279

always on problem:

It seems like for some people a combination of enabling dynamic frequency scaling and using the most recent radeon drivers (from xorg 6.8.x) with the DynamicClocks option enabled helped lowing the fan rotation and hence making it more quiet.

Also the fglrx driver from ATI is said to show the same effect when used together with dynamic frequency scaling.

On a 770X the fan can be fully controlled through ACPI. Thermal Zone THM5 (possibly the battery/charging circuit, it's definitely warmer when using 5v PCMCIA cards and AC) triggers it to turn on and not ever off by design. Can be solved by a custom DSDT, which also makes use of the variable-speed features of the fan (will release this once I've finished tweaking and testing it).

partial fix:

ATTENTION!
This circumvents the BIOS fan control, so be careful and use at your own risk! Don't toast your ThinkPad.

When loading ibm-acpi v0.11 with experimental switch (modprobe ibm_acpi experimantal=1), it is possible to read and write the status of fan:

#cat /proc/acpi/ibm/fan
status:         enabled
speed:          3580
commands:       enable, disable

#echo disable > /proc/acpi/ibm/fan

cat /proc/acpi/ibm/fan
status:         disabled
speed:          0
commands:       enable, disable

But the fan will then never wake up. So, we need a small script witch is constantly checking the temperature and setting the fan on/off when needed.