[CentOS] Supermicro X6DH8-G2+ / sensors not working

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Hello,

I'm having problems with lm_sensors on the motherboard Supermicro X6DH8-G2+
sensors-detect gives me the output attached in the textfile
sensors-detect-output.txt

As soon as I execute the recommended 'modprobe smbus-arp' I receive the
following message:
FATAL: Module smbus_arp not found.

When I execute sensors, I receive the following:
======================================================
[root@matrix ~]# sensors
eeprom-i2c-0-57
Adapter: SMBus I801 adapter at 1100
Unknown EEPROM type (8)

eeprom-i2c-0-53
Adapter: SMBus I801 adapter at 1100
Unknown EEPROM type (8)
======================================================

I also attached sensors.conf from /etc for reference.
I'm using xen-3.0.2 with kernel 2.6.16 and all Hardware Monitoring and
i2c stuff compiled as modules (as being done in the standard kernel).
My distribution is CentOS-4.4 hence my sensors version is
'lm_sensors-2.8.7-2.40.3'
sensors doesn't run either with the non-xen kernel, i.e. the stock
kernel that came with CentOS-4.4: kernel-2.6.9-42.0.2.EL

Is there any way to get sensors running on this mainboard?

Thanks in advance!

Regards - Michael
-- 
Michael Kress, kress@xxxxxxxxxxx
http://www.michael-kress.de / http://kress.net
P E N G U I N S   A R E   C O O L




-- 
Michael Kress, kress@xxxxxxxxxxx
http://www.michael-kress.de / http://kress.net
P E N G U I N S   A R E   C O O L

[root@matrix ~]# sensors-detect

This program will help you determine which I2C/SMBus modules you need to
load to use lm_sensors most effectively. You need to have i2c and
lm_sensors installed before running this program.
Also, you need to be `root', or at least have access to the /dev/i2c-*
files, for most things.
If you have patched your kernel and have some drivers built in, you can
safely answer NO if asked to load some modules. In this case, things may
seem a bit confusing, but they will still work.

It is generally safe and recommended to accept the default answers to all
questions, unless you know what you're doing.

 We can start with probing for (PCI) I2C or SMBus adapters.
 You do not need any special privileges for this.
 Do you want to probe now? (YES/no): YES
Probing for PCI bus adapters...
Use driver `i2c-i801' for device 00:1f.3: Intel 82801EB ICH5
Probe succesfully concluded.

We will now try to load each adapter module in turn.
Load `i2c-i801' (say NO if built into your kernel)? (YES/no): YES
Module loaded succesfully.
If you have undetectable or unsupported adapters, you can have them
scanned by manually loading the modules before running this script.

 To continue, we need module `i2c-dev' to be loaded.
 If it is built-in into your kernel, you can safely skip this.
 i2c-dev is not loaded. Do you want to load it now? (YES/no): YES
 Module loaded succesfully.

 We are now going to do the adapter probings. Some adapters may hang halfway
 through; we can't really help that. Also, some chips will be double detected;
 we choose the one with the highest confidence value in that case.
 If you found that the adapter hung after probing a certain address, you can
 specify that address to remain unprobed. That often
 includes address 0x69 (clock chip).

Next adapter: SMBus I801 adapter at 1100 (Algorithm unavailable)
Do you want to scan it? (YES/no/selectively): YES
Client found at address 0x08
Client found at address 0x2e
Probing for `Myson MTP008'... Failed!
Probing for `National Semiconductor LM78'... Failed!
Probing for `National Semiconductor LM78-J'... Failed!
Probing for `National Semiconductor LM79'... Failed!
Probing for `National Semiconductor LM80'... Failed!
Probing for `National Semiconductor LM85'... Failed!
Probing for `Analog Devices ADM1027, ADT7460 or ADT7463'... Failed!
Probing for `SMSC EMC6D100 or EMC6D101'... Failed!
Probing for `Analog Devices ADT7467'... Failed!
Probing for `National Semiconductor LM87'... Failed!
Probing for `Winbond W83781D'... Failed!
Probing for `Winbond W83782D'... Failed!
Probing for `Winbond W83791D'... Failed!
Probing for `Winbond W83627HF'... Failed!
Probing for `Asus AS99127F (rev.1)'... Failed!
Probing for `Asus AS99127F (rev.2)'... Failed!
Probing for `Asus ASB100 Bach'... Failed!
Probing for `Winbond W83L785TS-S'... Failed!
Probing for `Analog Devices ADM9240'... Failed!
Probing for `Dallas Semiconductor DS1780'... Failed!
Probing for `National Semiconductor LM81'... Failed!
Probing for `Analog Devices ADM1026'... Failed!
Probing for `Analog Devices ADM1025'... Failed!
Probing for `Analog Devices ADM1024'... Failed!
Probing for `Analog Devices ADM1029'... Failed!
Probing for `Analog Devices ADM1030'... Failed!
Probing for `Analog Devices ADM1031'... Failed!
Probing for `Analog Devices ADM1022'... Failed!
Probing for `Texas Instruments THMC50'... Failed!
Probing for `Analog Devices ADM1028'... Failed!
Probing for `ITE IT8705F / IT8712F / SiS 950'... Failed!
Client found at address 0x30
Client found at address 0x33
Client found at address 0x37
Client found at address 0x44
Probing for `Maxim MAX6633/MAX6634/MAX6635'... Failed!
Client found at address 0x53
Probing for `SPD EEPROM'... Success!
    (confidence 8, driver `eeprom')
Client found at address 0x57
Probing for `SPD EEPROM'... Success!
    (confidence 8, driver `eeprom')
Probing for `Sony Vaio EEPROM'... Failed!
Client found at address 0x60
Client found at address 0x61
Probing for `SMBus 2.0 ARP-Capable Device'... Success!
    (confidence 1, driver `smbus-arp')
Client found at address 0x69
Client found at address 0x6c
Client found at address 0x6e

Some chips are also accessible through the ISA bus. ISA probes are
typically a bit more dangerous, as we have to write to I/O ports to do
this. This is usually safe though.

Do you want to scan the ISA bus? (YES/no): YES
Probing for `National Semiconductor LM78'
  Trying address 0x0290... Failed!
Probing for `National Semiconductor LM78-J'
  Trying address 0x0290... Failed!
Probing for `National Semiconductor LM79'
  Trying address 0x0290... Failed!
Probing for `Winbond W83781D'
  Trying address 0x0290... Failed!
Probing for `Winbond W83782D'
  Trying address 0x0290... Failed!
Probing for `Winbond W83627HF'
  Trying address 0x0290... Failed!
Probing for `Winbond W83697HF'
  Trying address 0x0290... Failed!
Probing for `Silicon Integrated Systems SIS5595'
  Trying general detect... Failed!
Probing for `VIA Technologies VT82C686 Integrated Sensors'
  Trying general detect... Failed!
Probing for `VIA Technologies VT8231 Integrated Sensors'
  Trying general detect... Failed!
Probing for `ITE IT8705F / IT8712F / SiS 950'
  Trying address 0x0290... Failed!
Probing for `IPMI BMC KCS'
  Trying address 0x0ca0... Failed!
Probing for `IPMI BMC SMIC'
  Trying address 0x0ca8... Failed!

Some Super I/O chips may also contain sensors. Super I/O probes are
typically a bit more dangerous, as we have to write to I/O ports to do
this. This is usually safe though.

Do you want to scan for Super I/O sensors? (YES/no): YES
Probing for `ITE 8702F Super IO Sensors'
  Failed! (0xf211)
Probing for `ITE 8705F Super IO Sensors'
  Failed! (0xf211)
Probing for `ITE 8712F Super IO Sensors'
  Failed! (0xf211)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87360 Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87363 Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87364 Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87365 Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87365 Super IO Voltage Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87365 Super IO Thermal Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87366 Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87366 Super IO Voltage Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87366 Super IO Thermal Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87372 Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC87373 Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `Nat. Semi. PC8741x Super IO'
  Failed! (0xf2)
Probing for `SMSC 47B27x Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `SMSC 47M10x/13x Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `SMSC 47M14x Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `SMSC 47M15x/192 Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `SMSC 47S42x Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `SMSC 47S45x Super IO Fan Sensors'
  Failed! (0xf2)
Probing for `SMSC 47M172 Super IO'
  Failed! (0xf2)
Probing for `VT1211 Super IO Sensors'
  Failed! (0xf2)
Probing for `Winbond W83627HF Super IO Sensors'
  Failed! (0xf2)
Probing for `Winbond W83627THF Super IO Sensors'
  Failed! (0xf2)
Probing for `Winbond W83637HF Super IO Sensors'
  Failed! (0xf2)
Probing for `Winbond W83697HF Super IO Sensors'
  Failed! (0xf2)
Probing for `Winbond W83697SF/UF Super IO PWM'
  Failed! (0xf2)
Probing for `Winbond W83L517D Super IO'
  Failed! (0xf2)

Do you want to scan for secondary Super I/O sensors? (YES/no): YES
Probing for `ITE 8702F Super IO Sensors'
  Failed! (0xe111)
Probing for `ITE 8705F Super IO Sensors'
  Failed! (0xe111)
Probing for `ITE 8712F Super IO Sensors'
  Failed! (0xe111)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87360 Super IO Fan Sensors'
  Success... but not activated
Probing for `Nat. Semi. PC87363 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87364 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87365 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87365 Super IO Voltage Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87365 Super IO Thermal Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87366 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87366 Super IO Voltage Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87366 Super IO Thermal Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87372 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC87373 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `Nat. Semi. PC8741x Super IO'
  Failed! (0xe1)
Probing for `SMSC 47B27x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47M10x/13x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47M14x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47M15x/192 Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47S42x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47S45x Super IO Fan Sensors'
  Failed! (0xe1)
Probing for `SMSC 47M172 Super IO'
  Failed! (0xe1)
Probing for `VT1211 Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83627HF Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83627THF Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83637HF Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83697HF Super IO Sensors'
  Failed! (0xe1)
Probing for `Winbond W83697SF/UF Super IO PWM'
  Failed! (0xe1)
Probing for `Winbond W83L517D Super IO'
  Failed! (0xe1)

 Now follows a summary of the probes I have just done.
 Just press ENTER to continue:

Driver `eeprom' (should be inserted):
  Detects correctly:
  * Bus `SMBus I801 adapter at 1100' (Algorithm unavailable)
    Busdriver `i2c-i801', I2C address 0x53
    Chip `SPD EEPROM' (confidence: 8)
  * Bus `SMBus I801 adapter at 1100' (Algorithm unavailable)
    Busdriver `i2c-i801', I2C address 0x57
    Chip `SPD EEPROM' (confidence: 8)

Driver `smbus-arp' (should be inserted):
  Detects correctly:
  * Bus `SMBus I801 adapter at 1100' (Algorithm unavailable)
    Busdriver `i2c-i801', I2C address 0x61
    Chip `SMBus 2.0 ARP-Capable Device' (confidence: 1)


 I will now generate the commands needed to load the I2C modules.
 Sometimes, a chip is available both through the ISA bus and an I2C bus.
 ISA bus access is faster, but you need to load an additional driver module
 for it. If you have the choice, do you want to use the ISA bus or the
 I2C/SMBus (ISA/smbus)? SMBUS

To make the sensors modules behave correctly, add these lines to
/etc/modules.conf:

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----

To load everything that is needed, add this to some /etc/rc* file:

#----cut here----
# I2C adapter drivers
modprobe i2c-i801
# I2C chip drivers
modprobe eeprom
modprobe smbus-arp
# sleep 2 # optional
/usr/bin/sensors -s # recommended
#----cut here----

WARNING! If you have some things built into your kernel, the list above
will contain too many modules. Skip the appropriate ones! You really should
try these commands right now to make sure everything is working properly.
Monitoring programs won't work until it's done.

Do you want to generate /etc/sysconfig/lm_sensors? (YES/no): YES
Copy prog/init/lm_sensors.init to /etc/rc.d/init.d/lm_sensors
for initialization at boot time.

# Sensors configuration file used by 'libsensors'
#------------------------------------------------
#
##########################################################################
#                                                                        #
#    PLEASE READ THIS HELPFUL HINT!!!                                    #
#                                                                        #
#       The 'set' lines (generally for min and max values)               #
#       do not take effect until you run 'sensors -s' as root !!!        #
#       We suggest you put 'sensors -s' in a /etc/rc.d/... file          #
#       to be run at boot time after the modules are inserted !!!        #
#                                                                        #
##########################################################################
#
#
# OVERVIEW
# --------
# This configuration file will be used by all userspace applications
# linked to libsensors. It is NOT used by the lm_sensors drivers directly.
#
# This config file consists of two parts: the heavily commented LM78
# example, and the real parts. Search for '####' if you want to skip
# to the real stuff.
#
# 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.
#
#
# CHIP LINES
# ----------
# A 'chip' line specifies what the following 'label', 'compute', 'set' and
# 'ignore' 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-*"
#
#
# FEATURE NAMES
# -------------
# Feature names are used in 'label', 'compute', 'set', and 'ignore' lines.
# Example feature names are 'in0', 'temp2', 'in3_min', and 'temp3_over'.
# These features are defined for each chip in lib/chips.c.
#
# Undefined features will be silently ignored in 'label' and 'compute' lines.
# Undefined features in 'set' lines will result in 'Unknonw feature name'
# when running 'sensors -s'.
#
# Unfortunately, feature names starting with a number must be in
# double quotes or you get 'parse error, expecting 'NAME''.
#
# If you have trouble, verify the features in lib/chips.c!!!
#
#
# LABEL LINES
# -----------
# 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 most
# boards 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"
#
#
# COMPUTE LINES
# -------------
# 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. '@' is the value to operate on. You may
# refer to other readable features (like '2 * vid').
#
# The following operators are valid: + - * / ( ) ^ `
# ^ is e**x and ` is ln(x) (valid in library version 2.0.0 /
# lm_sensors 2.8.0 or higher)
#
# 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).
#
#
# VOLTAGE COMPUTATION DETAILS
# ---------------------------
# Most voltage sensors in sensor chips have a range of 0 to 4.096 Volts.
# This is generally sufficient for the 3.3 and CPU (2.5V, for example)
# supply voltages, so the sensor chip reading is the actual voltage.
#
# Other supply voltages must be scaled with an external resistor network.
# The chip driver generally reports the 'raw' value 0 - 4.09 V, and the
# userspace application must convert this raw value to an actual voltage.
# The 'compute' lines provide this facility.
#
# Unfortunately the resistor values vary among motherboard types.
# Therefore you may have to adjust the computations in this file
# to match your motherboard.
#
# For positive voltages (in3, 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
#
# Note: Some chips use a different formula, see it87 section for example.
#
# 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)*@ ,  @/((6.8/10)+1)
#       compute in4 ((30/10)+1)*@  ,  @/((30/10)+1)
#       compute in5 -(240/60)*@    ,  -@/(240/60)
#       compute in6 -(100/60)*@    ,  -@/(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)*@ ,  @/((6.8/10)+1)
#       compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
#       compute in5 -(210/60.4)*@  ,  -@/(210/60.4)
#       compute in6 -(90.9/60.4)*@ ,  -@/(90.9/60.4)
#
#
# SET LINES
# ---------
# 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!
#
# Important note: In the 'sensors' program, these only take effect
# after running 'sensors -s'!!!
#
# Here are some examples:
#
#       set in0_max vid*1.05
#       set in0_min vid*0.95
#       set temp1_over 40
#       set temp1_hyst 37
#
# Think of tempx_over as 'alarm set' and tempx_hyst as 'alarm clear'
# thresholds. In most cases the 'over' value should be higher than
# the 'hyst' value by several degrees.
#
#
# IGNORE LINES
# ------------
# Ignore 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'.
# 'ignore' does not disable anything in the actual sensor chip; it
# simply advises the user program to not access that data.
#
#       ignore in0
#
#
# STATEMENT ORDER
# ---------------
# Statements can go in any order, EXCEPT that some statements depend
# on others. Dependencies could be either in the library or the driver.
# A 'compute' statement must go before a 'set' statement
# for the same feature or else the 'set' won't be computed correctly.
# This is a library dependency.
# A 'set fan1_div' statement must go before a 'set fan1_min' statement,
# because the driver uses the divisor in calculating the minimum.
# Also, one should set vrm prior to using vid in any formula.
#
#
# BUS LINES
# ---------
# 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.
#
#
# BEEPS
# -----
# Some chips support alarms with beep warnings. When an alarm is triggered
# you can be warned by a beeping signal through your computer speaker. It
# is possible to enable beeps for all alarms on a chip using the following
# line:
#
#       set beep_enable 1
#
# or disable them using:
#
#       set beep_enable 0
#
##########################################################################
#### Here begins the real configuration file


chip "lm78-*" "lm78-j-*" "lm79-*" "w83781d-*"

# 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"

# For positive voltages (in3, 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)*@ ,  @/((6.8/10)+1)
# compute in4 ((30/10)+1)*@  ,  @/((30/10)+1)
# compute in5 -(240/60)*@    ,  -@/(240/60)
# compute in6 -(100/60)*@    ,  -@/(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)*@ ,  @/((6.8/10)+1)
    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
    compute in5 -(210/60.4)*@  ,  -@/(210/60.4)
    compute in6 -(90.9/60.4)*@ ,  -@/(90.9/60.4)

# Here, we assume the VID readings are valid, and we use a max. 5% deviation

    set in0_min vid*0.95
    set in0_max vid*1.05
    set in1_min vid*0.95
    set in1_max vid*1.05
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12 * 0.95
    set in4_max 12 * 1.05
    set in5_max -12 * 0.95
    set in5_min -12 * 1.05
    set in6_max -5 * 0.95
    set in6_min -5 * 1.05

# Examples for lm78, lm78j, lm79 temperature limits
#    set temp_over 40
#    set temp_hyst 37

# Examples for w83781d temperature limits
#    set temp1_over 40
#    set temp1_hyst 37
#    set temp2_over 52
#    set temp2_hyst 47
#    set temp3_over 52
#    set temp3_hyst 47

# Ignore fans you don't actually have
#    ignore fan1
#    ignore fan2
#    ignore fan3

# In case a lm78 is used together with a lm75, the lm78 temp sensor will
# generally show the M/B temperature while the lm75 temp sensor will show
# the CPU temperature.
#    label temp "M/B Temp"

# Uncomment the following line to enable beeps for all alarms on this chip
#    set beep_enable 1


chip "lm75-*"

# Most boards don't need scaling. Following is
# for the Asus TX97-E. If it doesn't work for you, feel free to complain.
#   compute temp @*2.0, @/2.0

# Examples for temperature limits
#    set temp_over 70
#    set temp_hyst 65

# In case a lm75 is used together with a lm78, the lm78 temp sensor will
# generally show the M/B temperature while the lm75 temp sensor will show
# the CPU temperature.
#    label temp "CPU Temp"


chip "sis5595-*"

    label in0 "VCore 1"
    label in1 "VCore 2"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"

    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)

    set in0_min 2.0 * 0.95
    set in0_max 2.0 * 1.05
    set in1_min 2.0 * 0.95
    set in1_max 2.0 * 1.05
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12 * 0.95
    set in4_max 12 * 1.05

#
# SiS5595 temperature calculation
# The driver currently includes a calculation due to the wide
# variation in thermistor types on SiS5595 motherboards.
# The driver currently has a calculation of t = (.83x + 52.12).
# One user reports the correct formula of t = (.345x - 12).
# So you want to put a compute line in sensors.conf that has
# the inverse of the driver formula, and put your formula on top of it.
# The inverse of the driver formula is x = (1.20t - 62.77)
# So the final formula is newt = (.345(1.20t - 62.77)) - 12).
# Put this in the sensors.conf file as
# compute temp ((.345 * ((1.20 * @) - 62.77)) - 12), ...
# where ... is the inverse function I leave to you.
#
# Look in your 'Vendor.ini' file to see which one is present
# on your motherboard. Look for the line like:
#       [Temp1]
#            ThermistorType     = NTC-10KC15-1608-1P
# Fix up a 'compute' line to match your thermistor type.
# Warning. You still don't have enough information to do this.
#            ThermistorType     = NTC-10KC15-1608-1P (10K at 25C; Beta = 3435)
#   compute temp ((X * ((1.20 * @) - 62.77)) - Y), ...
#            ThermistorType     = NTC-103KC15-1608-1P  (??)
#   compute temp ((X * ((1.20 * @) - 62.77)) - Y), ...
#            ThermistorType     = NTC-103AT-2 (10K at 25C; Beta = 3435)
#   compute temp ((X * ((1.20 * @) - 62.77)) - Y), ...
#            ThermistorType     = NTC-103JT   (10K at 25C; Beta = 3435)
#   compute temp ((X * ((1.20 * @) - 62.77)) - Y), ...

# examples for sis5595 temperature limits;
# for sis5595, temp_hyst is really the low limit, not a hysteresis value
#    set temp_over 40
#    set temp_hyst 37


chip "w83782d-*" "w83627hf-*"

# Same as above for w83781d except that in5 and in6 are computed differently.
# Rather than an internal inverting op amp, the 82d/83s use standard positive
# inputs and the negative voltages are level shifted by a 3.6V reference.
# The math is convoluted, so we hope that your motherboard
# uses the recommended resistor values.

    label in0 "VCore 1"
    label in1 "VCore 2"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"
    label in5 "-12V"
    label in6 "-5V"
    label in7 "V5SB"
    label in8 "VBat"

# Abit BP6 motherboard has a few differences. VCore1 and VCore2 are the core
# voltages of the two processors. Vtt is memory bus termination resistors
# voltage.
#    label in1 "Vtt"
#    label in8 "VCore2"

    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
    compute in5 (5.14 * @) - 14.91  ,  (@ + 14.91) / 5.14
    compute in6 (3.14 * @) -  7.71  ,  (@ +  7.71) / 3.14
    compute in7 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)

# adjust this if your vid is wrong; see doc/vid
#   set vrm 9.0

# set limits to  5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage

    set in0_min vid*0.95
    set in0_max vid*1.05
    set in1_min vid*0.95
    set in1_max vid*1.05
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12 * 0.90
    set in4_max 12 * 1.10
    set in5_max -12 * 0.90
    set in5_min -12 * 1.10
    set in6_max -5 * 0.95
    set in6_min -5 * 1.05
    set in7_min 5 * 0.95
    set in7_max 5 * 1.05
    set in8_min 3.0 * 0.80
    set in8_max 3.0 * 1.20

# set up sensor types (thermistor is default)
# 1 = PII/Celeron Diode; 2 = 3904 transistor;
# 3435 = thermistor with Beta = 3435
# If temperature changes very little, try 1 or 2.
#   set sensor1 1
#   set sensor2 2
#   set sensor3 3435

# examples for temperature limits
#    set temp1_over 40
#    set temp1_hyst 37
#    set temp2_over 52
#    set temp2_hyst 47
#    set temp3_over 52
#    set temp3_hyst 47


chip "w83783s-*"

# Same as above for w83781d except that in5 and in6 are computed differently.
# Rather than an internal inverting op amp, the 82d/83s use standard positive
# inputs and the negative voltages are level shifted by a 3.6V reference.
# The math is convoluted, so we hope that your motherboard
# uses the recommended resistor values.

    label in0 "VCore 1"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"
    label in5 "-12V"
    label in6 "-5V"

    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
    compute in5 (5.14 * @) - 14.91  ,  (@ + 14.91) / 5.14
    compute in6 (3.14 * @) -  7.71  ,  (@ +  7.71) / 3.14

# adjust this if your vid is wrong; see doc/vid
#   set vrm 9.0

# set limits to  5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage

    set in0_min vid*0.95
    set in0_max vid*1.05
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12 * 0.90
    set in4_max 12 * 1.10
    set in5_max -12 * 0.90
    set in5_min -12 * 1.10
    set in6_max -5 * 0.95
    set in6_min -5 * 1.05

# set up sensor types (thermistor is default)
# 1 = PII/Celeron Diode; 2 = 3904 transistor;
# 3435 = thermistor with Beta = 3435
# If temperature changes very little, try 1 or 2.
#   set sensor1 1
#   set sensor2 2

# examples for temperature limits
#    set temp1_over 40
#    set temp1_hyst 37
#    set temp2_over 52
#    set temp2_hyst 47


chip "w83697hf-*"

# Same as above for w83781d except that in5 and in6 are computed differently.
# Rather than an internal inverting op amp, the 82d/83s use standard positive
# inputs and the negative voltages are level shifted by a 3.6V reference.
# The math is convoluted, so we hope that your motherboard
# uses the recommended resistor values.

# no in1 on this chip.

    label in0 "VCore"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"
    label in5 "-12V"
    label in6 "-5V"
    label in7 "V5SB"
    label in8 "VBat"

# Tyan Trinity S2495 KT400 has a few differences. Thanks to Eric Schumann
# for proving this information. Same is true for Epox 8K3A and 8KHA+.
# Thanks to Thomas Schorpp for additional feedback.
#    label in2 "VAgp"
#    label in5 "+3.3V" # aka. Vio
#    label in6 "Vdimm"
#    label in7 "VBat"
#    label in8 "V5SB"
#
# You'll also want to comment out the in5 and in6 compute lines right below,
# and rename compute in7 to compute in8.

    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
    compute in5 (5.14 * @) - 14.91  ,  (@ + 14.91) / 5.14
    compute in6 (3.14 * @) -  7.71  ,  (@ +  7.71) / 3.14
    compute in7 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)

# 697HF does not have VID inputs so you MUST set your core
# voltage limits below. Currently set for 1.8V core.
#               vvv

    set in0_min 1.8 * 0.95
    set in0_max 1.8 * 1.05

    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12 * 0.90
    set in4_max 12 * 1.10
    set in5_max -12 * 0.90
    set in5_min -12 * 1.10
    set in6_max -5 * 0.95
    set in6_min -5 * 1.05
    set in7_min 5 * 0.95
    set in7_max 5 * 1.05
    set in8_min 3.0 * 0.80
    set in8_max 3.0 * 1.20

# And for Tyan Trinity S2495 KT400 and Epox 8K3A and 8KHA+:
#    set in2_min 1.5 * 0.95
#    set in2_max 1.5 * 1.05
#    set in5_min 3.3 * 0.95
#    set in5_max 3.3 * 1.05
#    set in6_min 2.5 * 0.95 # 2.6 on Epox?
#    set in6_max 2.5 * 1.05 # 2.6 on Epox?
#    set in7_min 3.0 * 0.90
#    set in7_max 3.0 * 1.10
#    set in8_min 5 * 0.90
#    set in8_max 5 * 1.10

# set up sensor types (thermistor is default)
# 1 = PII/Celeron Diode; 2 = 3904 transistor;
# 3435 = thermistor with Beta = 3435
# If temperature changes very little, try 1 or 2.
#   set sensor1 1
#   set sensor2 2
#   set sensor3 3435

# examples for temperature limits
#    set temp1_over 40
#    set temp1_hyst 37
#    set temp2_over 52
#    set temp2_hyst 47


chip "w83627thf-*" "w83637hf-*"

# Rather than an internal inverting op amp, the 627thf uses standard positive
# inputs and the negative voltages are level shifted by a 3.6V reference
# (same as 82d/83s).
# The math is convoluted, so we hope that your motherboard
# uses the recommended resistor values.
# Note that in1 (+12V) is the usual in4, and in4 (-12V) is the usual in5.
# Data sheet is obviously wrong for in4, the usual formula should work.
# No in5 nor in6.

    label in0 "VCore"
    label in1 "+12V"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "-12V"
    label in7 "V5SB"
    label in8 "VBat"

# Mori Hiroyuki reported to need this (P4P800)
#   compute in0 @/2, @*2

    compute in1 ((28/10)+1)*@, @/((28/10)+1)
    compute in3 ((34/51)+1)*@, @/((34/51)+1)
    compute in4 (5.14*@)-14.91, (@+14.91)/5.14
    compute in7 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)

# adjust this if your vid is wrong; see doc/vid
#   set vrm 9.0

# set limits to  5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage
# if your vid is wrong, you'll need to adjust in0_min and in0_max

    set in0_min vid * 0.95
    set in0_max vid * 1.05
    set in1_min 12 * 0.90
    set in1_max 12 * 1.10
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min -12 * 0.90
    set in4_max -12 * 1.10
    set in7_min 5 * 0.95
    set in7_max 5 * 1.05
    set in8_min 3.0 * 0.80
    set in8_max 3.0 * 1.20

# set up sensor types (thermistor is default)
# 1 = PII/Celeron Diode; 2 = 3904 transistor;
# 3435 = thermistor with Beta = 3435
# If temperature changes very little, try 1 or 2.
#   set sensor1 1
#   set sensor2 2
#   set sensor3 3435

    label temp1 "M/B Temp"
    label temp2 "CPU Temp"
#   ignore temp3

# examples for temperature limits
#    set temp1_over 40
#    set temp1_hyst 37
#    set temp2_over 52
#    set temp2_hyst 47
#    set temp3_over 52
#    set temp3_hyst 47

#   ignore fan1
    label fan2 "CPU Fan"
#   ignore fan3


chip "as99127f-*"

# Asus won't release a datasheet so this is guesswork.
# Thanks to Guntram Blohm, Jack, Ed Harrison, Artur Gawryszczak,
# Victor G. Marimon and others for their feedback.

# Dual power plane
    label in0 "VCore 1"
    label in1 "VCore 2"
# Single power plane (A7V133, A7M266)
#   label in0 "VCore"
#   ignore in1

    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"
# These last two may not make sense on all motherboards.
    label in5 "-12V"
    label in6 "-5V"

    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
# AS99127F rev.1 (same as w83781d)
    compute in5 -(240/60.4)*@ ,  -@/(240/60.4)
    compute in6 -(90.9/60.4)*@ ,  -@/(90.9/60.4)
# AS99127F rev.2 (same as w83782d)
#   compute in5 (5.14 * @) - 14.91 , (@ + 14.91) / 5.14
#   compute in6 (3.14 * @) -  7.71 , (@ +  7.71) / 3.14

# Depending on your motherboard, you have to choose between three formulae
# for temp2. Quoting Artur Gawryszczak:
# "I guess, that the formula "temp2 (@*30/43)+25, (@-25)*43/30" is correct
# for those Asus motherboards, which get CPU temperature from internal
# thermal diode (Pentium Coppermine, and above), and "temp2 @*2.0, @/2.0"
# is correct for Athlon/Duron boards, which use a thermistor in the
# socket."
# The third formula was found and reported by Victor G. Marimon.
# Asus CUV4X, Asus A7V8X
#   compute temp2 (@*30/43)+25, (@-25)*43/30
# Asus A7V133, Asus A7M266
    compute temp2 @*2.0, @/2.0
# Asus CUSL2, Asus CUV266-DLS
#   compute temp2 (@*60/43)+25, (@-25)*43/60

# See comments above if temp3 looks bad. What works for temp2 is likely
# to work for temp3.
    compute temp3 @*2.0, @/2.0

# Most Asus boards have temperatures settled like that:
    label temp1 "M/B Temp"
    label temp2 "CPU Temp"
# However, some A7N8X boards (Deluxe rev.2, -X) have them swapped:
#   label temp1 "CPU Temp"
#   label temp2 "M/B Temp"
# If you know other boards where they are swapped, let us know and
# we'll update the list.

# adjust this if your vid is wrong; see doc/vid
#   set vrm 9.0

# set limits to  5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage

    set in0_min vid*0.95
    set in0_max vid*1.05
    set in1_min vid*0.95
    set in1_max vid*1.05
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12 * 0.90
    set in4_max 12 * 1.10
    set in5_max -12 * 0.90
    set in5_min -12 * 1.10
    set in6_max -5 * 0.95
    set in6_min -5 * 1.05

# examples for temperature limits
#    set temp1_over 40
#    set temp1_hyst 37
#    set temp2_over 52
#    set temp2_hyst 47
#    set temp3_over 52
#    set temp3_hyst 47

# The A7N8X-X board is known to need this:
# (reported by Roberto Sebastiano <robs@xxxxxxxxxxxxxx>)
#    compute fan1  @/2,  2*@


chip "gl518sm-*"

# IMPORTANT: in0, in1, and in2 values (+5, +3, and +12) CANNOT be read
#            unless you use the slow 'iterate' method. Limits will still
#            work even when iterate=0. See ../doc/chips/gl518sm.
#
# Factors and labels taken from GL518SM datasheet, they seem to give
# reasonable values with EISCA connected Fan78

  label vdd "+5V"
  label vin1 "+3.3V"
  label vin2 "+12V"
  label vin3 "Vcore"

# vin2 depends on external resistors (4,7k and 15k assumed here)
# vin1 and vin3 require no scaling

  compute vin2 (197/47)*@  ,  @/(197/47)

  set vdd_min 4.8
  set vdd_max 5.2
  set vin1_min 3.20
  set vin1_max 3.40
  set vin2_min 11.0
  set vin2_max 13.0
  set vin3_min 2.10
  set vin3_max 2.30
  set fan1_off 0
  set fan2_min 0
# set iterate 2


chip "gl520sm-*"

# Factors and labels taken from GL520SM datasheet

# The GL520SM has two application modes. In mode 1 it has two thermistor
# inputs, in mode 2 it has only one and an extra (negative) voltage input.
# The mode is supposed to be set properly by your BIOS so you should not
# need to change it. You can force it below if really needed though.
# Note that this means that you have either temp2 or vin4 but never both
# at the same time.

# set two_temps 1

  label vdd "+5V"
  label vin1 "+3.3V"
  label vin2 "+12V"
  label vin3 "Vcore"
  label vin4 "-12V"

# vin1 and vin3 require no scaling
# vin2 depends on external resistors (4,7k and 15k assumed)

# vin4 = ((R1+R2)/R2)*@ - (R1/R2)*vdd
#
#       -12 --| R1 |---t---| R2 |-- +5
#                      |
#                    vin4
#

  compute vin2 (197/47)*@  ,  @/(197/47)
  compute vin4 (5*@)-(4*vdd) , (@+4*vdd)/5

  set vdd_min 4.8
  set vdd_max 5.2
  set vin1_min 3.20
  set vin1_max 3.40
  set vin2_min 11.0
  set vin2_max 13.0
  set vin3_min 2.10
  set vin3_max 2.30


chip "lm80-*"

# The values below should be correct if you own a qdi BX (brilliant1)
# mainboard. If not, please contact us, so we can figure out better readings.
# Many thanks go to Peter T. Breuer <ptb@xxxxxxxxxx> for helping us figure
# out how to handle the LM80.

# 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 (R3,R4: resistor values, Vs: read voltage, Vin: pin voltage,
# V5: +5V)
#   R3 = R4 * (Vs - Vin) / (Vin - V5)

# Here are the official LM80 data sheet values.
#       Vs      R1,R3   R2,R4    Vin
#       +2.5V    23.7    75     +1.9
#       +3.3V    22.1    30     +1.9
#       +5.0     24      14.7   +1.9
#      +12.0    160      30.1   +1.9
#      -12.0    160      35.7   +1.9
#       -5.0     36      16.2   +1.9

# Now curiously enough, VCore is connected with (unknown) resistors, which
# translate a +2.8V to +1.9V. So we use that in the computations below.

    label in0 "+5V"
    label in1 "VTT"
    label in2 "+3.3V"
    label in3 "+Vcore"
    label in4 "+12V"
    label in5 "-12V"
    label in6 "-5V"

    compute in0 (24/14.7 + 1) * @ ,       @ / (24/14.7 + 1)
    compute in2 (22.1/30 + 1) * @ ,       @ / (22.1/30 + 1)
    compute in3 (2.8/1.9) * @,            @ * 1.9/2.8
    compute in4 (160/30.1 + 1) * @,       @ / (160/30.1 + 1)
    compute in5 (160/35.7)*(@ - in0) + @, (@ + in0 * 160/35.7)/ (1 + 160/35.7)
    compute in6 (36/16.2)*(@ - in0) + @,  (@ + in0 * 36/16.2) / (1 + 36/16.2)

    set in0_min 5 * 0.95
    set in0_max 5 * 1.05
# What is your VTT? It is probably not this value...
    set in1_min 2*0.95
    set in1_max 2*1.05
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
# What is your VCore? It is probably not this value...
    set in3_min 1.9 * 0.95
    set in3_max 1.9 * 1.05
    set in4_min 12 * 0.95
    set in4_max 12 * 1.05
    set in5_min -12 * 1.05
    set in5_max -12 * 0.95
    set in6_min -5 * 1.05
    set in6_max -5 * 0.95

# examples for lm80 temperature limits
# WARNING - nonstandard names and functions for the lm80!!!
# All 4 of these limits apply to the single temperature sensor.
# "hot" is like the standard alarm for most chips.
# "os" is the threshold for the overtemperature shutdown output.
# "os" may or may not do anything on your motherboard but it should
#  be set higher than the "hot" thresholds.
# Note that the /proc file 'temp" also has five entries instead of
# the usual three.
#    set temp_hot_hyst 45
#    set temp_hot_max  52
#    set temp_os_hyst  57
#    set temp_os_max   62


chip "maxilife-cg-*" "maxilife-co-*" "maxilife-as-*"

   label fan1  "HDD Fan"
   label fan2  "PCI Fan"
   label fan3  "CPU Fan"
   ignore fan4

   label temp2 "PCI Temp"
   label temp4 "HDD Temp"
   label temp5 "CPU Temp"
   ignore temp6

   label vid1  "V+12"
   ignore vid5

# vid1 need to be scaled by 6.337 other voltages
# require no scaling

   compute vid1 6.337*@ , @/6.337


chip "maxilife-cg-*"

   ignore temp1
   label temp3  "BX Temp"

   label vid2   "Vcpu1"
   label vid3   "Vcpu2"
   ignore vid4


chip "maxilife-co-*"

   label temp1  "CPU 1 Temp"
   label temp3  "CPU 2 Temp"

   label vid2   "Vcpu1"
   label vid3   "Vcpu2"
   label vid4   "VcacheL2"


chip "maxilife-as-*"

   ignore temp1
   ignore temp3

   label vid2   "Vcpu"
   ignore vid3
   ignore vid4


chip "maxilife-nba-*"

   label fan1  "CPU Fan"
   label fan2  "PCI Fan"
   label fan3  "HDD Fan"
   label fan4  "Heat Sink Fan"

   label temp1  "CPU 1 Temp"
   label temp2  "CPU 2 Temp"
   label temp3  "PCI/Ambient Temp"
   label temp4  "HDD Temp"
   label temp5  "Motherboard Temp"
   label temp6  "CPU Reference Temp"

   label vid1  "V+12"
   label vid2  "Vcpu1"
   label vid3  "Vcpu2"
   label vid4  "VcacheL2"
   label vid5  "V-12"


chip "via686a-*"

# VIA is very specific about the voltage sensor inputs, and our labels
# reflect what they say.  Unfortunately, they are not at all specific about
# how to convert any of the register values to real units.  Fortunately,
# Jonathan Yew <j.teh@xxxxxxxxx> and Alex van Kaam <darkside@xxxxxxxxx>
# came through with some data for temp conversion and formulae for voltage
# conversion. However, the conversions should be regarded as our best guess-
# YMMV.

# On the Tyan S1598, the 2.5V sensor reads 0 and is not displayed in the BIOS.
# Linas Vepstas <linas@xxxxxxxxx> reports that this sensor shows nothing of
# interest on the Abit KA7 (Athlon), and is also not displayed in the BIOS.
# Likewise, Johannes Drechsel-Burkhard <jdb@xxxxxxxxx> reports that this
# sensor is unavailable in the BIOS of his MSI K7T Pro (Thunderbird).  So,
# if you have one of these boards you may want to uncomment the 'ignore 2.5V'
# line below.

    label "2.0V" "CPU core"
    label "2.5V" "+2.5V"
    #ignore "2.5V"
    label "3.3V" "I/O"
    label "5.0V" "+5V"
    label "12V" "+12V"

    label fan1  "CPU Fan"
    label fan2  "P/S Fan"

# VIA suggests that temp3 is an internal temp sensor for the 686a.  However,
# on the Tyan S1598 as well as the Abit KA7 (Athalon), the absolute values
# of the readings from that sensor are not valid.  The readings do seem to
# correlate with temp changes, but the conversion factor may be quite
# different from temp1 & temp2 (as noted above, VIA has not provided
# conversion info).  So, you may wish to 'ignore temp3'.

# Johannes Drechsel-Burkhard <jdb@xxxxxxxxx> notes that on his MSI K7T Pro,
# temp1 is the CPU temp and temp2 is the SYS temp. Hugo van der Merwe notes
# the same for his Gigabyte GA-7DXC, and Olivier Martin for his Gigabyte
# GA-7ZM.

    label temp1 "SYS Temp"
    label temp2 "CPU Temp"
    label temp3 "SBr Temp"
    #ignore temp3

# Set your CPU core limits here.  For the other voltage sensors, the
# built-in defaults should be fine.

    set in0_min 2.0
    set in0_max 2.5

# Set your temp limits here.  Remember, 'tempX_over' is the temp at which an
# alarm is triggered, and 'tempX_hyst' is the temp at which an alarm turns off.
# Setting tempX_hyst to a few degrees below the corresponding tempX_over
# prevents an oscillation between alarm on and off states.  This kind of
# oscillation is known as hyteresis, thus the name.  (You typically get the
# most serious and troublesome hysteresis when a sensor triggers something to
# reduce the temp, thus creating a negative feedback loop.  Even without that,
# we would still get some oscillation when the temp hovers around the limit
# due to noise.)

    set temp1_hyst 40
    set temp1_over 45
    set temp2_hyst 55
    set temp2_over 60
    set temp3_hyst 60
    set temp3_over 65

# You could set your fan limits too, but the defaults should be fine.

    #set fan1_min 5000
    #set fan2_min 5000


chip "mtp008-*"

# The values below should be correct if you own a Tyan S1834D motherboard.
# If not, please contact us, so we can figure out better readings.
# FOR TYAN S2510 SEE END OF THIS SECTION.

# For positive voltages outside the 0..4.09V range (in2..in4), two resistors
# are used, with the following formula (R1,R2: resistor values, Vs: read
# voltage, Vin: pin voltage)
#   Vin = Vs * (R2 / (R1 + R2))
# For negative voltages (in5) two resistors are used, with the following
# formula (R3,R4: resistor values, Vs: read voltage, Vin: pin voltage)
#   Vin = ((4.096 - Vs) * (R3 / (R3 + R4))) + Vs

# Here are the official MTP008 data sheet values:
#       Vs      R1,R3   R2,R4    Vin
#      +12.0    28000   10000   +3.16
#      -12.0   232000   56000   +0.96
#       -5.0   120000   56000   +1.20

    label in0 "VCore1"
    label in1 "+3.3V"
    label in2 "+12V"
    label in3 "Vcore2"
    ignore in4
    label in5 "-12V"
    label in6 "Vtt"

    label fan1 "CPU1 Fan"
    label fan2 "CPU2 Fan"
    label fan3 "fan3"

    label temp1 "CPU1 Temp"
    label temp2 "CPU2 Temp"
    ignore temp3

    compute in2 @ * 38 / 10,            @ * 10 / 38
    compute in5 (@ * 36 - 118.61) / 7,  (118.61 + 7 * @) / 36

# examples for temperature limits
#    set temp1_over 40
#    set temp1_hyst 37
#    set temp2_over 52
#    set temp2_hyst 47
#    set temp3_over 52
#    set temp3_hyst 47

# End of standard mtp008 configuration

# TYAN S2510 INFORMATION
# This motherboard has two mtp008's which are hooked up differently,
# so they must be configured separately.
# For this motherboard, COMMENT OUT the above mtp008 section and
# UNCOMMENT the following two sections.
#
#chip "mtp008-i2c-*-2c"
#    label in0 "VCore1"
#    set in0_min 1.60
#    set in0_max 1.80
#    label in1 "+3.3V"
#    label in2 "+12V"
#    label in3 "Vcore2"
#    set in3_min 1.60
#    set in3_max 1.80
#    ignore in4
#    label in5 "-12V"
#    label in6 "Vtt"
#    label fan1 "CPU1 Fan"
#    label fan2 "CPU2 Fan"
#    label fan3 "fan3"
#    label temp1 "CPU1 Temp"
#    label temp2 "CPU2 Temp"
#    ignore temp3
#    compute in2 @ * 38 / 10,           @ * 10 / 38
#    compute in5 (@ * 36 - 118.61) / 7, (118.61 + 7 * @) / 36
#
#chip "mtp008-i2c-*-2e"
#    ignore in0
#    label in1 "+3.3V"
#    ignore in2
#    label in3 "+5V"
#    set in3_min 4.50
#    set in3_max 5.50
#    ignore in4
#    label in5 "+3.3V"
#    ignore in6
#    label fan1 "fan4"
#    label fan2 "fan5"
#    label fan3 "fan6"
#    ignore temp1
#    label temp2 "MB Temp"
#    set temp2_over 52
#    set temp2_hyst 47
#    ignore temp3

chip "adm1025-*" "ne1619-*"

# The ADM1025 has integrated scaling resistors, rather
# than external resistors common to most sensor devices.
# These apply to the 6 voltage inputs in0-in5 (+2.5V, VCore,
# +3.3V, +5V, +12V, VCC). As the scaling is fixed inside
# the chip for these inputs, it is fairly certain that the
# motherboard connections match these labels, and that the
# driver computations are correct. Therefore they do not need to
# be overridden here.

    label in0 "+2.5V"
    label in1 "VCore"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"
    label in5 "VCC"

# Tolerate a 5% deviance for CPU power-supply
    set in1_min vid * 0.95
    set in1_max vid * 1.05
# Tolerate a 10% deviance for other voltages
    set in0_min 2.5 * 0.90
    set in0_max 2.5 * 1.10
    set in2_min 3.3 * 0.90
    set in2_max 3.3 * 1.10
    set in3_min 5.0 * 0.90
    set in3_max 5.0 * 1.10
    set in4_min 12 * 0.90
    set in4_max 12 * 1.10
    set in5_min 3.3 * 0.90
    set in5_max 3.3 * 1.10

# Depending on how your chipset is hardwired, you may or may not have
# +12V readings (will show as 0.0V if you don't have it).
#   ignore in4

# VCC is the power-supply voltage of the ADM1025 chipset, generally
# redundant with +3.3V so you may want to hide it.
#   ignore in5

# Adjust this if your vid is wrong; see doc/vid
    set vrm 9.0

# Temperatures
    label temp1 "CPU Temp"
    label temp2 "M/B Temp"
    set temp1_low 10
    set temp1_high 60
    set temp2_low 10
    set temp2_high 45


chip "lm87-*"
#
# The LM87 has integrated scaling resistors, rather
# than external resistors common to most sensor devices.
# These apply to the first 6 voltage inputs in0-in5
# (+2.5, Vccp1, +3.3, +5, 12, +Vccp2). As the scaling is fixed inside
# the chip for these inputs, it is fairly certain that the
# motherboard connections match these labels, and that the
# driver computations are correct. Therefore they do not need to
# be overridden here.
#
# Note: AIN1 (-12?), AIN2 (-5?) and CPU2_temp require changing
# #defines in the driver and recompiling!!!
#
# This chip has non-standard entries in lib/chips.c so
# the feature names are quite different from other chips.
# For this chip, libsensors anticipates the correct labeling.
# This is great if it's correct but makes it a little more
# difficult if you want to change it.
#
# This may not have been a good idea, so it may be changed in the future.
# Here is an entry with everything commented out so you can
# uncomment the appropriate line if you want to change it.
#
# Warning - feature names starting with a number must be enclosed
# with double quotes.
#
# It is unlikely you will need to use the following 6 lines (see above)
#   label "2.5V" "xxx"
#   label Vccp1 "xxx"
#   label "3.3V" "xxx"
#   label "5V" "xxx"
#   label "12V" "xxx"
#   label Vccp2 "xxx"

#   label fan1 "xxx"
#   label fan2 "xxx"
#   label temp1 "xxx"
#   label CPU_Temp "xxx"
#   label CPU2_Temp "xxx"
#
#   set AmbTemp_min xxx
#   set Vccp1_min xxx
#   set "3.3V_min" xxx
#   set "5V_min" xxx
#   set "12V_min" xxx
#   set Vccp2_min xxx
#
#   set AmbTemp_max xxx
#   set Vccp1_max xxx
#   set "3.3V_max" xxx
#   set "5V_max" xxx
#   set "12V_max" xxx
#   set Vccp2_max xxx
#
#   set fan1_div xxx
#   set fan2_div xxx
#   set fan1_min xxx
#   set fan2_min xxx
#   set temp1_min xxx
#   set temp1_max xxx
#   set temp2_min xxx
#   set temp2_max xxx
#   set temp3_min xxx
#   set temp3_max xxx

# It is unlikely you will need to use the following 6 lines (see above)
#   compute "2.5V" xxx
#   compute Vccp1 xxx
#   compute "3.3V" xxx
#   compute "5V" xxx
#   compute "12V" xxx
#   compute Vccp2 xxx

#   compute temp1 xxx
#   compute CPU_Temp xxx
#   compute CPU2_Temp xxx

# LM87 AIN1 and AIN2 Section
# As described above, the driver must be recompiled to use either or
# both of these. -12 and -5 may be reversed on your board, this is
# just a guess, the datasheet gives no guidance.
#   label AIN1 "-12V"
#   label AIN2 "-5V"
#   set AIN1_min -12 * 0.95
#   set AIN2_min -5 * 0.95
#   set AIN1_max -12 * 1.05
#   set AIN2_max -5 * 0.95
#   compute AIN1 (7.50 * @) - 21.45  ,  (@ + 21.45) / 7.50
#   compute AIN2 (4.05 * @) - 10.07  ,  (@ + 10.07) / 4.05

chip "adm9240-*" "ds1780-*" "lm81-*"
#
# These chips have non-standard entries in lib/chips.c so
# the feature names are quite different from other chips.
# For these chips, libsensors anticipates the correct labeling.
# This is great if it's correct but makes it a little more
# difficult if you want to change it.
#
# This may not have been a good idea, so it may be changed in the future.
# Here is an entry with everything commented out so you can
# uncomment the appropriate line if you want to change it.
#
# Warning - feature names starting with a number must be enclosed
# with double quotes.
#
#   label "2.5V" "xxx"
#   label Vccp1 "xxx"
#   label "3.3V" "xxx"
#   label "5V" "xxx"
#   label "12V" "xxx"
#   label Vccp2 "xxx"
#   label fan1 "xxx"
#   label fan2 "xxx"
#   label temp "xxx"
#
#   set Vccp1_min xxx
#   set "2.5V_min" xxx
#   set "3.3V_min" xxx
#   set "5V_min" xxx
#   set "12V_min" xxx
#   set Vccp2_min xxx
#
#   set Vccp1_max xxx
#   set "2.5V_max" xxx
#   set "3.3V_max" xxx
#   set "5V_max" xxx
#   set "12V_max" xxx
#   set Vccp2_max xxx
#
#   set fan1_div xxx
#   set fan2_div xxx
#   set fan1_min xxx
#   set fan2_min xxx
#   set temp1_hyst xxx
#   set temp1_over xxx

#   compute "2.5V" xxx
#   compute Vccp1 xxx
#   compute "3.3V" xxx
#   compute "5V" xxx
#   compute "12V" xxx
#   compute Vccp2 xxx
#   compute temp xxx

chip "adm1024-*"
#
# These settings work for me, adjust for your system
#
    label fan1 "CPU1 fan"
    label fan2 "CPU2 fan"
    label temp "SYS Temp"
    label temp1 "CPU2 Temp"
    label temp2 "CPU1 Temp"
    ignore "2.5V" # This register is also used for temp2
    ignore "Vccp1"
    ignore "Vccp2"


chip "it87-*"

# The values below have been tested on Asus CUSI, CUM motherboards.

# Voltage monitors as advised in the It8705 data sheet

    label in0 "VCore 1"
    label in1 "VCore 2"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"
    label in5 "-12V"
    label in6 "-5V"
    label in7 "Stdby"
    label in8 "VBat"

    set in0_min 1.5 * 0.95
    set in0_max 1.5 * 1.05
    set in1_min 2.4
    set in1_max 2.6
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12 * 0.95
    set in4_max 12 * 1.05
    set in5_max -12 * 0.95
    set in5_min -12 * 1.05
    set in6_max -5 * 0.95
    set in6_min -5 * 1.05
    set in7_min 5 * 0.95
    set in7_max 5 * 1.05
    #the chip does not support in8 min/max

    # vid is not monitored by IT8705F
    # and is not supported by driver at this time
    ignore  vid

# Incubus Saturnus reports that the IT87 chip on Asus A7V8X-X seems
# to report the VCORE voltage approximately 0.05V higher than the board's
# BIOS does. Although it doesn't make much sense physically, uncommenting
# the next line should bring the readings in line with the BIOS' ones in
# this case.
# compute in0 -0.05+@ , @+0.05

# If 3.3V reads 2X too high (Soyo Dragon and Asus A7V8X-X, for example),
# comment out following line.
    compute in2   2*@ , @/2
#
    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    compute in4 ((30/10) +1)*@  , @/((30/10) +1)
# For this family of chips the negative voltage equation is different from
# the lm78.  The chip uses two external resistor for scaling but one is
# tied to a positive reference voltage.  See ITE8705/12 datasheet (SIS950
# data sheet is wrong)
# Vs = (1 + Rin/Rf) * Vin - (Rin/Rf) * Vref.
# Vref = 4.096 volts, Vin is voltage measured, Vs is actual voltage.

# The next two are negative voltages (-12 and -5).
# The following formulas must be used. Unfortunately the datasheet
# does not give recommendations for Rin, Rf, but we can back into
# them based on a nominal +2V input to the chip, together with a 4.096V Vref.
# Formula:
#    actual V = (Vmeasured * (1 + Rin/Rf)) - (Vref * (Rin/Rf))
#    For -12V input use Rin/Rf = 6.68
#    For -5V input use Rin/Rf = 3.33
# Then you can convert the forumula to a standard form like:
    compute in5 (7.67 * @) - 27.36  ,  (@ + 27.36) / 7.67
    compute in6 (4.33 * @) - 13.64  ,  (@ + 13.64) / 4.33
#
# this much simpler version is reported to work for a
# Elite Group K7S5A board
#
#   compute in5 -(36/10)*@, -@/(36/10)
#   compute in6 -(56/10)*@, -@/(56/10)
#
    compute in7 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)

# Temperature
#
# Important - if your temperature readings are completely whacky
# you probably need to change the sensor type.
# Adujst and uncomment the appropriate lines below.
# The old method (modprobe it87 temp_type=0xXX) is no longer supported.
#
# 2 = thermistor; 3 = thermal diode; 0 = unused
#   set sensor1 3
#   set sensor2 3
#   set sensor3 3
# If a given sensor isn't used, you will probably want to ignore it
# (see ignore statement right below).

    label temp1       "M/B Temp"
    set   temp1_over  40
    set   temp1_low   15
    label temp2       "CPU Temp"
    set   temp2_over  45
    set   temp2_low   15
#   ignore temp3
    label temp3       "Temp3"
    set   temp3_over  45
    set   temp3_low   15

# The A7V8X-X has temperatures inverted, and needs a conversion for
# CPU temp. Thanks to Preben Randhol for the formula.
#   label temp1       "CPU Temp"
#   label temp2       "M/B Temp"
#   compute temp1     (-15.096+1.4893*@), (@+15.096)/1.4893

# The A7V600 also has temperatures inverted, and needs a different
# conversion for CPU temp. Thanks to Dariusz Jaszkowski for the formula.
#   label temp1       "CPU Temp"
#   label temp2       "M/B Temp"
#   compute temp1     (@+128)/3, (3*@-128)

# Fans
    set fan1_min 0
    set fan2_min 3000
#   ignore fan3
    set fan3_min 3000

# The following is for the Inside Technologies 786LCD which uses either a
# IT8705F or a SIS950 for monitoring with the SIS630.
# You will need to load the it87 module as follows to select the correct
# temperature sensor type.
# modprobe it87 temp_type=0x31
# The sensors-detect program reports lm78 and a sis5595 and lists the it87 as
# a misdetect.  Don't do the modprobe for the lm78 or sis5595 as suggested.
#
# delete or comment out above it87 section and uncomment the following.
#chip "it87-*"
#    label in0 "VCore 1"
#    label in1 "VCore 2"
#    label in2 "+3.3V"
#    label in3 "+5V"
#    label in4 "+12V"
#    label in5 "3.3 Stdby"
#    label in6 "-12V"
#    label in7 "Stdby"
#    label in8 "VBat"
    # in0 will depend on your processor VID value, set to voltage specified in
    # bios setup screen
#    set in0_min 1.7 * 0.95
#    set in0_max 1.7 * 1.05
#    set in1_min 2.4
#    set in1_max 2.6
#    set in2_min 3.3 * 0.95
#    set in2_max 3.3 * 1.05
#    set in3_min 5.0 * 0.95
#    set in3_max 5.0 * 1.05
    # +- 12V are very poor tolerance on this board. Verified with voltmeter
#    set in4_min 12 * 0.90
#    set in4_max 12 * 1.10
#    set in5_min 3.3 * 0.95
#    set in5_max 3.3 * 1.05
#    set in6_max -12 * 0.90
#    set in6_min -12 * 1.10
#    set in7_min 5 * 0.95
#    set in7_max 5 * 1.05
    # vid not monitored by IT8705F
#    ignore  vid

#    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
#    compute in4 ((30/10) +1)*@  , @/((30/10) +1)
#    compute in6 (1+232/56)*@ - 4.096*232/56, (@ + 4.096*232/56)/(1+232/56)
#    compute in7 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    # Temperature
#    label temp1       "CPU Temp"
#    ignore temp2
#    ignore temp3
    # Fans
#    set fan1_min 3000
#    ignore fan2
#    ignore fan3


chip "fscpos-*"
# Fujitsu-Siemens Poseidon chip

# Temperature

    label temp1       "Temp1/CPU"
    label temp2       "Temp2/MB"
    label temp3       "Temp2/AUX"

# Fans

    label  fan1       "Fan1"
    ignore  fan2
    ignore  fan3

# Voltage

    label volt12      "+12V"
    label volt5       "+5V"
    label voltbatt    "+3.3V"


chip "fscscy-*"
# Fujitsu-Siemens Scylla chip

# Temperature

    label temp1       "Temp1/CPU0"
    label temp2       "Temp2/CPU1"
    label temp3       "Temp3/MB"
    label temp4       "Temp4/AUX"

# Fans

    label  fan1       "Fan1/CPU0"
    label  fan2       "Fan2/CPU0"
    label  fan3       "Fan3"
    label  fan4       "Fan4"
    label  fan5       "Fan5"
    label  fan6       "Fan6"

# Voltage

    label volt12      "+12V"
    label volt5       "+5V"
    label voltbatt    "+3.3V"


chip "fscher-*"
# Fujitsu-Siemens Hermes chip

# Temperature
    label temp1       "Temp1/CPU"
    label temp2       "Temp2/MB"
    label temp3       "Temp3/AUX"

# Fans
    label fan1        "Fan1/PS"
    label fan2        "Fan2/CPU"
    label fan3        "Fan3/AUX"

# Voltage
    label in0         "+12V"
    label in1         "+5V"
    label in2         "Battery"

# Compute Voltages using mainboard dependant MRO-values
# (see doc/chips/fscher)
#                           M    R             O               O                  M    R
    compute in0       (@ * (49 * 33) / 255) + (0 / 100), (@ - (0 / 100)) * 255 / (49 * 33)
    compute in1       (@ * (20 * 33) / 255) + (0 / 100), (@ - (0 / 100)) * 255 / (20 * 33)
    compute in2       (@ * (10 * 33) / 255) + (0 / 100), (@ - (0 / 100)) * 255 / (10 * 33)

# Read documentation before enabling pwm settings (see doc/chips/fscher)
# WARNING: IMPROPER VALUES MAY DAMAGE YOUR SYSTEM DUE TO OVERHEATING!

# Allow fans to turn off
#    set pwm1          0
#    set pwm2          0
#    set pwm3          0

# Min cooling
#    set pwm1          2
#    set pwm2          1
#    set pwm3          1

# Max cooling
#    set pwm1          255
#    set pwm2          255
#    set pwm3          255


chip "pcf8591-*"
#
#    values for the Philips PCF8591 chip
#
# Analog inputs

   ignore ain_conf
# Since Linux 2.6, input configuration is set as module parameter,
# so the line below is for older kernels only.
#  set    ain_conf    0

# You may discard ch2 and ch3 if you don't use them (depends on the input
# configuration)
#  ignore ch2
#  ignore ch3

   label  ch0         "Chan. 0"
   label  ch1         "Chan. 1"
   label  ch2         "Chan. 2"
   label  ch3         "Chan. 3"

# The driver assumes Vref = 2.56V and Agnd = 0V. If it doesn't match
# your hardware, you have to use compute lines. The example below is
# correct for Vref = 5.0V and Agnd = 0V.
#  compute ch0 (@ * 500 / 256), (@ * 256 / 500)
#  compute ch1 (@ * 500 / 256), (@ * 256 / 500)
#  compute ch2 (@ * 500 / 256), (@ * 256 / 500)
#  compute ch3 (@ * 500 / 256), (@ * 256 / 500)

# Analog output

   ignore aout_enable
   set    aout_enable 1
   label  aout        "Output"
   set    aout        0

chip "adm1021-*" "adm1023-*" "max1617-*" "max1617a-*" "thmc10-*" "lm84-*" "gl523sm-*" "mc1066-*"

   label temp           "Board"
   label remote_temp    "CPU"
#   set temp_low                40
#   set temp_over               70
#   set remote_temp_low         40
#   set remote_temp_over        70

chip "lm83-*"

   label temp1 "M/B Temp"
   label temp2 "D1 Temp"
   label temp3 "CPU Temp"
   label temp4 "D3 Temp"

# ignore D1 and/or D3 readings if not used
#   ignore temp2
#   ignore temp4

# change high limits to fit your needs
#   set temp1_high 55
#   set temp2_high 60
#   set temp3_high 65
#   set temp4_high 60

# change critical limit to fit your needs
# only one limit for all four temperatures
# should be higher than each of the high limits above
#   set tcrit 85


chip "max1619-*"

   label temp1 "M/B Temp"
   label temp2 "CPU Temp"

# change high and low limits to fit your needs
   set temp2_min   10
   set temp2_max   100

# change critical limit and hysteresis to fit your needs
   set temp2_crit  50
   set temp2_hyst  40


chip "lm90-*" "adm1032-*"

   label temp1 "M/B Temp"
   label temp2 "CPU Temp"
   label tcrit1 "M/B Crit"
   label tcrit2 "CPU Crit"

# change high and low limits to fit your needs
#   set temp1_low  10
#   set temp1_high 55
#   set temp2_low  10
#   set temp2_high 66

# change critical limits to fit your needs
# should be higher than the corresponding high limit above
#   set tcrit1 75
#   set tcrit2 85

# change the hysteresis values (to critical limits) to fit your needs
# note #1: hyst2 will be automatically set with the same delta
# note #2: the internal register, which stores a single, relative value
# for both channels, cannot hold values greater than 31, so the delta
# between critical temperatures and respective absolute hysteresis can
# never exceed this value
#   set hyst1 70

chip "lm99-*"

   label temp1 "G/C Temp"
   label temp2 "GPU Temp"
   label tcrit1 "G/C Crit"
   label tcrit2 "GPU Crit"

# note #1: only the LM99 needs this; for a LM89, comment the compute line
# out
# note #2: there is no way for us to differenciate between a LM89 and a
# LM99; you have to know what you have; LM99 are frequently found on
# graphics cards, most notably nVidia ones
   compute temp2 @+16, @-16

# change high and low limits to fit your needs
#   set temp1_low  10
#   set temp1_high 90
#   set temp2_low  10
#   set temp2_high 100

# change critical limits to fit your needs
# should be higher than the corresponding high limit above
#   set tcrit1 100
#   set tcrit2 110

# change the hysteresis values (to critical limits) to fit your needs
# note #1: hyst2 will be automatically set with the same delta
# note #2: the internal register, which stores a single, relative value
# for both channels, cannot hold values greater than 31, so the delta
# between critical temperatures and respective absolute hysteresis can
# never exceed this value
#   set hyst1 105

chip "vt1211-*" "vt8231-*"
#
# temp1 and in6 are not implemented in vt1211 / vt8231
#
#                                                       1 for temp, 0 for volt.
#       Sensor          Voltage Mode    Temp Mode       config bit
#       --------        ------------    ---------       --------------
#       Reading 1                       temp3
#       UCH1/Reading2   in0             temp2           0x04 (4)
#       UCH2            in1             temp4           0x08 (8)
#       UCH3            in2             temp5           0x10 (16)
#       UCH4            in3             temp6           0x20 (32)
#       UCH5            in4             temp7           0x40 (64)
#       3.3V            in5
#
# set uch1-2 to temp mode, uch3-5 to voltage mode
#
    set config 12
    ignore in0
    ignore in1
    ignore temp5
    ignore temp6
    ignore temp7

# IMPORTANT: If you get "ERROR: Can't get TEMPX data!" from "sensors",
# where X is 2, 4, 5, 6 or 7, although you have this UCH set to
# temperature, this generally means that this UCH isn't (physically)
# used for temperature, so you should add an ignore statement for tempX
# and change the "config" value to reflect the fact that this UCH is
# probably used for voltage.

#   label in0 "unused"
#   label in1 "unused"
    label in2 "VCore1"
    label in3 "+5V"
    label in4 "+12V"
    label in5 "+3.3V"

    label temp2 "MB1 Temp"
    label temp3 "Proc Temp"
    label temp4 "MB2 Temp"
#
#   All voltage calculations have the form
#       ((@ * 100) - 3) / (K * 95.8), (@ * K * 0.958) + .03
#   where K = R2 / (R1 + R2).
#   Use the following K values based on input voltage.
#   This of course assumes the mobo has the resistors
#   recommended by Via in the datasheet.
#       Voltage                 K
#       VCore                   1.0
#       2.5                     0.8333
#       3.3 (in5 internal)      0.6296
#       3.5 (3.3V ext.)         0.5952
#       5.0                     0.4167
#       12.0                    0.1754
#
#   compute in0 ((@ * 100) - 3) / (0.5952 * 95.8), (@ * 0.5952 * 0.958) + .03
#   compute in1 ((@ * 100) - 3) / (0.8333 * 95.8), (@ * 0.8333 * 0.958) + .03
    compute in2 ((@ * 100) - 3) / (0.5952 * 95.8), (@ * 0.5952 * 0.958) + .03
    compute in3 ((@ * 100) - 3) / (0.4167 * 95.8), (@ * 0.4167 * 0.958) + .03
    compute in4 ((@ * 100) - 3) / (0.1754 * 95.8), (@ * 0.1754 * 0.958) + .03
    compute in5 ((@ * 100) - 3) / (0.6296 * 95.8), (@ * 0.6296 * 0.958) + .03

    set vrm 9.1
#   set in0_min 2.5 * 0.95
#   set in0_max 2.5 * 1.05
#   set in1_min 2.5 * 0.95
#   set in1_max 2.5 * 1.05
    set in2_min vid * 0.97
    set in2_max vid * 1.03
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05
    set in4_min 12.0 * 0.90
    set in4_max 12.0 * 1.10
    set in5_min 3.3 * 0.95
    set in5_max 3.3 * 1.05

    compute temp3  (@ - 65) / 0.9686,  (@ * 0.9686) + 65
#
# thermistor calculations.
# 3435 is the thermistor beta.
# '^' is the e**x operator; '`' is the ln(x) operator
# (valid in library version 1.4.0 / lm_sensors 2.7.1 or higher)
# This assumes that the thermistor forms a resistor divider with a resistor
# equal to its nominal value @ 25C. If not, the math gets even harder.
#
    compute temp2  (1 / (((1 / 3435) * (` ((253 - @) / (@ - 43)))) + (1 / 298.15)))  - 273.15, \
                   253 - (210 / (1 + (1 / (^ (((3435 * (25 - @)) / ((@ + 273.15) * 298.15)))))))
    compute temp4  (1 / (((1 / 3435) * (` ((253 - @) / (@ - 43)))) + (1 / 298.15)))  - 273.15, \
                   253 - (210 / (1 + (1 / (^ (((3435 * (25 - @)) / ((@ + 273.15) * 298.15)))))))
    compute temp5  (1 / (((1 / 3435) * (` ((253 - @) / (@ - 43)))) + (1 / 298.15)))  - 273.15, \
                   253 - (210 / (1 + (1 / (^ (((3435 * (25 - @)) / ((@ + 273.15) * 298.15)))))))
    compute temp6  (1 / (((1 / 3435) * (` ((253 - @) / (@ - 43)))) + (1 / 298.15)))  - 273.15, \
                   253 - (210 / (1 + (1 / (^ (((3435 * (25 - @)) / ((@ + 273.15) * 298.15)))))))
    compute temp7  (1 / (((1 / 3435) * (` ((253 - @) / (@ - 43)))) + (1 / 298.15)))  - 273.15, \
                   253 - (210 / (1 + (1 / (^ (((3435 * (25 - @)) / ((@ + 273.15) * 298.15)))))))

    set temp2_hyst 40
    set temp2_over 45
    set temp3_hyst 60
    set temp3_over 65
    set temp4_hyst 40
    set temp4_over 45

    set fan1_min 3000
    set fan2_min 3000

chip "bmc-*"
#
# You should not need compute lines here, the driver will
# do all the conversions.
# For label lines, copy from syslog/dmesg when the bmcsensors
# module is inserted.
#
# for example:
# label temp1 "Ambient Temp"



#
chip "smsc47m1-*"

    set fan1_min 3000
    set fan2_min 3000

#
# This example was tested vs. Asus P4S333
#
chip "asb100-*"
    set vrm 9.0

    label in0 "VCore 1"
    set in0_min vid * 0.95
    set in0_max vid * 1.05

    label in1 "VCore 2"
    ignore in1
    set in1_min vid * 0.95
    set in1_max vid * 1.05

    label in2 "+3.3V"
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05

    label in3 "+5V"
    compute in3 1.68 * @ ,  @ / 1.68
    set in3_min 5.0 * 0.95
    set in3_max 5.0 * 1.05

    label in4 "+12V"
    compute in4 3.8 * @ , @ / 3.8
    set in4_min 12  * 0.90
    set in4_max 12  * 1.10

    label in5 "-12V (reserved)"
    #ignore in5
    compute in5 -@ * 3.97 ,  -@ / 3.97
    set in5_max -12 * 0.90
    set in5_min -12 * 1.10

    label in6 "-5V (reserved)"
    #ignore in6
    compute in6 -@ * 1.666 , -@ / 1.666
    set in6_max -5  * 0.95
    set in6_min -5  * 1.05

    label temp1 "M/B Temp"
    set temp1_over 45
    set temp1_hyst 40

    label temp2 "CPU Temp (Intel)"
    #ignore temp2
    set temp2_over 60
    set temp2_hyst 50

    # PWRTMP connector on P4S333, for external sensor
    label temp3 "Power Temp"
    #ignore temp3
    set temp3_over 45
    set temp3_hyst 40


    # Used for Athlon diode, ignore for P4S333
    label temp4 "CPU Temp (AMD)"
    set temp4_over 60
    set temp4_hyst 50
    #ignore temp4

    label fan1 "CPU Fan"
    set fan1_div 4
    set fan1_min 2000

    label fan2 "Chassis Fan"
    set fan2_div 2
    set fan2_min 4000

    label fan3 "Power Fan"
    set fan3_div 2
    set fan3_min 4000

#
# Sample configuration for the Intel S845WD1-E
# courtesy of Marcus Schopen
#
chip "lm85c-*" "adm1027-*" "adt7463-*" "lm85-*" "lm85b-*"

   set temp1_max 50

# Voltage inputs
   label in0   "V1.5"      # AGP on Intel S845WD1-E
   label in1   "VCore"
   label in2   "V3.3"
   label in3   "V5"
   label in4   "V12"

# Temperature inputs
   label temp1  "CPU"
   label temp2  "Board"
   label temp3  "Remote"

# Fan inputs
   label fan1   "CPU_Fan"
#   label fan2   "Fan2"
#   label fan3   "Fan3"
#   label fan4   "Fan4"

# PWM Outputs
   label pwm1   "CPU_PWM"
   label pwm2   "Fan2_PWM"
   label pwm3   "Fan3_PWM"

# Voltage scaling is done on-chip.  No 'compute' directive
# should be necessary.  If in0 has external scaling set
# it here.

#   compute in0  @ * 2.5,   @ / 2.5

# Adjust fans speeds for actual pulses per rev
#   compute fan1  @ * 2,  @ / 2    # 1 pulse per rev
#   set fan1_ppr  1                # ADM1027 or ADT7463
#   compute fan2  @ / 2,  @ * 2    # 4 pulse per rev
#   set fan2_ppr  4                # ADM1027 or ADT7463

   ignore fan2
   ignore fan3
   ignore fan4

# Set VRM version
   set vrm  9.1   # Pentium 4

# Set voltage limits
   set in0_min  1.5 * 0.95
   set in0_max  1.5 * 1.05
   set in1_min  vid * 0.95
   set in1_max  vid * 1.05
   set in2_min  3.3 * 0.95
   set in2_max  3.3 * 1.05
   set in3_min  5.0 * 0.95
   set in3_max  5.0 * 1.05
   set in4_min   12 * 0.95
   set in4_max   12 * 1.05

# Set Fan limits
   set fan1_min 4000

# Set Temp Limits
   set temp1_min 10
   set temp1_max 50
   set temp2_min 10
   set temp2_max 35
   set temp3_min 10
   set temp3_max 35

chip "pc87366-*"

# Voltage inputs

   label in7   "Vsb"
   label in8   "Vdd"
   label in9   "Vbat"
   label in10  "AVdd"

   compute in7   @*2, @/2
   compute in8   @*2, @/2
   compute in10  @*2, @/2

# These are the operating conditions as recommended by National
# Semiconductor
   set in7_min   3.0
   set in7_max   3.6
   set in8_min   3.0
   set in8_max   3.6
   set in9_min   2.4
   set in9_max   3.6
   set in10_min  3.0
   set in10_max  3.6

# Temperature inputs

   label temp1       "CPU0 Temp"
   label temp1_crit  "CPU0 Crit"
   label temp2       "CPU1 Temp"
   label temp2_crit  "CPU1 Crit"
   label temp3       "S-IO Temp"
   label temp3_crit  "S-IO Crit"

   set temp1_min    0
   set temp1_max   70
   set temp1_crit  85
   set temp2_min    0
   set temp2_max   70
   set temp2_crit  85
   set temp3_min    0
   set temp3_max   70
   set temp3_crit  85

# Thermistors
# On some systems, thermistors are used instead of thermal diodes.
# Note that these are the same pins used differently, so you really
# can't have them all on a given system.
#   ignore temp1
#   ignore temp2
   ignore temp4
   ignore temp5
   ignore temp6

# 3435 is the thermistor beta.
# This assumes that the thermistor forms a resistor divider with a resistor
# equal to its nominal value at 25 degres Celcius. If not, change the values.
# We also assume that you have a working in10 (which is forcibly enabled by
# default). If not, use 3.3 instead, but you lose accuracy.

   compute temp4  3435 / (` (1 / (1 - @ / in10) - 1) + 3435 / 298.15) - 273.15, \
                  in10 * (1 - 1 / (1 + (^ (3435 / (273.15 + @) - 3435 / 298.15))))
   compute temp5  3435 / (` (1 / (1 - @ / in10) - 1) + 3435 / 298.15) - 273.15, \
                  in10 * (1 - 1 / (1 + (^ (3435 / (273.15 + @) - 3435 / 298.15))))
   compute temp6  3435 / (` (1 / (1 - @ / in10) - 1) + 3435 / 298.15) - 273.15, \
                  in10 * (1 - 1 / (1 + (^ (3435 / (273.15 + @) - 3435 / 298.15))))

#   set temp4_min    0
#   set temp4_max   70
#   set temp4_crit  85
#   set temp5_min    0
#   set temp5_max   70
#   set temp5_crit  85
#   set temp6_min    0
#   set temp6_max   70
#   set temp6_crit  85

# Fan inputs

# Ignore fans you don't have
#   ignore fan2
#   ignore fan3

   set fan1_min 2000
   set fan2_min 2000
   set fan3_min 2000


chip "adm1030-*"

   label temp1 "SYS Temp"
   label temp2 "CPU Temp"
   label temp1_crit "SYS Crit"
   label temp2_crit "CPU Crit"

   set temp1_max  60
   set temp2_max  70
   set temp1_crit 85
   set temp2_crit 85

   label fan1 "CPU Fan"

   set fan1_min 2000


chip "adm1031-*"

   label temp1 "SYS Temp"
   label temp2 "CPU Temp"
   label temp3 "AUX Temp"
   label temp1_crit "SYS Crit"
   label temp2_crit "CPU Crit"
   label temp3_crit "AUX Crit"

   set temp1_max  60
   set temp2_max  70
   set temp3_max  70
   set temp1_crit 85
   set temp2_crit 85
   set temp3_crit 85

   label fan1 "CPU Fan"
   label fan2 "Case Fan"

   set fan1_min 2000
   set fan2_min 2000

_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos

[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux