Problem with fan noise

From ThinkWiki
Revision as of 16:07, 16 May 2007 by Audiofreak (Talk | contribs)

Jump to: navigation, search

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

Problem description

There seem to be two different issues causing annoyance from fan noise:

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 when the laptop is rather cool.

Affected Models

Acceleration (pulsing) problem:

Always-on problem:

Affected Operating Systems

Acceleration (pulsing) problem:

  • All operating systems (this is a firmware bug). Note that some vendors might ship with fan-control workarounds enabled by default.

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 is 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

Unfortunately, this update was not correctly ported to the Thinkpad T43 and R52 firmware: someone made a careless typo which generally results in no improvement in behaviour: the fan may continue to pulse every ~4.8s, and for some it may accelerate a great deal every 30 seconds or so, making a lot of noise. An unofficial patched firmware exists in source code format (see below).

For models which still have broken firmware (e.g., ThinkPad T43 with official firmware), 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/document.do?sitestyle=lenovo&lndocid=MIGR-56504

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

Fixing the firmware

For T43/R52 firmwares 1YHT29WW and 70HT28WW, a fix is available and known to work, but it is not easy to deploy. You have to know enough to modify the firmware yourself. The fix is in the firmware source code (but disabled by default), see Embedded Controller Firmware for some information to get you started. If you are not at ease programming microcontrollers, please stick to the software workarounds, there's a reason this fix is not just an easy download away.

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 How to control 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 - Windows

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

The ThinkPad Fan Control Utility (http://sourceforge.net/projects/tp4xfancontrol/) actively monitors the CPU Temperature and uses ACPI to manually control the fan speed. It was written for the T43, but works on a number of other models as well. A port of this programme running as a Windows service is available from http://www.cceye.com/index.php?topic=73.0 (download: http://www.cceye.com/index.php?action=dlattach;topic=73.0;id=9 ). Extensive discussion of this utility is available at http://forum.thinkpads.com/viewtopic.php?t=17715

The version which runs as a Windows service is recommended because the system will restart it if the programme crashes. A crash of either programme could leave your computer without any active cooling, leading to overheating and potentially serious damage.

ref links http://www.thinkwiki.org/wiki/Problem_with_fan_noise http://forum.thinkpads.com/viewtopic.php?t=17715

Note:

1 The Windows Event log will fill up with repeated errors regarding the Embedded Controller: please clean your event log regularly.
2 The programme may crash from time to time, but the service version should restart after a crash.

Software solution - Linux

See How to control fan speed.

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

I had this problem on my X24 by using a stock Debian Etch kernel. I solved it by compiling an unpatched kernel myself and leaving the fan module out. But I guess the fan module wasn't responsible for, because the fan started to run before modules were loaded.

Cleaning the fan or removing obstructions

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 keyboard or LCD - see Cleaning the Interior.

If the fan is especially noisy, there may be some obstruction other than dirt in the way. For instance, in some ThinkPad models, a wire that is not properly taped down can become draped over the CPU fan, slowing down fan rotation and emitting a loud buzzing sound. Moving such an obstruction out of the way can greatly decrease fan noise.

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.

If cleaning does not fix the problem, the fan can be replaced as described in your laptop's appropriate Hardware Maintenace Manual: select your laptop at the Models Page and follow the links. All that is generally required is some screwdrivers and heat sink thermal grease. Do NOT attempt to install without the silicon grease.

If you feel comfortable using a soldering iron, you are more than qualified to do the procedure. Just remember do NOT force anything, at several steps there are tiny plastic "tabs" that can break off necessiting a more expensive bezel / keyboard / GPU replacement.

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.


Hardware modification

I have made a modification that costed few pences and actually works! Basically my fan was going on and off as expected but when on at full speed=NOISY!!! (And I couldn't do anything via bios or software as the laptop is old...) This mods requires some soldering and general pc hardware knowledge!!! Do not try this if you are not confident 100%!!! Also I do not assume any responsibility regarding the below instructions. Please note that it is not easy to explain the mod in words, i will do my best to make it clear. The mod consists in adding diodes in series with the +5V fan cable... You must create a Y junction where the +5V coming from the mobo goes on one side of the Y passing thru 1x 1N5004 and a +5V coming from one usb port goes to the other side of the Y but this one passing thru 4x 1N5004 (The forward voltage drop gives you around 2.2V at the tip of the last diode of the series) The bottom point of the Y goes to the actual fan. What happens:

...the fan will receive a constant 2.2V (=constant low speed and low noise)from the usb 5V dropped by the 4 diodes

...if the mobo sends the higher tension to the fan (this in case the low speed isn't enough and the temp rises), the fan just accellerates to the speed according to the mobo then return to the low speed constant mode

...the 2 different voltages will not influence each other as the diodes let the current pass only one way, this is why same mod with resistors is dodgy...

My laptop is so cool with a minimal noise that the mobo never kicks in :) only during the test stage, i put the comp on my laps literally clogging the air intake and the mobo kicked in after 20 minutes just for 6 seconds, then i let the laptop breathe and the temp went down straight away and since then, the mobo has never kicked in again as i let my laptop breathe :)

I think constant and low air flux is way better than intermittent stuff, the temp is more stable and cpu cooler and not going hot and cold all the time.