root/lm-sensors/trunk/doc/fancontrol.txt @ 5631

Revision 5631, 4.9 KB (checked in by khali, 4 years ago)

Drop stray references to procfs interface.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1
2fancontrol - automated software based fan speed regulation
3
4
5Introduction
6
7fancontrol is a shellscript for use with lm_sensors. It reads its
8configuration from a file, then calculates fan speeds from temperatures and
9sets the corresponding pwm outputs to the computed values.  It is included in
10lm_sensors since version 2.8.0. For easy configuration, there's a script
11named pwmconfig which lets you interactively write your configuration file for
12fancontrol. Alternatively you can write this file yourself using the
13information from the configuration section of this document.
14
15Please be careful when using the fan control features of your mainboard, in
16addition to the risk of burning your CPU, at higher temperatures there will be
17a higher wearout of your other hardware components, too. So if you plan to use
18these components in 50 years, _maybe_ you shouldn't use fancontrol/your
19hardware at all.  Also please keep in mind most fans aren't designed to be
20powered by a PWMed voltage, for more detailed information on this I recommend
21this appnote: http://www.maxim-ic.com/appnotes.cfm/appnote_number/707
22In practice it doesn't seem to be a major issue, the fans will get slightly
23warmer, just be sure to have a temperature alarm and/or shutdown call, in case
24some fan fails, because you probably won't hear it anymore ;)
25
26Configuration
27
28Since most of you are going to use the pwmconfig script, the config
29file syntax will be discussed last. First I'm going to describe the various
30variables available for changing fancontrol's behaviour:
31
32INTERVAL
33        This variable defines at which interval in seconds the main loop of
34        fancontrol will be executed
35
36FCTEMPS
37        Maps pwm outputs to temperature sensors so fancontrol knows which
38        temperature sensors should be used for calculation of new values for
39        the corresponding pwm outputs.
40
41FCFANS
42        FCFANS records the association between a pwm and a fan.
43        Then fancontrol can check the fan speed and restart it if it
44        stops unexpectedly.
45
46MINTEMP
47        The temperature below which the fan gets switched to minimum speed.
48
49MAXTEMP
50        The temperature over which the fan gets switched to maximum speed.
51
52MINSTART
53        Sets the minimum speed at which the fan begins spinning. You should
54        use a safe value to be sure it works, even when the fan gets old.
55
56MINSTOP
57        The minimum speed at which the fan still spins. Use a safe value here,
58        too.
59
60MINPWM
61        The PWM value to use when the temperature is below MINTEMP.
62        Typically, this will be either 0 if it is OK for the fan to plain
63        stop, or the same value as MINSTOP if you don't want the fan to
64        ever stop.
65        If this value isn't defined, it defaults to 0 (stopped fan).
66
67MAXPWM
68        The PWM value to use when the temperature is over MAXTEMP.
69        If this value isn't defined, it defaults to 255 (full speed).
70
71A graph might help you understand how the different values relate
72to each other:
73
74    PWM ^
75    255 +
76        |
77        |
78        |                             ,-------------- MAXPWM
79        |                           ,'.
80        |                         ,'  .
81        |                       ,'    .
82        |                     ,'      .
83        |                   ,'        .
84        |                 ,'          .
85        |       MINSTOP .'            .
86        |               |             .
87        |               |             .
88        |               |             .
89 MINPWM |---------------'             .
90        |               .             .
91        |               .             .
92        |               .             .
93      0 +---------------+-------------+---------------->
94                     MINTEMP       MAXTEMP            t (degree C)
95
96The configuration file format is a bit strange:
97
98VARIABLE=chip/pwmdev=value chip/pwmdev2=value2 [...]
99VARIABLE2=[...]
100
101Each variable has its own line. The variable name is followed by an equal sign
102and the device=value pairs. These consist of the relative path to the pwm
103output (from /sys/bus/i2c/devices or /sys/class/hwmon depending on the kernel
104version) for which the value is valid, equal sign followed by the value and
105are separated by a blank.
106
107Example:
108
109MINTEMP=w83627hf-isa-0290/pwm2=40 w83627hf-isa-0290/pwm1=54
110
111You have to play with the temperature values a bit to get happy. For initial
112setup I recommend using the pwmconfig script. Small changes can be made by
113editing the config file directly following the rules above.
114
115
116The algorithm
117
118fancontrol first reads its configuration, writes it to arrays and loops its
119main function.  This function gets the temperatures and fanspeeds from
120kernel driver files and calculates new speeds depending on temperature
121changes, but only if the temp is between MINTEMP and MAXTEMP. After that, the
122new values are written to the pwm outputs.  The pwm value increases
123linearly with rising temperature.
124
125
126Planned features
127
128rc-scripts for some gnu/linux-distributions
129smoother regulation (temp interpolation)
130gui for configuration
131
132If you have other wishes or want to contribute something, please let me know:
133marius.reiner${AT}hdev.de
Note: See TracBrowser for help on using the browser.