|
Packit |
53d5b6 |
.\" Copyright (C) 1998, 1999 Adrian Baugh <adrian.baugh@keble.ox.ac.uk> and
|
|
Packit |
53d5b6 |
.\" Frodo Looijaard <frodol@dds.nl>
|
|
Packit |
53d5b6 |
.\" Copyright (C) 2008--2012 Jean Delvare <jdelvare@suse.de>
|
|
Packit |
53d5b6 |
.\"
|
|
Packit |
53d5b6 |
.\" Permission is granted to make and distribute verbatim copies of this
|
|
Packit |
53d5b6 |
.\" manual provided the copyright notice and this permission notice are
|
|
Packit |
53d5b6 |
.\" preserved on all copies.
|
|
Packit |
53d5b6 |
.\"
|
|
Packit |
53d5b6 |
.\" Permission is granted to copy and distribute modified versions of this
|
|
Packit |
53d5b6 |
.\" manual under the conditions for verbatim copying, provided that the
|
|
Packit |
53d5b6 |
.\" entire resulting derived work is distributed under the terms of a
|
|
Packit |
53d5b6 |
.\" permission notice identical to this one.
|
|
Packit |
53d5b6 |
.\"
|
|
Packit |
53d5b6 |
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
Packit |
53d5b6 |
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
Packit |
53d5b6 |
.\" responsibility for errors or omissions, or for damages resulting from
|
|
Packit |
53d5b6 |
.\" the use of the information contained herein.
|
|
Packit |
53d5b6 |
.\"
|
|
Packit |
53d5b6 |
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
Packit |
53d5b6 |
.\" the source, must acknowledge the copyright and authors of this work.
|
|
Packit |
53d5b6 |
.\"
|
|
Packit |
53d5b6 |
.\" References consulted:
|
|
Packit |
53d5b6 |
.\" sensors.conf.eg by Frodo Looijaard
|
|
Packit |
53d5b6 |
.TH sensors.conf 5 "November 2012" "lm-sensors 3" "Linux User's Manual"
|
|
Packit |
53d5b6 |
.SH NAME
|
|
Packit |
53d5b6 |
sensors.conf \- libsensors configuration file
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH DESCRIPTION
|
|
Packit |
53d5b6 |
sensors.conf describes how libsensors, and so all programs using it, should
|
|
Packit |
53d5b6 |
translate the raw readings from the kernel modules to real\-world values.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH SEMANTICS
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
On a given system, there may be one or more hardware monitoring chips.
|
|
Packit |
53d5b6 |
Each chip may have several features. For example, the LM78 monitors 7
|
|
Packit |
53d5b6 |
voltage inputs, 3 fans and one temperature. Feature names are
|
|
Packit |
53d5b6 |
standardized. Typical feature names are in0, in1, in2... for voltage
|
|
Packit |
53d5b6 |
inputs, fan1, fan2, fan3... for fans and temp1, temp2, temp3... for
|
|
Packit |
53d5b6 |
temperature inputs.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Each feature may in turn have one or more sub\-features, each
|
|
Packit |
53d5b6 |
representing an attribute of the feature: input value, low limit, high
|
|
Packit |
53d5b6 |
limit, alarm, etc. Sub\-feature names are standardized as well. For
|
|
Packit |
53d5b6 |
example, the first voltage input (in0) would typically have
|
|
Packit |
53d5b6 |
sub\-features in0_input (measured value), in0_min (low limit), in0_max
|
|
Packit |
53d5b6 |
(high limit) and in0_alarm (alarm flag). Which sub\-features are
|
|
Packit |
53d5b6 |
actually present depend on the exact chip type.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The
|
|
Packit |
53d5b6 |
.I sensors.conf
|
|
Packit |
53d5b6 |
configuration file will let you configure each chip, feature and
|
|
Packit |
53d5b6 |
sub\-feature in a way that makes sense for your system.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The rest of this section describes the meaning of each configuration
|
|
Packit |
53d5b6 |
statement.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SS CHIP STATEMENT
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.I chip
|
|
Packit |
53d5b6 |
statement selects for which chips all following
|
|
Packit |
53d5b6 |
.IR compute ,
|
|
Packit |
53d5b6 |
.IR label ,
|
|
Packit |
53d5b6 |
.I ignore
|
|
Packit |
53d5b6 |
and
|
|
Packit |
53d5b6 |
.I set
|
|
Packit |
53d5b6 |
statements are meant. A chip
|
|
Packit |
53d5b6 |
selection remains valid until the next
|
|
Packit |
53d5b6 |
.I chip
|
|
Packit |
53d5b6 |
statement. Example:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
chip "lm78\-*" "lm79\-*"
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
If a chip matches at least one of the chip descriptions, the following
|
|
Packit |
53d5b6 |
configuration lines are examined for it, otherwise they are ignored.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A chip description is built from several elements, separated by
|
|
Packit |
53d5b6 |
dashes. The first element is the chip type, the second element is
|
|
Packit |
53d5b6 |
the name of the bus, and the third element is the hexadecimal address
|
|
Packit |
53d5b6 |
of the chip. Such chip descriptions are printed by sensors(1) as the
|
|
Packit |
53d5b6 |
first line for every chip.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The name of the bus is either
|
|
Packit |
53d5b6 |
.IR isa ,
|
|
Packit |
53d5b6 |
.IR pci ,
|
|
Packit |
53d5b6 |
.IR virtual ,
|
|
Packit |
53d5b6 |
.I spi-*,
|
|
Packit |
53d5b6 |
.I i2c-N
|
|
Packit |
53d5b6 |
or
|
|
Packit |
53d5b6 |
.I mdio
|
|
Packit |
53d5b6 |
with
|
|
Packit |
53d5b6 |
.I N
|
|
Packit |
53d5b6 |
being a bus number as bound with a
|
|
Packit |
53d5b6 |
.I bus
|
|
Packit |
53d5b6 |
statement. This list isn't necessarily exhaustive as support for other
|
|
Packit |
53d5b6 |
bus types may be added in the future.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
You may substitute the wildcard operator
|
|
Packit |
53d5b6 |
.I *
|
|
Packit |
53d5b6 |
for every element. Note however that it wouldn't make any sense to specify
|
|
Packit |
53d5b6 |
the address without the bus type, so the address part is plain omitted
|
|
Packit |
53d5b6 |
when the bus type isn't specified.
|
|
Packit |
53d5b6 |
Here is how you would express the following matches:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.TS
|
|
Packit |
53d5b6 |
l l.
|
|
Packit |
53d5b6 |
LM78 chip at address 0x2d on I2C bus 1 lm78\-i2c\-1\-2d
|
|
Packit |
53d5b6 |
LM78 chip at address 0x2d on any I2C bus lm78\-i2c\-*\-2d
|
|
Packit |
53d5b6 |
LM78 chip at address 0x290 on the ISA bus lm78\-isa\-0290
|
|
Packit |
53d5b6 |
Any LM78 chip on I2C bus 1 lm78\-i2c\-1\-*
|
|
Packit |
53d5b6 |
Any LM78 on any I2C bus lm78\-i2c\-*\-*
|
|
Packit |
53d5b6 |
Any LM78 chip on the ISA bus lm78\-isa\-*
|
|
Packit |
53d5b6 |
Any LM78 chip lm78\-*
|
|
Packit |
53d5b6 |
Any chip at address 0x2d on I2C bus 1 *\-i2c\-1\-2d
|
|
Packit |
53d5b6 |
Any chip at address 0x290 on the ISA bus *\-isa\-0290
|
|
Packit |
53d5b6 |
.TE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
If several chip statements match a specific chip, they are all considered.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SS LABEL STATEMENT
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.I label
|
|
Packit |
53d5b6 |
statement describes how a feature should be called. Features without a
|
|
Packit |
53d5b6 |
.I label
|
|
Packit |
53d5b6 |
statement are just called by their feature name. Applications can use this
|
|
Packit |
53d5b6 |
to label the readings they present. Example:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
label in3 "+5V"
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The first argument is the feature name. The second argument is the feature
|
|
Packit |
53d5b6 |
description.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Note that you must use the raw feature name, which is not necessarily the
|
|
Packit |
53d5b6 |
one displayed by "sensors" by default. Use "sensors \-u" to see the raw
|
|
Packit |
53d5b6 |
feature names. Same applies to all other statement types below.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SS IGNORE STATEMENT
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
An
|
|
Packit |
53d5b6 |
.I ignore
|
|
Packit |
53d5b6 |
statement is a hint that a specific feature should be ignored - probably
|
|
Packit |
53d5b6 |
because it returns bogus values (for example, because a fan or temperature
|
|
Packit |
53d5b6 |
sensor is not connected). Example:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
ignore fan1
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The only argument is the feature name. Please note that this does not disable
|
|
Packit |
53d5b6 |
anything in the actual sensor chip; it simply hides the feature in question
|
|
Packit |
53d5b6 |
from libsensors users.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SS COMPUTE STATEMENT
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.I compute
|
|
Packit |
53d5b6 |
statement describes how a feature's raw value should be translated to a
|
|
Packit |
53d5b6 |
real\-world value, and how a real\-world value should be translated back
|
|
Packit |
53d5b6 |
to a raw value again. This is most useful for voltage sensors, because
|
|
Packit |
53d5b6 |
in general sensor chips have a limited range and voltages outside this
|
|
Packit |
53d5b6 |
range must be divided (using resistors) before they can be monitored.
|
|
Packit |
53d5b6 |
Example:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
compute in3 ((6.8/10)+1)*@, @/((6.8/10)+1)
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The example above expresses the fact that the voltage input is divided
|
|
Packit |
53d5b6 |
using two resistors of values 6.8 Ohm and 10 Ohm, respectively. See the
|
|
Packit |
53d5b6 |
.B VOLTAGE COMPUTATION DETAILS
|
|
Packit |
53d5b6 |
section below for details.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The first argument is the feature name. The second argument is an expression
|
|
Packit |
53d5b6 |
which specifies how a raw value must be translated to a real\-world value;
|
|
Packit |
53d5b6 |
`@' stands here for the raw value. This is the formula which will be applied
|
|
Packit |
53d5b6 |
when reading values from the chip. The third argument is an expression that
|
|
Packit |
53d5b6 |
specifies how a real\-world value should be translated back to a raw value;
|
|
Packit |
53d5b6 |
`@' stands here for the real\-world value. This is the formula which will be
|
|
Packit |
53d5b6 |
applied when writing values to the chip. The two formulas are obviously
|
|
Packit |
53d5b6 |
related, and are separated by a comma.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.I compute
|
|
Packit |
53d5b6 |
statement applies to all sub\-features of the target feature for which
|
|
Packit |
53d5b6 |
it makes sense. For example, the above example would affect sub\-features
|
|
Packit |
53d5b6 |
in3_min and in3_max (which are voltage values) but not in3_alarm
|
|
Packit |
53d5b6 |
(which is a boolean flag.)
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The following operators are supported in
|
|
Packit |
53d5b6 |
.I compute
|
|
Packit |
53d5b6 |
statements:
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
+ \- * / ( ) ^ `
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
^x means exp(x) and `x means ln(x).
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
You may use the name of sub\-features in these expressions; current readings
|
|
Packit |
53d5b6 |
are substituted. You should be careful though to avoid circular references.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
If at any moment a translation between a raw and a real\-world value is
|
|
Packit |
53d5b6 |
called for, but no
|
|
Packit |
53d5b6 |
.I compute
|
|
Packit |
53d5b6 |
statement applies, a one\-on\-one translation is used instead.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SS SET STATEMENT
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.I set
|
|
Packit |
53d5b6 |
statement is used to write a sub\-feature value to the chip. Of course not
|
|
Packit |
53d5b6 |
all sub\-feature values can be set that way, in particular input values
|
|
Packit |
53d5b6 |
and alarm flags can not. Valid sub\-features are usually min/max limits.
|
|
Packit |
53d5b6 |
Example:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
set in3_min 5 * 0.95
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
set in3_max 5 * 1.05
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The example above basically configures the chip to allow a 5% deviance
|
|
Packit |
53d5b6 |
for the +5V power input.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The first argument is the feature name. The second argument is an expression
|
|
Packit |
53d5b6 |
which determines the written value. If there is an applying
|
|
Packit |
53d5b6 |
.I compute
|
|
Packit |
53d5b6 |
statement, this value is fed to its third argument to translate it to a
|
|
Packit |
53d5b6 |
raw value.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
You may use the name of sub\-features in these expressions; current readings
|
|
Packit |
53d5b6 |
are substituted. You should be careful though to avoid circular references.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Please note that
|
|
Packit |
53d5b6 |
.I set
|
|
Packit |
53d5b6 |
statements are only executed by sensors(1) when you use the
|
|
Packit |
53d5b6 |
.B \-s
|
|
Packit |
53d5b6 |
option. Typical graphical sensors applications do not care about these
|
|
Packit |
53d5b6 |
statements at all.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SS BUS STATEMENT
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.I bus
|
|
Packit |
53d5b6 |
statement binds the description of an I2C or SMBus adapter to a bus number.
|
|
Packit |
53d5b6 |
This makes it possible to refer to an adapter in the configuration file,
|
|
Packit |
53d5b6 |
independent of the actual correspondence of bus numbers and actual
|
|
Packit |
53d5b6 |
adapters (which may change from moment to moment). Example:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
bus "i2c\-0" "SMBus PIIX4 adapter at e800"
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The first argument is the bus number. It is the literal text
|
|
Packit |
53d5b6 |
.IR i2c\- ,
|
|
Packit |
53d5b6 |
followed by a number. As there is a dash in this argument, it must
|
|
Packit |
53d5b6 |
always be quoted.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The second argument is the adapter name, it must match exactly the
|
|
Packit |
53d5b6 |
adapter name as it appears in
|
|
Packit |
53d5b6 |
.IR /sys/class/i2c\-adapter/i2c\-*/name .
|
|
Packit |
53d5b6 |
It should always be quoted as well as it will most certainly contain
|
|
Packit |
53d5b6 |
spaces or dashes.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The
|
|
Packit |
53d5b6 |
.I bus
|
|
Packit |
53d5b6 |
statements may be scattered randomly throughout the configuration file;
|
|
Packit |
53d5b6 |
there is no need to place the bus line before the place where its binding
|
|
Packit |
53d5b6 |
is referred to. Still, as a matter of good style, we suggest you place
|
|
Packit |
53d5b6 |
all
|
|
Packit |
53d5b6 |
.I bus
|
|
Packit |
53d5b6 |
statements together at the top of your configuration file.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Running
|
|
Packit |
53d5b6 |
.B sensors --bus-list
|
|
Packit |
53d5b6 |
will generate these lines for you.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
In the case where multiple configuration files are used, the scope
|
|
Packit |
53d5b6 |
of each
|
|
Packit |
53d5b6 |
.I bus
|
|
Packit |
53d5b6 |
statement is the configuration file it was defined in. This makes it
|
|
Packit |
53d5b6 |
possible to have bus statements in all configuration files which will
|
|
Packit |
53d5b6 |
not unexpectedly interfere with each other.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SS STATEMENT ORDER
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Statements can go in any order, however it is recommended to put
|
|
Packit |
53d5b6 |
`set fanX_div' statements before `set fanX_min' statements, in case
|
|
Packit |
53d5b6 |
a driver doesn't preserve the fanX_min setting when the fanX_div
|
|
Packit |
53d5b6 |
value is changed. Even if the driver does, it's still better to put
|
|
Packit |
53d5b6 |
the statements in this order to avoid accuracy loss.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH VOLTAGE COMPUTATION DETAILS
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Most voltage sensors in sensor chips have a range of 0 to 4.08 V.
|
|
Packit |
53d5b6 |
This is generally sufficient for the +3.3V and CPU supply voltages, so
|
|
Packit |
53d5b6 |
the sensor chip reading is the actual voltage.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Other supply voltages must be scaled with an external resistor network.
|
|
Packit |
53d5b6 |
The driver reports the value at the chip's pin (0 \- 4.08 V), and the
|
|
Packit |
53d5b6 |
userspace application must convert this raw value to an actual voltage.
|
|
Packit |
53d5b6 |
The
|
|
Packit |
53d5b6 |
.I compute
|
|
Packit |
53d5b6 |
statements provide this facility.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Unfortunately the resistor values vary among motherboard types.
|
|
Packit |
53d5b6 |
Therefore you have to figure out the correct resistor values for your
|
|
Packit |
53d5b6 |
own motherboard.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
For positive voltages (typically +5V and +12V), two resistors are used,
|
|
Packit |
53d5b6 |
with the following formula:
|
|
Packit |
53d5b6 |
R1 = R2 * (Vs/Vin \- 1)
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
where:
|
|
Packit |
53d5b6 |
R1 and R2 are the resistor values
|
|
Packit |
53d5b6 |
Vs is the actual voltage being monitored
|
|
Packit |
53d5b6 |
Vin is the voltage at the pin
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
This leads to the following compute formula:
|
|
Packit |
53d5b6 |
compute inX @*((R1/R2)+1), @/(((R1/R2)+1)
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Real\-world formula for +5V and +12V would look like:
|
|
Packit |
53d5b6 |
compute in3 @*((6.8/10)+1), @/((6.8/10)+1)
|
|
Packit |
53d5b6 |
compute in4 @*((28/10)+1), @/((28/10)+1)
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
For negative voltages (typically \-5V and \-12V), two resistors are used
|
|
Packit |
53d5b6 |
as well, but different boards use different strategies to bring the
|
|
Packit |
53d5b6 |
voltage value into the 0 \- 4.08 V range. Some use an inverting
|
|
Packit |
53d5b6 |
amplifier, others use a positive reference voltage. This leads to
|
|
Packit |
53d5b6 |
different computation formulas. Note that most users won't have to care
|
|
Packit |
53d5b6 |
because most modern motherboards make little use of \-12V and no use of
|
|
Packit |
53d5b6 |
\-5V so they do not bother monitoring these voltage inputs.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Real\-world examples for the inverting amplifier case:
|
|
Packit |
53d5b6 |
compute in5 \-@*(240/60), \-@/(240/60)
|
|
Packit |
53d5b6 |
compute in6 \-@*(100/60), \-@/(100/60)
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Real\-world examples for the positive voltage reference case:
|
|
Packit |
53d5b6 |
compute in5 @*(1+232/56) \- 4.096*232/56, (@ + 4.096*232/56)/(1+232/56)
|
|
Packit |
53d5b6 |
compute in6 @*(1+120/56) \- 4.096*120/56, (@ + 4.096*120/56)/(1+120/56)
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Many recent monitoring chips have a 0 \- 2.04 V range, so scaling resistors
|
|
Packit |
53d5b6 |
are even more needed, and resistor values are different.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
There are also a few chips out there which have internal scaling
|
|
Packit |
53d5b6 |
resistors, meaning that their value is known and doesn't change from
|
|
Packit |
53d5b6 |
one motherboard to the next. For these chips, the driver usually
|
|
Packit |
53d5b6 |
handles the scaling so it is transparent to the user and no
|
|
Packit |
53d5b6 |
.I compute
|
|
Packit |
53d5b6 |
statements are needed.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH TEMPERATURE CONFIGURATION
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
On top of the usual features, temperatures can have two specific
|
|
Packit |
53d5b6 |
sub\-features: temperature sensor type (tempX_type) and hysteresis
|
|
Packit |
53d5b6 |
values (tempX_max_hyst, tempX_crit_hyst etc.).
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SS THERMAL SENSOR TYPES
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Available thermal sensor types:
|
|
Packit |
53d5b6 |
.TS
|
|
Packit |
53d5b6 |
r l.
|
|
Packit |
53d5b6 |
1 PII/Celeron Diode
|
|
Packit |
53d5b6 |
2 3904 transistor
|
|
Packit |
53d5b6 |
3 thermal diode
|
|
Packit |
53d5b6 |
4 thermistor
|
|
Packit |
53d5b6 |
5 AMD AMDSI
|
|
Packit |
53d5b6 |
6 Intel PECI
|
|
Packit |
53d5b6 |
.TE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
For example, to set temp1 to thermistor type, use:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
set temp1_type 4
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Only certain chips support thermal sensor type change, and even these
|
|
Packit |
53d5b6 |
usually only support some of the types above. Please refer to the
|
|
Packit |
53d5b6 |
specific driver documentation to find out which types are supported
|
|
Packit |
53d5b6 |
by your chip.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
In theory, the BIOS should have configured the sensor types correctly,
|
|
Packit |
53d5b6 |
so you shouldn't have to touch them, but sometimes it isn't the case.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SS THERMAL HYSTERESIS MECHANISM
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Many monitoring chips do not handle the high and critical temperature
|
|
Packit |
53d5b6 |
limits as simple limits. Instead, they have two values for each
|
|
Packit |
53d5b6 |
limit, one which triggers an alarm when the temperature rises and another
|
|
Packit |
53d5b6 |
one which clears the alarm when the temperature falls. The latter is
|
|
Packit |
53d5b6 |
typically a few degrees below the former. This mechanism is known as
|
|
Packit |
53d5b6 |
hysteresis.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The reason for implementing things that way is that high temperature
|
|
Packit |
53d5b6 |
alarms typically trigger an action to attempt to cool the system down,
|
|
Packit |
53d5b6 |
either by scaling down the CPU frequency, or by kicking in an extra
|
|
Packit |
53d5b6 |
fan. This should normally let the temperature fall in a timely manner.
|
|
Packit |
53d5b6 |
If this was clearing the alarm immediately, then the system would be
|
|
Packit |
53d5b6 |
back to its original state where the temperature rises and the alarm
|
|
Packit |
53d5b6 |
would immediately trigger again, causing an undesirable tight fan on,
|
|
Packit |
53d5b6 |
fan off loop. The hysteresis mechanism ensures that the system is
|
|
Packit |
53d5b6 |
really cool before the fan stops, so that it will not have to kick in
|
|
Packit |
53d5b6 |
again immediately.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
So, in addition to tempX_max, many chips have a tempX_max_hyst
|
|
Packit |
53d5b6 |
sub-feature. Likewise, tempX_crit often comes with tempX_crit_hyst.
|
|
Packit |
53d5b6 |
tempX_emerg_hyst, tempX_min_hyst and tempX_lcrit_hyst exist too but
|
|
Packit |
53d5b6 |
aren't as common.
|
|
Packit |
53d5b6 |
Example:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
set temp1_max 60
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
set temp1_max_hyst 56
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
The hysteresis mechanism can be disabled by giving both limits the same
|
|
Packit |
53d5b6 |
value.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Note that it is strongly recommended to set the hysteresis value after
|
|
Packit |
53d5b6 |
the limit value it relates to in the configuration file. Implementation
|
|
Packit |
53d5b6 |
details on the hardware or driver side may cause unexpected results if
|
|
Packit |
53d5b6 |
the hysteresis value is set first.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH BEEPS
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
Some chips support alarms with beep warnings. When an alarm is triggered
|
|
Packit |
53d5b6 |
you can be warned by a beeping signal through your computer speaker. On
|
|
Packit |
53d5b6 |
top of per\-feature beep flags, there is usually a master beep control
|
|
Packit |
53d5b6 |
switch to enable or disable beeping globally. Enable beeping using:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
set beep_enable 1
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
or disable it using:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
set beep_enable 0
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH WHICH STATEMENT APPLIES
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
If more than one statement of the same kind applies at a certain moment,
|
|
Packit |
53d5b6 |
the last one in the configuration file is used. So usually, you should
|
|
Packit |
53d5b6 |
put more general
|
|
Packit |
53d5b6 |
.I chip
|
|
Packit |
53d5b6 |
statements at the top, so you can overrule them below.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH SYNTAX
|
|
Packit |
53d5b6 |
Comments are introduced by hash marks. A comment continues to the end of the
|
|
Packit |
53d5b6 |
line. Empty lines, and lines containing only whitespace or comments are
|
|
Packit |
53d5b6 |
ignored. Other lines have one of the below forms. There must be whitespace
|
|
Packit |
53d5b6 |
between each element, but the amount of whitespace is unimportant. A line
|
|
Packit |
53d5b6 |
may be continued on the next line by ending it with a backslash; this does
|
|
Packit |
53d5b6 |
not work within a comment,
|
|
Packit |
53d5b6 |
.B NAME
|
|
Packit |
53d5b6 |
or
|
|
Packit |
53d5b6 |
.BR NUMBER .
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
bus
|
|
Packit |
53d5b6 |
.B NAME NAME NAME
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
chip
|
|
Packit |
53d5b6 |
.B NAME\-LIST
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
label
|
|
Packit |
53d5b6 |
.B NAME NAME
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
compute
|
|
Packit |
53d5b6 |
.B NAME EXPR
|
|
Packit |
53d5b6 |
,
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
ignore
|
|
Packit |
53d5b6 |
.B NAME
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
set
|
|
Packit |
53d5b6 |
.B NAME EXPR
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
.sp
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.B NAME
|
|
Packit |
53d5b6 |
is a string. If it only contains letters, digits and underscores, it does not
|
|
Packit |
53d5b6 |
have to be quoted; in all other cases, you must use double quotes around it.
|
|
Packit |
53d5b6 |
Within quotes, you can use the normal escape\-codes from C.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.B NAME\-LIST
|
|
Packit |
53d5b6 |
is one or more
|
|
Packit |
53d5b6 |
.B NAME
|
|
Packit |
53d5b6 |
items behind each other, separated by whitespace.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
is of one of the below forms:
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
.B NUMBER
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
.B NAME
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
@
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
+
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
\-
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
*
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
/
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
\-
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
^
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
`
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
.sp 0
|
|
Packit |
53d5b6 |
(
|
|
Packit |
53d5b6 |
.B EXPR
|
|
Packit |
53d5b6 |
)
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
A
|
|
Packit |
53d5b6 |
.B NUMBER
|
|
Packit |
53d5b6 |
is a floating\-point number. `10', `10.4' and `.4' are examples of valid
|
|
Packit |
53d5b6 |
floating\-point numbers; `10.' or `10E4' are not valid.
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH FILES
|
|
Packit |
53d5b6 |
.I /etc/sensors3.conf
|
|
Packit |
53d5b6 |
.br
|
|
Packit |
53d5b6 |
.I /etc/sensors.conf
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
The system-wide
|
|
Packit |
53d5b6 |
.BR libsensors (3)
|
|
Packit |
53d5b6 |
configuration file. /etc/sensors3.conf is tried first, and if it doesn't exist,
|
|
Packit |
53d5b6 |
/etc/sensors.conf is used instead.
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.I /etc/sensors.d
|
|
Packit |
53d5b6 |
.RS
|
|
Packit |
53d5b6 |
A directory where you can put additional libsensors configuration files.
|
|
Packit |
53d5b6 |
Files found in this directory will be processed in alphabetical order after
|
|
Packit |
53d5b6 |
the default configuration file. Files with names that start with a dot are
|
|
Packit |
53d5b6 |
ignored.
|
|
Packit |
53d5b6 |
.RE
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH SEE ALSO
|
|
Packit |
53d5b6 |
libsensors(3)
|
|
Packit |
53d5b6 |
|
|
Packit |
53d5b6 |
.SH AUTHOR
|
|
Packit |
53d5b6 |
Frodo Looijaard and the lm_sensors group
|
|
Packit Service |
5377e5 |
https://hwmon.wiki.kernel.org/lm_sensors
|