fancontrol

FANCONTROL(8)							 FANCONTROL(8)



NAME
       fancontrol - automated software based fan speed regulation


SYNOPSIS
       fancontrol [configfile]


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


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


CONFORMING TO
       lm_sensors-2.x


SEE ALSO
       pwmconfig(8), sensors(1).


AUTHOR
       Marius Reiner <marius.reiner@hdev.de>



			       January 27, 2005			 FANCONTROL(8)

Personal Tools