Difference between revisions of "Problem with fan noise"

From ThinkWiki
Jump to: navigation, search
(wikilink)
(Always on problem:: - reorg)
Line 82: Line 82:
 
===Always on problem:===
 
===Always on problem:===
  
 +
====Reducing power consumption====
 
Generally, this problem is triggered by heating due to high power consumption. See [[How to reduce power consumption]].
 
Generally, this problem is triggered by heating due to high power consumption. See [[How to reduce power consumption]].
 
  
 
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.
 
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.
 
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).
 
  
 
I can confirm that on my R51, the graphics card seems to be the problem.  The fan keeps running most of the time even with AC on, but even though I activated DynamicClocks (with the radeon driver), I can see in /proc/acpi/ibm/thermal that the GPU (4th value) is at 52-53°.  The fan stops running as soon as the temperature gets down to 50 degrees and starts again at 53.  While debugging, I seemed(!) to be able to reduce the temperature together with the resolution (e.g. "xrandr -s 2" to get from 1400x1050 to 1024x768) or by switching off the graphics with "xset dpms force off".  The bottom line is that the below "partial fix" won't work because the GPU temperature is the problem.
 
I can confirm that on my R51, the graphics card seems to be the problem.  The fan keeps running most of the time even with AC on, but even though I activated DynamicClocks (with the radeon driver), I can see in /proc/acpi/ibm/thermal that the GPU (4th value) is at 52-53°.  The fan stops running as soon as the temperature gets down to 50 degrees and starts again at 53.  While debugging, I seemed(!) to be able to reduce the temperature together with the resolution (e.g. "xrandr -s 2" to get from 1400x1050 to 1024x768) or by switching off the graphics with "xset dpms force off".  The bottom line is that the below "partial fix" won't work because the GPU temperature is the problem.
Line 98: Line 96:
  
 
In regard to the technical side of controlling the fan, see [[patch for controlling fan speed]] for a description of the embedded controller byte at offset 0x2F which controls the fan activity (T4X series and other later models).  In addition to these in the discussion to this topic [http://www.thinkwiki.org/wiki/Talk:Problem_with_fan_noise] a user observed hidden temperature sensors.  In the ACPI DSDT dump a {{T43}} reports 8 temp values at offset 0x78 (some of which may be off and yield a constant value of 0x80), but there are at least three more values at offset 0xC0 which from observation seem to show temperatures as well.  One of these sensors (0xC1) is most likely in the area of the mini PCI slot (related to WLAN activity) and seem to trigger the fan at 43°C ({{T43}}, Windows XP).  Another one (0xC2) seems to be located below the power supply (rear left, in the area under the Esc, F1-F3 keys).  This one noticeably increases when the battery is charged.  Both, the 0xC1 and 0xC2 react quite slowly to fan activity.
 
In regard to the technical side of controlling the fan, see [[patch for controlling fan speed]] for a description of the embedded controller byte at offset 0x2F which controls the fan activity (T4X series and other later models).  In addition to these in the discussion to this topic [http://www.thinkwiki.org/wiki/Talk:Problem_with_fan_noise] a user observed hidden temperature sensors.  In the ACPI DSDT dump a {{T43}} reports 8 temp values at offset 0x78 (some of which may be off and yield a constant value of 0x80), but there are at least three more values at offset 0xC0 which from observation seem to show temperatures as well.  One of these sensors (0xC1) is most likely in the area of the mini PCI slot (related to WLAN activity) and seem to trigger the fan at 43°C ({{T43}}, Windows XP).  Another one (0xC2) seems to be located below the power supply (rear left, in the area under the Esc, F1-F3 keys).  This one noticeably increases when the battery is charged.  Both, the 0xC1 and 0xC2 react quite slowly to fan activity.
 
An extensive forum discussion of this problem for the ThinkPad {{T43}}/{{T43p}}, and possible hardware mods for thermal enhancement, appear [http://forum.thinkpads.com/viewtopic.php?t=14580http://forum.thinkpads.com/viewtopic.php?t=14580 here].  There users who had opened the machine reported uncooled Northbridge and Southbrige chips, having no physical connectino to the heat pipe.  Building a hardware copper bridge to these did change the temperature characteristics but did not cure the "always on" problem.  In an other discussion on that forum a user said that amongh other areas the WLAN chip may be responsible for generating extra heat and that disabling WLAN (among other unused devices) may help. 
 
  
 
For more information about the thermal sensors that are monitored to decide the fan speed, see [[Thermal sensors]].
 
For more information about the thermal sensors that are monitored to decide the fan speed, see [[Thermal sensors]].
  
====Partial fix====
+
====Software solution - Linux====
 
{{WARN|This circumvents the BIOS fan control, so be careful and use at your own risk! Don't toast your ThinkPad.}}
 
{{WARN|This circumvents the BIOS fan control, so be careful and use at your own risk! Don't toast your ThinkPad.}}
  
 +
=====Automatic software fan control=====
 +
Under Linux, an [[ACPI fan control script#Variable speed control scripts|ACPI fan control script]] can thus be to override the firmware's fan algorithm with gentler, quieter version. It monitors the laptop's [[thermal sensors]] and sets the fan speed accordingly, according to customizable thresholds. For the default behavior, simply save the [[ACPI fan control script#Variable speed control scripts|script]] as {{path|tp-fancontrol}} and run<br />
 +
{{cmdroot|./tp-fancontrol}}
 +
 +
=====Manual software fan control=====
 
When loading [[ibm-acpi]] v0.11 with experimental switch ({{cmdroot|1=modprobe ibm_acpi experimental=1}}), it is possible to read and write the status of fan:
 
When loading [[ibm-acpi]] v0.11 with experimental switch ({{cmdroot|1=modprobe ibm_acpi experimental=1}}), it is possible to read and write the status of fan:
  
Line 124: Line 125:
 
On my T41 (gentoo-sources-2.6.11.11 ) I noticed that after unloading the fan module the fan noise stopped. With the module loaded the fan was working even at very low cpu temperatures, without the module it's ok so far.
 
On my T41 (gentoo-sources-2.6.11.11 ) I noticed that after unloading the fan module the fan noise stopped. With the module loaded the fan was working even at very low cpu temperatures, without the module it's ok so far.
  
====Improved partial fix====
+
Many (all?) recent models allow for fine control of fan speed. Manual control can be done through the [[patch for controlling fan speed]], or even just with [[ibm-acpi]] (see instructions in the former):
 
 
Some models allow for fine control of fan speed. Under Linux, an [[ACPI fan control script#Variable speed control scripts|ACPI fan control script]] can thus be used to override the firmware's fan algorithm with gentler version.
 
 
 
Manual control can be done through the [[patch for controlling fan speed]], or even just with [[ibm-acpi]] (see instructions in the former):
 
  
 
  '''#cat /proc/acpi/ibm/fan'''
 
  '''#cat /proc/acpi/ibm/fan'''
Line 146: Line 143:
 
                 (<level> is 0-7, auto or disengaged)
 
                 (<level> is 0-7, auto or disengaged)
  
====Windows fix====
+
The aforementioned [[ACPI fan control script#Variable speed control scripts|ACPI fan control script]] uses this, in combination with monitoring of the laptop's [[thermal sensors]].
 +
 
 +
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).
 +
 
 +
====Software solution - Windows====
  
 
Under Windows, Shimodax's ThinkPad fan control tool offers similar functionality (see [http://forum.thinkpads.com/viewtopic.php?t=17715 forum discussion] at thinkpads.com).  Source and binaries are available through the [https://sourceforge.net/projects/tp4xfancontrol/ "Tp4xFanFontrol"] project on SourceForge.
 
Under Windows, Shimodax's ThinkPad fan control tool offers similar functionality (see [http://forum.thinkpads.com/viewtopic.php?t=17715 forum discussion] at thinkpads.com).  Source and binaries are available through the [https://sourceforge.net/projects/tp4xfancontrol/ "Tp4xFanFontrol"] project on SourceForge.
Line 155: Line 156:
  
 
After you clean things up, power on your ThinkPad. You should hear the fan start up for a bit when booting. If it does not, this means that the cleaning procedure has actually blocked the fan and your computer will overheat at some point (BIOS POST test does not appear to catch obstructed fans). Keep cleaning.
 
After you clean things up, power on your ThinkPad. You should hear the fan start up for a bit when booting. If it does not, this means that the cleaning procedure has actually blocked the fan and your computer will overheat at some point (BIOS POST test does not appear to catch obstructed fans). Keep cleaning.
 +
 +
====Hardware modification====
 +
An extensive forum discussion of this problem for the ThinkPad {{T43}}/{{T43p}}, and possible hardware mods for thermal enhancement, appear [http://forum.thinkpads.com/viewtopic.php?t=14580http://forum.thinkpads.com/viewtopic.php?t=14580 here].  There users who had opened the machine reported uncooled Northbridge and Southbrige chips, having no physical connectino to the heat pipe.  Building a hardware copper bridge to these did change the temperature characteristics but did not cure the "always on" problem.  In an other discussion on that forum a user said that amongh other areas the WLAN chip may be responsible for generating extra heat and that disabling WLAN (among other unused devices) may help.

Revision as of 16:22, 10 December 2005

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

Problem description

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

Acceleration (pulsing) problem:

The Thinkpad fan briefly accelerates in regular intervals every few seconds, causing an annoying periodic pulse noise.

See here for audio recordings of this noise on ThinkPad R50 and R51.

Always-on problem:

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

Affected Models

Acceleration (pulsing) problem:

Always-on problem:

Affected Operating Systems

Acceleration (pulsing) problem:

  • Linux, all flavours

Always-on problem:

  • Linux, all flavours
  • FreeBSD 5.3
  • OpenBSD 3.7 (Tested with X40)
  • Windows XP
  • Windows 2000 pro

Status

Acceleration (pulsing) problem:

The pulsing seems to be triggered by the embedded controller when it monitors the fan speed and adjusts the fan control accordingly every few seconds.

For some models, 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

For other models (e.g., ThinkPad T43), there is a software workaround (see below).

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


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

For relevant models, 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

Also, in late November 2005 IBM released a BIOS and embedded controller update (BIOS 1.24, EC 1.04) for the T43/p (Machine types 2668, 2669, 2678, 2679, 2686, 2687). Reported results are not consistent and range from cooler sensor readings (some sensors seem to report lower temperatures with this patch), less fan pulsing (also only reported by some users), and slightly different fan behaviour. The link to this update is: http://www-306.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&lndocid=MIGR-58597#bios

Software workaround

The problem can be solved through appropriate modulation of the embedded controller, using an ACPI fan control script.

Always on problem:

Reducing power consumption

Generally, this problem is triggered by heating due to high power consumption. See How to reduce power consumption.

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.

I can confirm that on my R51, the graphics card seems to be the problem. The fan keeps running most of the time even with AC on, but even though I activated DynamicClocks (with the radeon driver), I can see in /proc/acpi/ibm/thermal that the GPU (4th value) is at 52-53°. The fan stops running as soon as the temperature gets down to 50 degrees and starts again at 53. While debugging, I seemed(!) to be able to reduce the temperature together with the resolution (e.g. "xrandr -s 2" to get from 1400x1050 to 1024x768) or by switching off the graphics with "xset dpms force off". The bottom line is that the below "partial fix" won't work because the GPU temperature is the problem.

The GPU also seems to be the culprit on the t43p. Even with the fan always on (with speeds of around 4K reported in /proc/acpi/ibm/fan), the temperature never drops below 55. This is with the Xorg driver and DynamicClocks=on. With the ATI's fglrx driver, the GPU temp seems slightly higher (although I haven't performed a careful comparison). Without the fan, the temperature very quickly climbs to above 60.

With the Pentium M, CPU heat dissipation can be reduced through undervolting and underclocking.

In regard to the technical side of controlling the fan, see patch for controlling fan speed for a description of the embedded controller byte at offset 0x2F which controls the fan activity (T4X series and other later models). In addition to these in the discussion to this topic [1] a user observed hidden temperature sensors. In the ACPI DSDT dump a T43 reports 8 temp values at offset 0x78 (some of which may be off and yield a constant value of 0x80), but there are at least three more values at offset 0xC0 which from observation seem to show temperatures as well. One of these sensors (0xC1) is most likely in the area of the mini PCI slot (related to WLAN activity) and seem to trigger the fan at 43°C (T43, Windows XP). Another one (0xC2) seems to be located below the power supply (rear left, in the area under the Esc, F1-F3 keys). This one noticeably increases when the battery is charged. Both, the 0xC1 and 0xC2 react quite slowly to fan activity.

For more information about the thermal sensors that are monitored to decide the fan speed, see Thermal sensors.

Software solution - Linux

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

Under Linux, an ACPI fan control script can thus be to override the firmware's fan algorithm with gentler, quieter version. It monitors the laptop's thermal sensors and sets the fan speed accordingly, according to customizable thresholds. For the default behavior, simply save the script as tp-fancontrol and run
# ./tp-fancontrol

Manual software fan control

When loading ibm-acpi v0.11 with experimental switch (# modprobe ibm_acpi experimental=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.

On my T41 (gentoo-sources-2.6.11.11 ) I noticed that after unloading the fan module the fan noise stopped. With the module loaded the fan was working even at very low cpu temperatures, without the module it's ok so far.

Many (all?) recent models allow for fine control of fan speed. Manual control can be done through the patch for controlling fan speed, or even just with ibm-acpi (see instructions in the former):

#cat /proc/acpi/ibm/fan
status:         enabled
level:          auto
speed:          4219
commands:       enable, disable, level <level>
                (<level> is 0-7, auto or disengaged)

#echo level 2 > /proc/acpi/ibm/fan

#cat /proc/acpi/ibm/fan
status:         enabled
level:          2
speed:          3142
commands:       enable, disable, level <level>
                (<level> is 0-7, auto or disengaged)

The aforementioned ACPI fan control script uses this, in combination with monitoring of the laptop's thermal sensors.

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).

Software solution - Windows

Under Windows, Shimodax's ThinkPad fan control tool offers similar functionality (see forum discussion at thinkpads.com). Source and binaries are available through the "Tp4xFanFontrol" project on SourceForge.

Cleaning the fan

If your ThinkPad is old or has been exposed to dusty environment, it is possible that accumulated dirt on the fan and the heatsink cause abnormal behavior (though the problems have also been reported for brand new units). You can use a combination of a vacuum cleaner and an air dusting spray to clean things up from the outside. Bigger agglomerations of dust may require removing by tweezers through the openings in the fan grill. Getting to the fan itself from the inside is quite tricky and may require removing the LCD.

After you clean things up, power on your ThinkPad. You should hear the fan start up for a bit when booting. If it does not, this means that the cleaning procedure has actually blocked the fan and your computer will overheat at some point (BIOS POST test does not appear to catch obstructed fans). Keep cleaning.

Hardware modification

An extensive forum discussion of this problem for the ThinkPad T43/T43p, and possible hardware mods for thermal enhancement, appear here. There users who had opened the machine reported uncooled Northbridge and Southbrige chips, having no physical connectino to the heat pipe. Building a hardware copper bridge to these did change the temperature characteristics but did not cure the "always on" problem. In an other discussion on that forum a user said that amongh other areas the WLAN chip may be responsible for generating extra heat and that disabling WLAN (among other unused devices) may help.