<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SebastianUrban</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SebastianUrban"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/SebastianUrban"/>
	<updated>2026-05-04T18:32:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_control_fan_speed&amp;diff=37242</id>
		<title>How to control fan speed</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_control_fan_speed&amp;diff=37242"/>
		<updated>2008-04-04T15:34:10Z</updated>

		<summary type="html">&lt;p&gt;SebastianUrban: new packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses methods for controlling the system fan.&lt;br /&gt;
&lt;br /&gt;
==For Linux==&lt;br /&gt;
===Using a patched kernel===&lt;br /&gt;
{{NOTE|The ibm-acpi driver is part of the Linux kernel 2.6.10 and later (option CONFIG_ACPI_IBM), so patching is not needed anymore.}}&lt;br /&gt;
{{WARN|This patch is superceded by the patches in [[ibm-acpi]] [[Git]] repository or [http://ibm-acpi.sourceforge.net ibm-acpi.sf.net] releases}}&lt;br /&gt;
{{NOTE|Advanced fan control through ibm-acpi has been merged in Linux 2.6.20-rc2 mainline, so users of 2.6.20 won't need to patch their kernels to get the '''fan level''' functionality anymore}}&lt;br /&gt;
&lt;br /&gt;
The [[Patch for controlling fan speed]] provides a convenient interface via {{path|/proc/acpi/ibm/fan}}.&lt;br /&gt;
&lt;br /&gt;
Manual speed control can be done through the [[patch for controlling fan speed]]:&lt;br /&gt;
&lt;br /&gt;
 '''#cat /proc/acpi/ibm/fan'''&lt;br /&gt;
 status:         enabled&lt;br /&gt;
 level:          auto&lt;br /&gt;
 speed:          4219&lt;br /&gt;
 commands:       enable, disable, level &amp;lt;level&amp;gt;&lt;br /&gt;
                 (&amp;lt;level&amp;gt; is 0-7, auto or disengaged)&lt;br /&gt;
 &lt;br /&gt;
 '''#echo level 2 &amp;gt; /proc/acpi/ibm/fan'''&lt;br /&gt;
 &lt;br /&gt;
 '''#cat /proc/acpi/ibm/fan'''&lt;br /&gt;
 status:         enabled&lt;br /&gt;
 level:          2&lt;br /&gt;
 speed:          3142&lt;br /&gt;
 commands:       enable, disable, level &amp;lt;level&amp;gt;&lt;br /&gt;
                 (&amp;lt;level&amp;gt; is 0-7, auto or disengaged)&lt;br /&gt;
&lt;br /&gt;
===Using a stock kernel===&lt;br /&gt;
&lt;br /&gt;
If you have the [[ibm-acpi]] module loaded with &amp;lt;tt&amp;gt;experimental=1&amp;lt;/tt&amp;gt;, you can control the fan without patching the kernel by directly writing to the relevant embedded controller register using {{path|/proc/acpi/ibm/ecdump}}. &lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|echo 0x2F 0x00 &amp;gt; /proc/acpi/ibm/ecdump}} (fan off)&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|echo 0x2F 0x02 &amp;gt; /proc/acpi/ibm/ecdump}} (low speed)&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|echo 0x2F 0x04 &amp;gt; /proc/acpi/ibm/ecdump}} (medium speed)&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|echo 0x2F 0x07 &amp;gt; /proc/acpi/ibm/ecdump}} (maximum speed)&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|echo 0x2F 0x80 &amp;gt; /proc/acpi/ibm/ecdump}} (automatic - default)&lt;br /&gt;
&lt;br /&gt;
{{cmdroot|echo 0x2F 0x40 &amp;gt; /proc/acpi/ibm/ecdump}} (disengaged)&lt;br /&gt;
&lt;br /&gt;
See the specifications below for the meaning of these modes.&lt;br /&gt;
&lt;br /&gt;
===On/off control using stock kernel===&lt;br /&gt;
&lt;br /&gt;
If you only wish to turn the fan on and off (with automatic control when it's on), you can use the following.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 '''#cat /proc/acpi/ibm/fan'''&lt;br /&gt;
 status:         enabled&lt;br /&gt;
 speed:          3580&lt;br /&gt;
 commands:       enable, disable&lt;br /&gt;
 &lt;br /&gt;
 '''#echo disable &amp;gt; /proc/acpi/ibm/fan'''&lt;br /&gt;
 &lt;br /&gt;
 '''cat /proc/acpi/ibm/fan'''&lt;br /&gt;
 status:         disabled&lt;br /&gt;
 speed:          0&lt;br /&gt;
 commands:       enable, disable&lt;br /&gt;
&lt;br /&gt;
When off, the fan will then '''never''' wake up. It is advised to use an automated control script to reduce the chance of hardware damage.&lt;br /&gt;
&lt;br /&gt;
===Automated control scripts===&lt;br /&gt;
&lt;br /&gt;
An [[ACPI fan control script#Variable speed control scripts|ACPI fan control script]] can be used 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 {{CodeRef|tp-fancontrol}} as {{path|tp-fancontrol}}, make sure you've loaded [[thinkpad-acpi]] with the &amp;quot;fan_control=1&amp;quot; parameter, and run:&amp;lt;br /&amp;gt;&lt;br /&gt;
{{cmdroot|./tp-fancontrol}}&lt;br /&gt;
&lt;br /&gt;
There is an distro independent daemon (http://projekte.f4.fhtw-berlin.de/trac/s0332819-linuxtools/wiki/), written in python. Packages are available for debian based linux systems.&lt;br /&gt;
&lt;br /&gt;
[http://www.gambitchess.org/moin.py/ThinkPad_Fan_Control A GTK GUI program (packaged for Ubuntu 7.10 and 8.04)] may also help.&lt;br /&gt;
&lt;br /&gt;
==For Windows==&lt;br /&gt;
&lt;br /&gt;
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 [http://sourceforge.net/projects/tp4xfancontrol &amp;quot;Tp4xFanControl&amp;quot;] project on SourceForge.&lt;br /&gt;
&lt;br /&gt;
==Hardware specs==&lt;br /&gt;
&lt;br /&gt;
The following hardware behavior was discovered experimentally by [[User:Thinker|Thinker]] and neither provided by nor confirmed by IBM/Lenovo. The following description may be inaccurate and may vary by model (see list of models above). The terminology probably does not match the one used by IBM/Lenovo engineers.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Information on other models is included in the [[ibm-acpi]] [[Git]] version.}}&lt;br /&gt;
&lt;br /&gt;
ACPI DSDT register HFSP (8 bits, offset 0x2F in the &amp;lt;tt&amp;gt;EmbeddedController&amp;lt;/tt&amp;gt; address space, accessed through the standard EC interface at IO ports 0x62 and 0x66) is read/writable and has the following meaning:&lt;br /&gt;
 &lt;br /&gt;
 Bits   7 6 5 4 3 2 1 0&lt;br /&gt;
        ---------------&lt;br /&gt;
 Value  1 0 * * * * * *  - automatic&lt;br /&gt;
        * 1 * * * * * *  - disengaged&lt;br /&gt;
        0 0 N N N N N N  - manual (0..63; 0=disable fan, 1=min, ..., 7=max)&lt;br /&gt;
&lt;br /&gt;
Changing modes may not be immediate on all ThinkPads.  Later ThinkPad models seem to take at least 5s to start responding to a fan mode change, for example.&lt;br /&gt;
&lt;br /&gt;
After boot, the HFSP register may not reflect the true state of the EC (on some models it reads 0x07 even though the EC is actually in automatic mode).&lt;br /&gt;
&lt;br /&gt;
=== Fan Tachometer ===&lt;br /&gt;
&lt;br /&gt;
The embedded controller registers 0x84 (LSB), 0x85 (MSB) are the main fan tachometer, and report fan speed in RPM in everything since the {{A31}} and maybe a little earlier.  Not much is know about the tachometer in earlier models, or even whether they had one or not.&lt;br /&gt;
&lt;br /&gt;
=== Automatic mode ===&lt;br /&gt;
In ''automatic'' mode, the embedded controller sets the fan speed automatically according to system temperatures and some unknown algorithm.&lt;br /&gt;
&lt;br /&gt;
Note that the ACPI DSDT may supplement this in some models.  The {{X40}}, for example, changes the profile of speeds the automatic mode should use depending on battery status.&lt;br /&gt;
&lt;br /&gt;
=== Manual mode ===&lt;br /&gt;
&lt;br /&gt;
In ''manual'' mode, the fan level is forced to the given value and the EC will auto-regulate the fan to maintain at a (roughly) constant RPM, which is model-dependent. Manual speed levels 8-63 yield the same behavior as level 7, and the the ACPI DSDT uses level 7 for the emergency mode it enters upon critical CPU/GPU temperature, so apparently 7 is the real maximum level.&lt;br /&gt;
&lt;br /&gt;
=== Disengaged (full-speed) mode ===&lt;br /&gt;
&lt;br /&gt;
In ''disengaged'' mode, the embedded controller does not monitor the fan speed.  It &amp;quot;disengages&amp;quot; the closed-loop control function that keeps track of fan speed, and uses an open-loop control function that ramps up the fan to its maximum speed (100% duty-cycle).  The end speed is not stable, but it is often much faster than the maximum speed manual and automatic modes would set the fan to.&lt;br /&gt;
&lt;br /&gt;
Most newer ThinkPads take quite a while (in excess of one minute) to fully enter disengaged mode.  Exiting it is much faster.  The {{A31}} acts differently, and switches to disengaged mode as fast as it switches to other modes.&lt;br /&gt;
&lt;br /&gt;
For some reason, the embedded controller may stop updating the tachometer registers while entering or exiting disengaged mode in some ThinkPad firmware versions (hence the EC tachometer registers will not be updated on these models while entering/exiting disengaged mode).  Once it arrives at maximum speed, or once it gets back at closed-loop cruise speed, the embedded controller starts updating the tachometer registers again.   Later T models such as the {{T43}} have this problem, while the {{A31}} does not.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Apparently the [[Problem with fan noise|pulsing fan noise]] experienced by some users can be cured by repeatedly running 2-4 seconds of manual control followed by 0.5-1 seconds of disengaged mode. The pulse occurs when the the embedded controller computes the fan speed and adjusts the fan voltage adaptively every few seconds (~4.8sec for the ThinkPad T43); the aforementioned mode switching doesn't give it a chance to do so. One of the [[ACPI fan control script#Variable speed control scripts|ACPI fan control scripts]] implements this solution.}}&lt;br /&gt;
&lt;br /&gt;
==Supported models==&lt;br /&gt;
&lt;br /&gt;
The above was successfully tested on the following models:&lt;br /&gt;
&lt;br /&gt;
* ThinkPad {{A31}} (fan levels RPM: 0 = off, 1-2 = ~3280-3380 (!), 3-5 = ~3200, 6-7 = ~3380, &amp;quot;disengaged&amp;quot; = ~4000 (see NOTE above))&lt;br /&gt;
* ThinkPad {{R50}} (highest manual level is 3; disengage mode works and reaches much higher RPM)&lt;br /&gt;
* ThinkPad {{R50p}} (fan levels RPM: 0 = off, 1-2 = ~3200, 3-5 = ~3500-3600, 6-7 = ~3700-3800, disengaged = ~5300)&lt;br /&gt;
* ThinkPad {{R51}} (fan levels RPM: 0 = off, 1-2 = ~3150, 3-5 = ~3350, 6 = ~3750, disengaged = ~5100)&lt;br /&gt;
* ThinkPad {{R51e}} (fan levels RPM: 0 = off, 1-2 = ~3300, 3-5 = ~3800, 6 = ~4150, disengaged = ~5100)&lt;br /&gt;
* ThinkPad {{R52}} (fan levels RPM: 0 = off, 1-2 = ~3350, 3-5 = ~3650, 6 = ~4250, disengaged = ~5245)&lt;br /&gt;
* ThinkPad {{R60}} (fan levels RPM: 0 = off, 1-1 = ~2650, 3-5 = ~3300, 6-7 = ~3950, disengaged = ~4800)&lt;br /&gt;
* ThinkPad {{R60e}}&lt;br /&gt;
* ThinkPad {{T22}}&lt;br /&gt;
* ThinkPad {{T23}} (low speed = ~2200, medium and maximum speed = ~4800; disengaged mode works at ~5800)&lt;br /&gt;
* ThinkPad {{T30}}&lt;br /&gt;
* ThinkPad {{T40}} (fan levels RPM: 1-2 = ~2950, 3-5 = ~3600, 6-7 = ~4050; disengaged = ~5400)&lt;br /&gt;
* ThinkPad {{T41}}, {{T41p}} (fan levels RPM: 1-2 = ~2980, 3-5 = ~3500, 6-7 = ~4050; disengaged mode works at ~5100)&lt;br /&gt;
* ThinkPad {{T42}}, {{T42p}} (fan levels RPM: 1-2 = ~2900, 3-5 = ~3700, 6-7 = ~4700; disengaged mode works at ~5200)&lt;br /&gt;
* ThinkPad {{T43}}, {{T43p}} (fan levels RPM: 1-2 = ~3300, 3-5 = ~4100, 6-7 = ~4700; disengaged mode works at ~6450)&lt;br /&gt;
* ThinkPad {{T60}} (fan levels RPM: 1-2 = 3000-3100, 3-5 = ~3600, 6-7 = ~4500; disengaged mode works at ~5500)&lt;br /&gt;
* ThinkPad {{T61}} (fan levels RPM: 0 = off, 1-2 = ~2980, 3-5 = ~3330, 6-7 = ~3760; disengaged mode works at ~4500)&lt;br /&gt;
* ThinkPad {{X30}} (level 0 = off, low = ~3900, medium = ~4200, maximum = ~4650, disengaged = ~5900)&lt;br /&gt;
* ThinkPad {{X31}} (fan levels RPM: 0 = off, 1-2 = ~2850, 3-5 = ~3450, 6 = ~4050, 7 = ~4150; disengaged mode works at ~4975)&lt;br /&gt;
* ThinkPad {{X40}}&lt;br /&gt;
* ThinkPad {{X41}}&lt;br /&gt;
* ThinkPad {{X41T}}&lt;br /&gt;
* ThinkPad {{X60}}&lt;br /&gt;
* ThinkPad {{X61s}}&lt;br /&gt;
* ThinkPad {{Z60t}}, {{Z60m}} (fan levels RPM: 1-2 = ~1700, 3-5 = ~2800, 6-7 = ~3500)&lt;br /&gt;
* ThinkPad {{Z61m}}&lt;br /&gt;
* Thinkpad {{Z61p}} (fan levels 0-7, auto, disengaged; enable, disable; watchdog (untested))&lt;br /&gt;
Probably other models are supported too (please update this page if you confirm this; maintain some ordering too).&lt;br /&gt;
&lt;br /&gt;
==Models using a different interface==&lt;br /&gt;
&lt;br /&gt;
The following models also work, use a different access method which supported (only) via the {{path|/proc/acpi/ibm/fan}} of [[ibm-acpi]]. No need for patching.&lt;br /&gt;
&lt;br /&gt;
* ThinkPad {{600E}}, {{600X}}, {{770E}}, {{770X}} (these use a different fan control interface)&lt;br /&gt;
&lt;br /&gt;
==Unsupported models==&lt;br /&gt;
&lt;br /&gt;
* ThinkPad {{560}} (these models don't have a fan)&lt;/div&gt;</summary>
		<author><name>SebastianUrban</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problem_with_fan_noise&amp;diff=37241</id>
		<title>Problem with fan noise</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problem_with_fan_noise&amp;diff=37241"/>
		<updated>2008-04-04T15:33:40Z</updated>

		<summary type="html">&lt;p&gt;SebastianUrban: new packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Information about the fan noise problem in Thinkpad models from 2003/2004/2005.&lt;br /&gt;
&lt;br /&gt;
==Problem description==&lt;br /&gt;
&lt;br /&gt;
There seem to be two different issues causing annoyance from fan noise:&lt;br /&gt;
&lt;br /&gt;
===Acceleration (pulsing) problem===&lt;br /&gt;
The Thinkpad fan briefly accelerates in regular intervals (every few seconds), causing an annoying periodic pulse noise.&lt;br /&gt;
&lt;br /&gt;
See [http://lophiomys.gmxhome.de/Thinkpad_R50_Periodic_Fan_Noise.html here] for audio recordings of this noise on ThinkPad {{R50}} and {{R51}}.&lt;br /&gt;
&lt;br /&gt;
===Always-on problem===&lt;br /&gt;
The fan is always on, even when the laptop is rather cool.&lt;br /&gt;
&lt;br /&gt;
==Affected Models==&lt;br /&gt;
&lt;br /&gt;
===Acceleration (pulsing) problem:===&lt;br /&gt;
*ThinkPad {{600E}}&lt;br /&gt;
*ThinkPad {{R40}}&lt;br /&gt;
*ThinkPad {{T40}}, {{T40p}}, {{T41}}, {{T42}}, {{T43}}&lt;br /&gt;
*ThinkPad {{X31}}, {{X60}}&lt;br /&gt;
&lt;br /&gt;
===Always-on problem:===&lt;br /&gt;
*ThinkPad {{600X}}&lt;br /&gt;
*ThinkPad {{770X}}&lt;br /&gt;
*ThinkPad {{A31p}}&lt;br /&gt;
*ThinkPad {{R32}}, {{R50}}, {{R50p}}, {{R51}}, {{R52}}&lt;br /&gt;
*ThinkPad {{T40}}, {{T40p}}, {{T41}}, {{T41p}}, {{T42}}, {{T42p}}, {{T43}}, {{T43p}}, {{T60}}&lt;br /&gt;
*ThinkPad {{X32}}, {{X40}}, {{X41}}, {{X60}}, {{X61}}&lt;br /&gt;
*ThinkPad {{Z60m}}&lt;br /&gt;
*ThinkPad {{Z61m}}&lt;br /&gt;
&lt;br /&gt;
==Affected Operating Systems==&lt;br /&gt;
&lt;br /&gt;
===Acceleration (pulsing) problem:===&lt;br /&gt;
*All operating systems (this is a firmware bug).  Note that some vendors might ship with fan-control workarounds enabled by default.&lt;br /&gt;
&lt;br /&gt;
===Always-on problem:===&lt;br /&gt;
*Linux, all flavours&lt;br /&gt;
*FreeBSD 5.3&lt;br /&gt;
*OpenBSD 3.7 (Tested with X40)&lt;br /&gt;
*Windows XP&lt;br /&gt;
*Windows 2000 pro&lt;br /&gt;
&lt;br /&gt;
==Status==&lt;br /&gt;
&lt;br /&gt;
===Acceleration (pulsing) problem:===&lt;br /&gt;
The pulsing is triggered by the embedded controller when it monitors the fan speed and adjusts the fan control accordingly every few seconds.&lt;br /&gt;
&lt;br /&gt;
For some models, IBM released an update to the embedded controller program that seems to at least partially solve this problem:&lt;br /&gt;
&lt;br /&gt;
 Version 3.03 - 1RHT70WW&lt;br /&gt;
 NOTE: This version of Embedded Controller Program will only work with BIOS Version 3.06f (or higher).&lt;br /&gt;
    * (Fix) Reduced Fan noise in some models.&lt;br /&gt;
&lt;br /&gt;
The update can be found here: http://www-306.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-50279&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
For models which still have broken firmware (e.g., ThinkPad {{T43}} with official firmware), there is a software workaround (see below).&lt;br /&gt;
&lt;br /&gt;
===Always-on problem:===&lt;br /&gt;
The problem is yet unsolved. But see the partial fix below.&lt;br /&gt;
&lt;br /&gt;
IBM made a statement regarding this on their homepage:&lt;br /&gt;
http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&amp;amp;lndocid=MIGR-56504&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
&lt;br /&gt;
===Acceleration problem:===&lt;br /&gt;
&lt;br /&gt;
====Replacing the fan====&lt;br /&gt;
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 {{T41}}s fan against one from a {{T41p}}.&lt;br /&gt;
&lt;br /&gt;
====BIOS upgrade====&lt;br /&gt;
For relevant models, you can try upgrading your embedded controller program to version 3.03 or newer.&lt;br /&gt;
The update can be found here: http://www-306.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-50279&lt;br /&gt;
&lt;br /&gt;
Also, in late November 2005 IBM released a BIOS and embedded controller update (BIOS 1.24, EC 1.04) for the  T43/p&lt;br /&gt;
(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.&lt;br /&gt;
The link to this update is: http://www-306.ibm.com/pc/support/site.wss/document.do?sitestyle=ibm&amp;amp;lndocid=MIGR-58597#bios&lt;br /&gt;
&lt;br /&gt;
====Fixing the firmware====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
====Software workaround====&lt;br /&gt;
The problem can be solved through appropriate modulation of the embedded controller, using an [[ACPI fan control script#Variable speed control scripts|ACPI fan control script]].&lt;br /&gt;
&lt;br /&gt;
There is also a [http://www.gambitchess.org/moin.py/ThinkPad_Fan_Control GTK GUI program (packaged for Ubuntu 7.10 and 8.04)]&lt;br /&gt;
&lt;br /&gt;
===Always on problem:===&lt;br /&gt;
&lt;br /&gt;
====Reducing power consumption====&lt;br /&gt;
Generally, this problem is triggered by heating due to high power consumption. See [[How to reduce power consumption]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Also the fglrx driver from ATI is said to show the same effect when used together with dynamic frequency scaling.&lt;br /&gt;
&lt;br /&gt;
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. &amp;quot;xrandr -s 2&amp;quot; to get from 1400x1050 to 1024x768) or by switching off the graphics with &amp;quot;xset dpms force off&amp;quot;.  The bottom line is that the below &amp;quot;partial fix&amp;quot; won't work because the GPU temperature is the problem.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
With the Pentium M, CPU heat dissipation can be reduced through [[Pentium M undervolting and underclocking|undervolting and underclocking]].&lt;br /&gt;
&lt;br /&gt;
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 [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.&lt;br /&gt;
&lt;br /&gt;
For more information about the thermal sensors that are monitored to decide the fan speed, see [[Thermal sensors]].&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Unplugging AC and plugging it back may cause the EC to reset the fan control loop, and thus it may cause it to switch off the fan if the ThinkPad is cool enough already, and the fan was activated just due to the built-in hysteresis in the fan control loop.}}&lt;br /&gt;
&lt;br /&gt;
====Software solution - Windows====&lt;br /&gt;
{{WARN|This circumvents the BIOS fan control, so be careful and use at your own risk! Don't toast your ThinkPad.}}&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
ref links &lt;br /&gt;
http://www.thinkwiki.org/wiki/Problem_with_fan_noise&lt;br /&gt;
http://forum.thinkpads.com/viewtopic.php?t=17715&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
 1 The Windows Event log will fill up with repeated errors regarding the Embedded Controller: please clean your event log regularly.&lt;br /&gt;
 2 The programme may crash from time to time, but the service version should restart after a crash.&lt;br /&gt;
&lt;br /&gt;
====Software solution - Linux====&lt;br /&gt;
&lt;br /&gt;
See [[How to control fan speed]] and [[Fan control scripts]].&lt;br /&gt;
&lt;br /&gt;
{{WARN|This circumvents the BIOS fan control, so be careful and use at your own risk! Don't toast your ThinkPad.}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[http://www.gambitchess.org/moin.py/ThinkPad_Fan_Control A GTK GUI program (packaged for Ubuntu Gutsy Gibbon 7.10)] may also help.&lt;br /&gt;
&lt;br /&gt;
====Cleaning the fan or removing obstructions====&lt;br /&gt;
&lt;br /&gt;
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 [[Maintenance#Cleaning_the_Interior|Cleaning the Interior]].&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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#Available Models|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.&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;tabs&amp;quot; that can break off necessiting a more expensive bezel / keyboard / GPU replacement.&lt;br /&gt;
&lt;br /&gt;
====Hardware modification====&lt;br /&gt;
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 connecting to the heat pipe.  Building a hardware copper bridge to these changed the temperature characteristics but did not cure the &amp;quot;always on&amp;quot; problem.  In another discussion on that forum a user said that among other areas the WLAN chip may be responsible for generating extra heat and that disabling WLAN (among other unused devices) may help. See also [[how to build a T43 southbridge cooler]].&lt;/div&gt;</summary>
		<author><name>SebastianUrban</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Fan_control_scripts&amp;diff=37240</id>
		<title>Fan control scripts</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Fan_control_scripts&amp;diff=37240"/>
		<updated>2008-04-04T15:31:59Z</updated>

		<summary type="html">&lt;p&gt;SebastianUrban: added version 0.90&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
This page provides several scripts for controlling the ThinkPad's system fan according the its [[thermal sensors]] (overriding the embedded controller), in order to reduce [[problem with fan noise|fan noise]] and decrease [[how to reduce power consumption|power consumption]].&lt;br /&gt;
&lt;br /&gt;
{{WARN|These scripts rely on undocumented hardware features and override nominal hardware behavior. They may thus cause arbitrary damage to your laptop or data. Watch your temperatures!}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Variable speed control scripts==&lt;br /&gt;
The following scripts sets the fan speed according to the system's [[thermal sensors]]. In addition, they include a hack for preventing the annoying fan pulsing that occurs on some systems. Note that the fan levels, thresholds and anti-pulsing hacks are system-specific, so you may need to adjust them.&lt;br /&gt;
&lt;br /&gt;
===Comprehensive &amp;lt;tt&amp;gt;bash&amp;lt;/tt&amp;gt; script with fine control over fan speed===&lt;br /&gt;
This script works with any recent Linux kernel (2.6.14 and higher). It requires the [[ibm-acpi]] module to be loaded with the &amp;lt;tt&amp;gt;experimental=1&amp;lt;/tt&amp;gt; module parameter (e.g., {{cmdroot|1=modprobe ibm_acpi experimental=1}}).&lt;br /&gt;
&lt;br /&gt;
In Linux 2.6.22 and higher you need to additionally pass fan_control=1 to the module thinkpad_acpi (e.g., {{cmdroot|1=modprobe thinkpad-acpi experimental=1 fan_control=1}})&lt;br /&gt;
&lt;br /&gt;
The code lets you define a temperature range for each [[thermal sensors|thermal sensor]]. The script computes the fan level needed by each sensor based on the configured range, and then sets the the actual fan level to the slowest that will satisfy all sensors (plus some hysteresis to avoid fluctiations). It also includes a workaround for the [[Problem with fan noise|pulsing noise]] problem. The scipt provides an (optional) daemon mode and logging to syslog. The method of controlling fan speed is documented [[How to control fan speed|here]]. &lt;br /&gt;
&lt;br /&gt;
The system hard disk temperature is monitored as well, using the hard disk's internal sensor. This works only on certain Hitachi disks and requires kernel &amp;gt;= 2.6.19-rc1 or the ide driver, since it uses a [[Thermal Sensors#Hitachi_harddisks_SENSE_CONDITION_temperature_sensor|non-standard method]] for reading the temperature without causing a head unload or spinup.&lt;br /&gt;
&lt;br /&gt;
The code:&lt;br /&gt;
* {{CodeRef|tp-fancontrol}}&lt;br /&gt;
&lt;br /&gt;
Current options:&lt;br /&gt;
&lt;br /&gt;
 Usage: ./tp-fancontrol [OPTION]...&lt;br /&gt;
 &lt;br /&gt;
 Available options:&lt;br /&gt;
   -s N   Shift up the min temperature thresholds by N degrees&lt;br /&gt;
          (positive for quieter, negative for cooler).&lt;br /&gt;
          Max temperature thresholds are not affected.&lt;br /&gt;
   -S N   Shift up the max temperature thresholds by N degrees&lt;br /&gt;
          (positive for quieter, negative for cooler). DANGEROUS.&lt;br /&gt;
   -t     Test mode&lt;br /&gt;
   -q     Quiet mode&lt;br /&gt;
   -d     Daemon mode, go into background (implies -q)&lt;br /&gt;
   -l     Log to syslog&lt;br /&gt;
   -k     Kill already-running daemon&lt;br /&gt;
   -u     Tell already-running daemon that the system is being suspended&lt;br /&gt;
   -p     Pid file location for daemon mode&lt;br /&gt;
{{WARN|The list of temperature ranges used in this script is much more liberal than the rules used by the embedded controller firmware, and is derived mostly from anecdotal evidence, hunches and wishful thinking. It is also model-specific - see [[thermal sensors]].}}&lt;br /&gt;
&lt;br /&gt;
====init script for the comprehensive script====&lt;br /&gt;
&lt;br /&gt;
This is optional. It assumes that the above &amp;lt;tt&amp;gt;tp-fancontrol&amp;lt;/tt&amp;gt; script is saved at {{path|/usr/bin/tp-fancontrol}}.&lt;br /&gt;
* Init script: {{CodeRef|tp-fancontrol.init}} (save as {{path|/etc/init.d/tp-fancontrol}})&lt;br /&gt;
* Init script (Debian): {{CodeRef|tp-fancontrol.init.debian}} (save as {{path|/etc/init.d/tp-fancontrol}})&lt;br /&gt;
* Configuration file for init script: {{CodeRef|tp-fancontrol.conf}} (save as {{path|/etc/tp-fancontrol.conf}})&lt;br /&gt;
&lt;br /&gt;
===Simple &amp;lt;tt&amp;gt;bash&amp;lt;/tt&amp;gt; script with fine control over fan speed (requires kernel patch)===&lt;br /&gt;
The following is a simpler patch (without extra features like daemon mode and logging). It requires the [[patch for controlling fan speed]] or a recent kernel (&amp;gt;=2.6.19).&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|tp-fancontrol-basic}}&lt;br /&gt;
&lt;br /&gt;
===tp-fan: Automatic daemon with GTK+ GUI===&lt;br /&gt;
Provides easy setup and monitoring through graphical GTK+ interface. Temperature thresholds can be set separately for each sensor since version 0.90.&lt;br /&gt;
&lt;br /&gt;
At the moment packages are available for Ubuntu 7.10 and 8.04. However, porting to other distributions or manual setup should be easy.&lt;br /&gt;
&lt;br /&gt;
* Home page: http://www.gambitchess.org/moin.py/tpfan&lt;br /&gt;
&lt;br /&gt;
==Fan enable/disable scripts==&lt;br /&gt;
The following scripts were written before it was known [[patch for controlling fan speed|how to control the fan speed]], so they only toggle between fan disabled and default (noisy) fan behavior. In some models, they also do not monitor all available [[thermal sensors]].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;sh&amp;lt;/tt&amp;gt; script example===&lt;br /&gt;
{{CodeRef|fan-enable-basic}}&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;sh&amp;lt;/tt&amp;gt; script with more features===&lt;br /&gt;
{{CodeRef|fan-enable-extended}}&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;sh&amp;lt;/tt&amp;gt; script with extra safety functionality===&lt;br /&gt;
ibm_acpi usually works well. But to rely on it completely, this script provides some extra safety functionality:&lt;br /&gt;
# It catches various signals and turns the fan on before it quits.&lt;br /&gt;
# It turns off the fan under very strict conditions, leaving it on when unexpected errors occur.&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|fan-enable-safe}}&lt;br /&gt;
&lt;br /&gt;
==Init scripts==&lt;br /&gt;
&lt;br /&gt;
===Init script example===&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|fan-enable.init}}&lt;br /&gt;
&lt;br /&gt;
===Init script example for gentoo===&lt;br /&gt;
Assume one of the above control scripts is {{path|/usr/sbin/ibm-fancontrold}}, for gentoo use the following init script in /etc/init.d/ibm-fancontrol.&lt;br /&gt;
Copy the script to {{path|/etc/init.d/ibm-fancontrol}}, then do &lt;br /&gt;
&lt;br /&gt;
 # rc-update add ibm-fancontrol default&lt;br /&gt;
&lt;br /&gt;
This will add the init script to the default runlevel.&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|ibm-fancontrol.init}}&lt;br /&gt;
&lt;br /&gt;
===Init script example for rh/fedora===&lt;br /&gt;
Assume one of the above control scripts is {{path|/sbin/tp-fancontrold}},&lt;br /&gt;
copy the script to {{path|/etc/init.d/tp-fancontrol}}, then do &lt;br /&gt;
&lt;br /&gt;
 # chkconfig --add tp-fancontrol&lt;br /&gt;
&lt;br /&gt;
This will add the init script to the default runlevel.&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|tp-fancontrol-fc.init}}&lt;br /&gt;
&lt;br /&gt;
You'd have to install also &amp;quot;kernel-module-ibm-acpi&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
===fanctrld===&lt;br /&gt;
[http://log.does-not-exist.org/archives/2005/08/13/2043_t_43_fan_control_daemon.html fanctrld] is a daemon (written in C) that controls the Thinkpad's fan. The basic approach is to monitor both temperature and fan speed. The fan is enabled when a certain temperature is exceeded, and disabled when the BIOS slows down the fan below a certain speed.&lt;br /&gt;
&lt;br /&gt;
===ThinkPad Fan Control GTK GUI tool===&lt;br /&gt;
&lt;br /&gt;
[http://www.gambitchess.org/moin.py/ThinkPad_Fan_Control A GTK GUI program (packaged for Ubuntu Gutsy Gibbon 7.10)] may also help.&lt;br /&gt;
&lt;br /&gt;
==Ideas for improvement==&lt;br /&gt;
* Use the [[HDAPS]] sensor to automatically lower the temperature thresholds when the laptop is moving. Prolonged movement usually happens when the laptop is on the user's lap (see [[Problem with hot surfaces]] for implications), or when in a moving vehicle where fan noise is typically overshadowed by vehicle noise.&lt;br /&gt;
* Use a [http://en.wikipedia.org/wiki/PID_controller PID controller] feedback loop instead of simple thresholds.&lt;br /&gt;
* Monitor the UltraBay disk temperature too.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[How to control fan speed]]&lt;br /&gt;
* Shimodax's ThinkPad fan control tool for a Windows offers functionality similar to these scripts; see the [http://forum.thinkpads.com/viewtopic.php?t=17715 forum discussion] at thinkpads.com.&lt;br /&gt;
* Yury Polyanskiy has a [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030697.html kernel patch] for automatic fan control in kernelspace (only enable/disable based on maximum temperature).&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripts]]&lt;/div&gt;</summary>
		<author><name>SebastianUrban</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Fan_control_scripts&amp;diff=33436</id>
		<title>Fan control scripts</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Fan_control_scripts&amp;diff=33436"/>
		<updated>2007-09-26T18:53:22Z</updated>

		<summary type="html">&lt;p&gt;SebastianUrban: added tp-fan&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
This page provides several scripts for controlling the ThinkPad's system fan according the its [[thermal sensors]] (overriding the embedded controller), in order to reduce [[problem with fan noise|fan noise]] and decrease [[how to reduce power consumption|power consumption]].&lt;br /&gt;
&lt;br /&gt;
{{WARN|These scripts rely on undocumented hardware features and override nominal hardware behavior. They may thus cause arbitrary damage to your laptop or data. Watch your temperatures!}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Variable speed control scripts==&lt;br /&gt;
The following scripts sets the fan speed according to the system's [[thermal sensors]]. In addition, they include a hack for preventing the annoying fan pulsing that occurs on some systems. Note that the fan levels, thresholds and anti-pulsing hacks are system-specific, so you may need to adjust them.&lt;br /&gt;
&lt;br /&gt;
===Comprehensive &amp;lt;tt&amp;gt;bash&amp;lt;/tt&amp;gt; script with fine control over fan speed===&lt;br /&gt;
This script works with any recent Linux kernel (2.6.14 and higher). It requires the [[ibm-acpi]] module to be loaded with the &amp;lt;tt&amp;gt;experimental=1&amp;lt;/tt&amp;gt; module parameter (e.g., {{cmdroot|1=modprobe ibm_acpi experimental=1}}).&lt;br /&gt;
&lt;br /&gt;
In Linux 2.6.22 and higher you need to pass fan_control=1 to the module thinkpad_acpi (e.g., {{cmdroot|1=modprobe thinkpad_acpi fan_control=1}})&lt;br /&gt;
&lt;br /&gt;
The code lets you define a temperature range for each [[thermal sensors|thermal sensor]]. The script computes the fan level needed by each sensor based on the configured range, and then sets the the actual fan level to the slowest that will satisfy all sensors (plus some hysteresis to avoid fluctiations). It also includes a workaround for the [[Problem with fan noise|pulsing noise]] problem. The scipt provides an (optional) daemon mode and logging to syslog. The method of controlling fan speed is documented [[How to control fan speed|here]]. &lt;br /&gt;
&lt;br /&gt;
The system hard disk temperature is monitored as well, using the hard disk's internal sensor. This works only on certain Hitachi disks and requires kernel &amp;gt;= 2.6.19-rc1 or the ide driver, since it uses a [[Thermal Sensors#Hitachi_harddisks_SENSE_CONDITION_temperature_sensor|non-standard method]] for reading the temperature without causing a head unload or spinup.&lt;br /&gt;
&lt;br /&gt;
The code:&lt;br /&gt;
* {{CodeRef|tp-fancontrol}}&lt;br /&gt;
&lt;br /&gt;
Current options:&lt;br /&gt;
&lt;br /&gt;
 Usage: ./tp-fancontrol [OPTION]...&lt;br /&gt;
 &lt;br /&gt;
 Available options:&lt;br /&gt;
   -s N   Shift up the min temperature thresholds by N degrees&lt;br /&gt;
          (positive for quieter, negative for cooler).&lt;br /&gt;
          Max temperature thresholds are not affected.&lt;br /&gt;
   -S N   Shift up the max temperature thresholds by N degrees&lt;br /&gt;
          (positive for quieter, negative for cooler). DANGEROUS.&lt;br /&gt;
   -t     Test mode&lt;br /&gt;
   -q     Quiet mode&lt;br /&gt;
   -d     Daemon mode, go into background (implies -q)&lt;br /&gt;
   -l     Log to syslog&lt;br /&gt;
   -k     Kill already-running daemon&lt;br /&gt;
   -u     Tell already-running daemon that the system is being suspended&lt;br /&gt;
   -p     Pid file location for daemon mode&lt;br /&gt;
{{WARN|The list of temperature ranges used in this script is much more liberal than the rules used by the embedded controller firmware, and is derived mostly from anecdotal evidence, hunches and wishful thinking. It is also model-specific - see [[thermal sensors]].}}&lt;br /&gt;
&lt;br /&gt;
====init script for the comprehensive script====&lt;br /&gt;
&lt;br /&gt;
This is optional. It assumes that the above &amp;lt;tt&amp;gt;tp-fancontrol&amp;lt;/tt&amp;gt; script is saved at {{path|/usr/bin/tp-fancontrol}}.&lt;br /&gt;
* Init script: {{CodeRef|tp-fancontrol.init}} (save as {{path|/etc/init.d/tp-fancontrol}})&lt;br /&gt;
* Init script (Debian): {{CodeRef|tp-fancontrol.init.debian}} (save as {{path|/etc/init.d/tp-fancontrol}})&lt;br /&gt;
* Configuration file for init script: {{CodeRef|tp-fancontrol.conf}} (save as {{path|/etc/tp-fancontrol.conf}})&lt;br /&gt;
&lt;br /&gt;
===Simple &amp;lt;tt&amp;gt;bash&amp;lt;/tt&amp;gt; script with fine control over fan speed (requires kernel patch)===&lt;br /&gt;
The following is a simpler patch (without extra features like daemon mode and logging). It requires the [[patch for controlling fan speed]] or a recent kernel (&amp;gt;=2.6.19).&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|tp-fancontrol-basic}}&lt;br /&gt;
&lt;br /&gt;
===tp-fan: Automatic daemon with GTK+ gui for Ubuntu===&lt;br /&gt;
Provides easy setup and monitoring through GTK+ interface. At the moment it is only tested on Ubuntu Gutsy Gibbon. However, porting to other distributions or manual setup should be quite easy.&lt;br /&gt;
More informations and screenshots are available on the project homepage at [http://www.gambitchess.org/moin.py/tpfan]&lt;br /&gt;
&lt;br /&gt;
==Fan enable/disable scripts==&lt;br /&gt;
The following scripts were written before it was known [[patch for controlling fan speed|how to control the fan speed]], so they only toggle between fan disabled and default (noisy) fan behavior. In some models, they also do not monitor all available [[thermal sensors]].&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;sh&amp;lt;/tt&amp;gt; script example===&lt;br /&gt;
{{CodeRef|fan-enable-basic}}&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;sh&amp;lt;/tt&amp;gt; script with more features===&lt;br /&gt;
{{CodeRef|fan-enable-extended}}&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;tt&amp;gt;sh&amp;lt;/tt&amp;gt; script with extra safety functionality===&lt;br /&gt;
ibm_acpi usually works well. But to rely on it completely, this script provides some extra safety functionality:&lt;br /&gt;
# It catches various signals and turns the fan on before it quits.&lt;br /&gt;
# It turns off the fan under very strict conditions, leaving it on when unexpected errors occur.&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|fan-enable-safe}}&lt;br /&gt;
&lt;br /&gt;
==Init scripts==&lt;br /&gt;
&lt;br /&gt;
===Init script example===&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|fan-enable.init}}&lt;br /&gt;
&lt;br /&gt;
===Init script example for gentoo===&lt;br /&gt;
Assume one of the above control scripts is {{path|/usr/sbin/ibm-fancontrold}}, for gentoo use the following init script in /etc/init.d/ibm-fancontrol.&lt;br /&gt;
Copy the script to {{path|/etc/init.d/ibm-fancontrol}}, then do &lt;br /&gt;
&lt;br /&gt;
 # rc-update add ibm-fancontrol default&lt;br /&gt;
&lt;br /&gt;
This will add the init script to the default runlevel.&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|ibm-fancontrol.init}}&lt;br /&gt;
&lt;br /&gt;
===Init script example for rh/fedora===&lt;br /&gt;
Assume one of the above control scripts is {{path|/sbin/tp-fancontrold}},&lt;br /&gt;
copy the script to {{path|/etc/init.d/tp-fancontrol}}, then do &lt;br /&gt;
&lt;br /&gt;
 # chkconfig --add tp-fancontrol&lt;br /&gt;
&lt;br /&gt;
This will add the init script to the default runlevel.&lt;br /&gt;
&lt;br /&gt;
{{CodeRef|tp-fancontrol-fc.init}}&lt;br /&gt;
&lt;br /&gt;
You'd have to install also &amp;quot;kernel-module-ibm-acpi&amp;quot; package.&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
===fanctrld===&lt;br /&gt;
[http://log.does-not-exist.org/archives/2005/08/13/2043_t_43_fan_control_daemon.html fanctrld] is a daemon (written in C) that controls the Thinkpad's fan. The basic approach is to monitor both temperature and fan speed. The fan is enabled when a certain temperature is exceeded, and disabled when the BIOS slows down the fan below a certain speed.&lt;br /&gt;
&lt;br /&gt;
==Ideas for improvement==&lt;br /&gt;
* Use the [[HDAPS]] sensor to automatically lower the temperature thresholds when the laptop is moving. Prolonged movement usually happens when the laptop is on the user's lap (see [[Problem with hot surfaces]] for implications), or when in a moving vehicle where fan noise is typically overshadowed by vehicle noise.&lt;br /&gt;
* Use a [http://en.wikipedia.org/wiki/PID_controller PID controller] feedback loop instead of simple thresholds.&lt;br /&gt;
* Monitor the UltraBay disk temperature too.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[How to control fan speed]]&lt;br /&gt;
* Shimodax's ThinkPad fan control tool for a Windows offers functionality similar to these scripts; see the [http://forum.thinkpads.com/viewtopic.php?t=17715 forum discussion] at thinkpads.com.&lt;br /&gt;
* Yury Polyanskiy has a [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030697.html kernel patch] for automatic fan control in kernelspace (only enable/disable based on maximum temperature).&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripts]]&lt;/div&gt;</summary>
		<author><name>SebastianUrban</name></author>
		
	</entry>
</feed>