2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-09-05 16:55:45 +00:00
Files
lm-sensors/prog/pwm/fancontrol.8

104 lines
3.7 KiB
Groff
Raw Normal View History

.TH FANCONTROL 8 "January 27, 2005"
.SH NAME
fancontrol \- automated software based fan speed regulation
.SH SYNOPSIS
.B fancontrol
.I [configfile]
.SH DESCRIPTION
\fBfancontrol\fP is a shell script for use with lm_sensors. It reads its
configuration from a file, then calculates fan speeds from temperatures and
sets the corresponding PWM outputs to the computed values.
.SH WARNING
Please be careful when using the fan control features of your mainboard, in
addition to the risk of burning your CPU, at higher temperatures there will be
a higher wearout of your other hardware components, too. So if you plan to use
these components in 50 years, \fBmaybe\fP 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 shutdown call, in case
some fan fails, because you probably won't hear it anymore ;)
.SH CONFIGURATION
For easy configuration, there's a script
named \fBpwmconfig\fP(8) which lets you interactively write your
configuration file for \fBfancontrol\fP. Alternatively you can write this
file yourself using the information from this manpage.
Since most of you are going to use \fBpwmconfig\fP(8) script, the config
file syntax will be discussed last. First I'm going to describe the various
variables available for changing \fBfancontrol\fP's behaviour:
.TP
.B INTERVAL
This variable defines at which interval in seconds the main loop of
\fBfancontrol\fP will be executed
.TP
.B FCTEMPS
Maps PWM outputs to temperature sensors so \fBfancontrol\fP knows which
temperature sensors should be used for calculation of new values for
the corresponding PWM outputs.
.TP
.B FCFANS
FCFANS records the association between a PWM and a fan.
Then \fBfancontrol\fP can check the fan speed and restart it if it
stops unexpectedly.
.TP
.B MINTEMP
The temperature below which the fan gets switched off completely.
.TP
.B MAXTEMP
The temperature over which the fan gets switched to full speed.
.TP
.B 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.
.TP
.B MINSTOP
The minimum speed at which the fan still spins. Use a safe value here,
too.
.PP
If you set up your configuration by hand, be sure to include ALL variables and
use valid values, there's no error handling yet! The file format is a bit
strange:
.IP
.nf
VARIABLE=chip/pwmdev=value chip/pwmdev2=value2
VARIABLE2=...
.fi
.PP
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:
.IP
MINTEMP=w83627hf-isa-0290/pwm2=40 w83627hf-isa-0290/pwm1=54
.PP
You have to play with the temperature values a bit to get happy. For initial
setup I recommend using the \fBpwmconfig\fP script. Small changes can be made by
editing the config file directly following the rules above.
.SH THE ALGORITHM
\fBfancontrol\fP 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 temperature
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.
.SH CONFORMING TO
lm_sensors-2.x
.SH SEE ALSO
pwmconfig(8), sensors(1).
.SH AUTHOR
.PP
Marius Reiner <marius.reiner@hdev.de>