FANCONTROL(8)                                                    FANCONTROL(8)


       fancontrol - automated software based fan speed regulation


       fancontrol [configfile]


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


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


       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:

              This variable defines at which interval in seconds the main loop
              of fancontrol will be executed

              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

              The  temperature  below  which  the  fan  gets switched off com-

              The temperature over which the fan gets switched to full  speed.

              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.

              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

       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.


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




       pwmconfig(8), sensors(1).


       Marius Reiner <>

                               January 27, 2005                  FANCONTROL(8)

Man(1) output converted with man2html