FANCONTROL(8)FANCONTROL(8)NAMEfancontrol - automated software based fan speed regulation
SYNOPSISfancontrol [configfile]
DESCRIPTIONfancontrol is a shell script for use with lm_sensors. It reads its con‐
figuration from a file, then calculates fan speeds from temperatures
and sets the corresponding PWM outputs to the computed values.
WARNING
Please be careful when using the fan control features of your main‐
board, in addition to the risk of burning your CPU, at higher tempera‐
tures there will be a higher wearout of your other hardware components,
too. So if you plan to use these components in 50 years, maybe you
shouldn't use fancontrol at all. Also please keep in mind most fans
aren't designed to be powered by a PWMed voltage.
In practice it doesn't seem to be a major issue, the fans will get
slightly warmer, just be sure to have a temperature alarm and/or shut‐
down call, in case some fan fails, because you probably won't hear it
anymore ;)
CONFIGURATION
For easy configuration, there's a script named pwmconfig(8) which lets
you interactively write your configuration file for fancontrol. Alter‐
natively you can write this file yourself using the information from
this manpage.
Since most of you are going to use pwmconfig(8) script, the config file
syntax will be discussed last. First I'm going to describe the various
variables available for changing fancontrol's behaviour:
INTERVAL
This variable defines at which interval in seconds the main loop
of fancontrol will be executed
FCTEMPS
Maps PWM outputs to temperature sensors so fancontrol knows
which temperature sensors should be used for calculation of new
values for the corresponding PWM outputs.
FCFANS FCFANS records the association between a PWM and a fan. Then
fancontrol can check the fan speed and restart it if it stops
unexpectedly.
MINTEMP
The temperature below which the fan gets switched off com‐
pletely.
MAXTEMP
The temperature over which the fan gets switched to full speed.
MINSTART
Sets the minimum speed at which the fan begins spinning. You
should use a safe value to be sure it works, even when the fan
gets old.
MINSTOP
The minimum speed at which the fan still spins. Use a safe value
here, too.
If you set up your configuration by hand, be sure to include ALL vari‐
ables and use valid values, there's no error handling yet! The file
format is a bit strange:
VARIABLE=chip/pwmdev=value chip/pwmdev2=value2
VARIABLE2=...
Each variable has its own line. The variable name is followed by an
equal sign and the device=value pairs. These consist of the relative
path to the pwm output (from /proc/sys/dev/sensors/) for which the
value is valid, equal sign followed by the value and are seperated by a
blank. Example:
MINTEMP=w83627hf-isa-0290/pwm2=40 w83627hf-isa-0290/pwm1=54
You have to play with the temperature values a bit to get happy. For
initial setup I recommend using the pwmconfig script. Small changes can
be made by editing the config file directly following the rules above.
THE ALGORITHMfancontrol first reads its configuration, writes it to arrays and loops
its main function. This function gets the temperatures and fanspeeds
from lm_sensors proc files and calculates new speeds depending on tem‐
perature changes, but only if the temp is between MINTEMP and MAXTEMP.
After that, the new values are written to the PWM outputs. Currently
the speed increases quadratically with rising temperature. This way you
won't hear your fans most of the time at best.
CONFORMING TO
lm_sensors-2.x
SEE ALSOpwmconfig(8), sensors(1).
AUTHOR
Marius Reiner <marius.reiner@hdev.de>
January 27, 2005 FANCONTROL(8)