mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-10-20 11:29:31 +00:00
The announced changes to the LM78 voltages, and an example config file.
Note: GL518SM driver need this change, too; this is not yet done. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@106 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
eb21cf98d5
commit
657798a79c
8 files changed
+195
-27
No files matched your search
@@ -30,6 +30,9 @@ this package. Some interesting variables:
|
||||
The prefix which is added to most directory locations below.
|
||||
* MODDIR (/lib/modules/extra/misc)
|
||||
The directory where 'make install' installs your modules.
|
||||
* ETCDIR (/etc)
|
||||
The directory where 'make install' installs the example configuration file
|
||||
if none is found there.
|
||||
* LIBDIR ($(PREFIX)/lib)
|
||||
The directory where 'make install' installs the shared and static libraries.
|
||||
* BINDIR ($(PREFIX)/bin)
|
||||
@@ -78,14 +81,21 @@ If you have installed the modules, as described within doc/modules, you can
|
||||
do 'modprobe isa && modprobe piix4 && modprobe lm78 && modprobe i2c-proc'
|
||||
(the last is optional) from any directory to reach the same situation.
|
||||
|
||||
This package also contains a library of functions which can be used to
|
||||
Do not panic if some (or all) of the values in the /proc/sys/dev/sensors/*/*
|
||||
files do not seem to correspond to anything in earlier versions. Starting
|
||||
with lm_sensors version 2.1.0, these files will reflect the real chip
|
||||
measurements, without any scaling or adjusting. This is most obvious for
|
||||
the voltage files. You can specify the conversion factors in a configuration
|
||||
file. Use an application linked to libsensors to read these real values.
|
||||
|
||||
This package contains a library of functions which can be used to
|
||||
access sensor data in a more programmer-friendly way. It will be built as
|
||||
both a shared and a static library, and installed in your LIB directory
|
||||
(normally /usr/local/lib). It needs a configuration file, which is usually
|
||||
called 'sensors.conf', and can be placed in /etc, /usr/lib/sensors,
|
||||
/usr/local/lib/sensors, /usr/lib, or /usr/local/lib. [NOTE: No real
|
||||
standard config file is written yet. A very simple example can be found in
|
||||
the prog/sensors directory.]
|
||||
config file documentation is written yet. A relatively well-commented
|
||||
example can be found in the etc directory.]
|
||||
|
||||
Where version 1 of this package had the human-readable /proc/sensors file,
|
||||
this version includes a user-space program which gathers all data
|
||||
|
||||
@@ -56,6 +56,10 @@ PREFIX := /usr/local
|
||||
# This is the directory into which the modules will be installed.
|
||||
MODDIR := /lib/modules/extra/misc
|
||||
|
||||
# This is the directory where sensors.conf will be installed, if no other
|
||||
# configuration file is found
|
||||
ETCDIR := /etc
|
||||
|
||||
# You should not need to change this. It is the directory into which the
|
||||
# library files (both static and shared) will be installed.
|
||||
LIBDIR := $(PREFIX)/lib
|
||||
@@ -95,7 +99,7 @@ LIBINCLUDEDIR := $(INCLUDEDIR)/sensors
|
||||
# to do this.
|
||||
|
||||
# The subdirectories we need to build things in
|
||||
SRCDIRS := src lib prog/sensors
|
||||
SRCDIRS := src lib prog/sensors etc
|
||||
ifeq ($(I2C),1)
|
||||
SRCDIRS += i2c i2c/detect i2c/drivers i2c/eeprom
|
||||
endif
|
||||
|
||||
@@ -53,7 +53,7 @@ support both ways of accessing them.
|
||||
|
||||
Because the SMBus is just a special case of the generalized I2C bus, we
|
||||
can simulate the SMBus protocol on plain I2C busses. These busses are
|
||||
sometimes used in other parts of your computer. If a supported chips is
|
||||
sometimes used in other parts of your computer. If a supported chip is
|
||||
attached to one of these additional busses, they can be used too.
|
||||
|
||||
Please read INSTALL before trying to compile and install these modules.
|
||||
|
||||
+4
-2
@@ -7,12 +7,14 @@ The directories within this package:
|
||||
(mod-????????.tar.gz).
|
||||
* doc
|
||||
Documentation about the modules within this package
|
||||
* etc
|
||||
Configuration files
|
||||
* i2c
|
||||
Simon Vogl's i2c module, including any necessary patches, excluding any
|
||||
files which are removed by 'make clean'.
|
||||
* src
|
||||
Our own module code.
|
||||
* lib
|
||||
The user-space sensors support library code
|
||||
* prog
|
||||
Several supporting programs, some of them use the library, some do not.
|
||||
* src
|
||||
Our own module code.
|
||||
@@ -0,0 +1,36 @@
|
||||
# Module.mk - Makefile for a Linux module for reading sensor data.
|
||||
# Copyright (c) 1998 Frodo Looijaard <frodol@dds.nl>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
# Note that MODULE_DIR (the directory in which this file resides) is a
|
||||
# 'simply expanded variable'. That means that its value is substituted
|
||||
# verbatim in the rules, until it is redefined.
|
||||
MODULE_DIR := etc
|
||||
|
||||
ETCTARGET := $(MODULE_DIR)/sensors.conf.eg
|
||||
ETCINSTALL := $(ETCDIR)/sensors.conf
|
||||
|
||||
|
||||
# No all rule
|
||||
|
||||
install-etc:
|
||||
$(MKDIR) $(ETCDIR)
|
||||
if [ ! -e $(ETCINSTALL) ] ; then \
|
||||
$(INSTALL) -o root -g root -m 644 $(ETCTARGET) $(ETCINSTALL); \
|
||||
fi
|
||||
install :: install-etc
|
||||
|
||||
# No clean rule
|
||||
@@ -0,0 +1,120 @@
|
||||
# Hardware sensors configuration file
|
||||
|
||||
# This configuration file will be used by all applcations linked to
|
||||
# libsensors.
|
||||
|
||||
# Hash marks introduce comments, which continue until the end of a line
|
||||
#
|
||||
# Identifiers consisting of only digits and letters can be used
|
||||
# unquoted; other identifiers must be quoted. Escape characters within
|
||||
# quotes operate like those in C.
|
||||
|
||||
# A 'chip' line specifies what the following 'label', 'compute', 'set' and
|
||||
# (not yet implemented) 'valid' lines refer to. In this case, until the
|
||||
# next 'chip' line, everything refers to all lm78, lm78-j and lm79
|
||||
# chips. Other examples are *-isa-* for everything on the ISA bus, and
|
||||
# lm78-j-i2c-*-4e for all lm78-j chips on address 0x4e of any I2C bus.
|
||||
#
|
||||
# If more chip statements match a specific chip, they are all considered.
|
||||
# Later lines overrule earlier lines, so if you set the in0 label for
|
||||
# lm78-* to "This", and later on the in0 label for lm78-isa-* to "That",
|
||||
# "That" is used for LM78 chips on the ISA bus, and "This" for LM78
|
||||
# chips on a non-ISA bus.
|
||||
|
||||
chip "lm78-*" "lm78-j-*" "lm79-*"
|
||||
|
||||
# A label line describes what a certain feature stands for on your
|
||||
# mainboard. Programs can retrieve these names and display them.
|
||||
# If no label is specified for a certain feature, the default name
|
||||
# (ie. 'fan1' for fan1) is used.
|
||||
|
||||
# If you specify a label for in1, this label is also used for in1_min and
|
||||
# in1_max, unless they have their own labels declared. There are several
|
||||
# of these logical groups.
|
||||
|
||||
# These are as advised in the LM78 and LM79 data sheets, and used on almost
|
||||
# any # mainboard we have seen.
|
||||
|
||||
label in0 "VCore 1"
|
||||
label in1 "VCore 2"
|
||||
label in2 "+3.3V"
|
||||
label in3 "+5V"
|
||||
label in4 "+12V"
|
||||
label in5 "-12V"
|
||||
label in6 "-5V"
|
||||
|
||||
# A compute line describes how to scale a certain feature. There are
|
||||
# two expressions in it: the first describes how the /proc value must
|
||||
# be translated to a user value, the second how a user value must be
|
||||
# translated to a /proc value. 'val' is the value to operate on.
|
||||
|
||||
# Like for the label statement, there are logical groups here. They are
|
||||
# sometimes a bit different, though. For example, fan1_div is in the
|
||||
# logical label group of fan1 (it gets the same label if none is declared
|
||||
# for it), but it is not in the compute group of fan1 (as it uses a
|
||||
# completely different system of values).
|
||||
|
||||
# For positive voltages (in0..in4), two resistors are used, with the following
|
||||
# formula (R1,R2: resistor values, Vs: read voltage, Vin: pin voltage)
|
||||
# R1 = R2 * (Vs/Vin - 1)
|
||||
# For negative voltages (in5, in6) two resistors are used, with the following
|
||||
# formula (Rin,Rf: resistor values, Vs: read voltage, Vin: pin voltage)
|
||||
# Rin = (Vs * Rf) / Vin
|
||||
|
||||
# Here are the official LM78 and LM79 data sheet values.
|
||||
# Vs R1,Rin R2,Rf Vin
|
||||
# in3 +5.0 6.8 10 +2.98
|
||||
# in4 +12.0 30 10 +3.00
|
||||
# in5 -12.0 240 60 +3.00
|
||||
# in6 -5.0 100 60 +3.00
|
||||
|
||||
# These would lead to these declarations:
|
||||
# compute in3 ((6.8/10)+1)*val , val/((6.8/10)+1)
|
||||
# compute in4 ((30/10)+1)*val , val/((30/10)+1)
|
||||
# compute in5 -(240/60)*val , -val/(240/60)
|
||||
# compute in6 -(100/60)*val , -val/(100/60)
|
||||
|
||||
# On almost any mainboard we have seen, the Winbond compute values lead to
|
||||
# much better results, though.
|
||||
|
||||
# Vs R1,Rin R2,Rf Vin
|
||||
# in4 +12.0 28 10 +3.00
|
||||
# in5 -12.0 210 60.4 +3.00
|
||||
# in6 -5.0 90.9 60.4 +3.00
|
||||
|
||||
# These leads to these declarations:
|
||||
compute in3 ((6.8/10)+1)*val , val/((6.8/10)+1)
|
||||
compute in4 ((28/10)+1)*val , val/((28/10)+1)
|
||||
compute in5 -(210/60.4)*val , -val/(210/60.4)
|
||||
compute in6 -(90.9/60.4)*val , -val/(90.9/60.4)
|
||||
|
||||
# Set statements set things like limits. Complete expressions can be
|
||||
# used. Not everything can sensibly be set: setting 'in0', for example,
|
||||
# is impossible! These settings # are put through the compute translations;
|
||||
# so if we specify '12.8' # for in6, '3.2' will actually be written!
|
||||
|
||||
# Though set statements are correctly parsed at this moment, nothing will
|
||||
# be done with them yet by libsensors
|
||||
|
||||
# Invalid statements tell certain features are not wanted. User programs can
|
||||
# still read them if they really want, though; this is just an advisory
|
||||
# marking. 'in0' would also invalidate 'in0_max' and 'in0_min'.
|
||||
# The invalid keyword is not yet recognized by the parser.
|
||||
|
||||
|
||||
# There is one other feature: the 'bus' statement. An example is below.
|
||||
|
||||
bus "i2c-0" "SMBus PIIX4 adapter at e800" "Non-I2C SMBus adapter"
|
||||
|
||||
# If we refer from now on to 'i2c-0' in 'chip' lines, this will run-time
|
||||
# be matched to this bus. So even if the PIIX4 is called 'i2c-5' at that
|
||||
# moment, because five other adapters were detected first, 'i2c-0' in
|
||||
# the config file would always only match this physical bus. In the above
|
||||
# config file, this feature is not needed; but the next lines would
|
||||
# only affect the LM75 chips on the PIIX4 adapter:
|
||||
|
||||
chip "lm75-i2c-0-*"
|
||||
|
||||
# You should really use the output of /proc/bus/chips to generate bus lines,
|
||||
# because one mistyped characted will inhibit the match. Wildcards are not
|
||||
# yet supported; spaces at the end are ignored, though.
|
||||
+8
-10
@@ -65,11 +65,8 @@
|
||||
|
||||
|
||||
/* Conversions. Rounding is only done on the TO_REG variants. */
|
||||
static int lm78_in_conv[7] = {10000, 10000, 10000, 16892, 38000,
|
||||
-34768, -15050 };
|
||||
#define IN_TO_REG(val,nr) (((((val) * 100000 / lm78_in_conv[nr]) + 8) / 16) \
|
||||
& 0xff)
|
||||
#define IN_FROM_REG(val,nr) (((val) * 16 * lm78_in_conv[nr]) / 100000)
|
||||
#define IN_TO_REG(val,nr) (((val) * 10 + 8)/16)
|
||||
#define IN_FROM_REG(val,nr) (((val) * 16) / 10)
|
||||
|
||||
#define FAN_TO_REG(val) ((val)==0?255:((1350000+(val))/((val)*2)) & 0xff)
|
||||
#define FAN_FROM_REG(val) ((val)==0?-1:(val)==255?0:1350000/((val)*2))
|
||||
@@ -84,14 +81,15 @@ static int lm78_in_conv[7] = {10000, 10000, 10000, 16892, 38000,
|
||||
#define DIV_FROM_REG(val) (1 << (val))
|
||||
#define DIV_TO_REG(val) ((val)==8?3:(val)==4?2:(val)==1?0:1)
|
||||
|
||||
/* Initial limits */
|
||||
/* Initial limits. To keep them sane, we use the 'standard' translation as
|
||||
specified in the LM78 sheet. Use the config file to set better limits. */
|
||||
#define LM78_INIT_IN_0 (vid==350?280:vid)
|
||||
#define LM78_INIT_IN_1 (vid==350?280:vid)
|
||||
#define LM78_INIT_IN_2 330
|
||||
#define LM78_INIT_IN_3 500
|
||||
#define LM78_INIT_IN_4 1200
|
||||
#define LM78_INIT_IN_5 -1200
|
||||
#define LM78_INIT_IN_6 -500
|
||||
#define LM78_INIT_IN_3 (((500) * 100)/168)
|
||||
#define LM78_INIT_IN_4 (((1200) * 10)/38)
|
||||
#define LM78_INIT_IN_5 (((-1200) * -604)/2100)
|
||||
#define LM78_INIT_IN_6 (((-500) * -604)/909)
|
||||
|
||||
#define LM78_INIT_IN_PERCENTAGE 10
|
||||
|
||||
|
||||
+8
-10
@@ -65,11 +65,8 @@
|
||||
|
||||
|
||||
/* Conversions. Rounding is only done on the TO_REG variants. */
|
||||
static int lm78_in_conv[7] = {10000, 10000, 10000, 16892, 38000,
|
||||
-34768, -15050 };
|
||||
#define IN_TO_REG(val,nr) (((((val) * 100000 / lm78_in_conv[nr]) + 8) / 16) \
|
||||
& 0xff)
|
||||
#define IN_FROM_REG(val,nr) (((val) * 16 * lm78_in_conv[nr]) / 100000)
|
||||
#define IN_TO_REG(val,nr) (((val) * 10 + 8)/16)
|
||||
#define IN_FROM_REG(val,nr) (((val) * 16) / 10)
|
||||
|
||||
#define FAN_TO_REG(val) ((val)==0?255:((1350000+(val))/((val)*2)) & 0xff)
|
||||
#define FAN_FROM_REG(val) ((val)==0?-1:(val)==255?0:1350000/((val)*2))
|
||||
@@ -84,14 +81,15 @@ static int lm78_in_conv[7] = {10000, 10000, 10000, 16892, 38000,
|
||||
#define DIV_FROM_REG(val) (1 << (val))
|
||||
#define DIV_TO_REG(val) ((val)==8?3:(val)==4?2:(val)==1?0:1)
|
||||
|
||||
/* Initial limits */
|
||||
/* Initial limits. To keep them sane, we use the 'standard' translation as
|
||||
specified in the LM78 sheet. Use the config file to set better limits. */
|
||||
#define LM78_INIT_IN_0 (vid==350?280:vid)
|
||||
#define LM78_INIT_IN_1 (vid==350?280:vid)
|
||||
#define LM78_INIT_IN_2 330
|
||||
#define LM78_INIT_IN_3 500
|
||||
#define LM78_INIT_IN_4 1200
|
||||
#define LM78_INIT_IN_5 -1200
|
||||
#define LM78_INIT_IN_6 -500
|
||||
#define LM78_INIT_IN_3 (((500) * 100)/168)
|
||||
#define LM78_INIT_IN_4 (((1200) * 10)/38)
|
||||
#define LM78_INIT_IN_5 (((-1200) * -604)/2100)
|
||||
#define LM78_INIT_IN_6 (((-500) * -604)/909)
|
||||
|
||||
#define LM78_INIT_IN_PERCENTAGE 10
|
||||
|
||||
|
||||
Reference in new issue
Block a user