lm-sensors
22 March 2005

Clitunno has hardware sensors; I finally found the time to track them and their drivers down. Not fully tested.

Software and guides
Commands
  • sensors-detect
  • sensors
  • /etc/init.d/lm-sensors status (doesn't work in Debian)
  • i2cdetect -l (lists installed busses only)
  • i2cdetect (probing can cause problems)
  • cat /proc/ioports
Hardware
  • Chipsets -- AMD-8111 and AMD-8131 PCI-X Bridge
    • AMD-8131™ HyperTransport™ PCI-X Tunnel
    • AMD-8111™ HyperTransport™ I/O Hub
    • Winbond™ W83627HF Super I/O ASIC
    • Analog Devices ADM1027 Hardware Monitoring IC
  • Intelligent Platform Management Interface Header (I don't have this optional card)
    • Tyan Server Management Daughter card (optional) supports features listed below via IPMI header
    • QLogic™ Zircon Baseboard Management Controller (BMC) based on powerful ARM7 technology
    • Tailored for IPMI highest 1.5 Spec.
    • Supports KCS and BT styles
    • Flexible Windows or Linux Management Solution
    • Supports RMCP and SNMP protocols
    • Supports ASF standard and EMP
    • I2C serial multi-master controllers and UARTs
    • Build-in IPMB connector
    • Remote power on/off and reset support (IPMI-over-LAN)
Readings

On 25 April 2005 I get these readings -- most of the voltages reported are far off what they should be.:
# sensors
eeprom-i2c-2-50
Adapter: bt878 #0 [sw]
Unknown EEPROM type (255).

Philips NTSC -i2c-2-61
Adapter: bt878 #0 [sw]

w83627hf-isa-0290
Adapter: ISA adapter
VCore 1:   +1.52 V  (min =  +1.94 V, max =  +2.14 V)
VCore 2:   +1.52 V  (min =  +1.94 V, max =  +2.14 V)
+3.3V:     +3.36 V  (min =  +3.14 V, max =  +3.46 V)
+5V:       +4.97 V  (min =  +4.73 V, max =  +5.24 V)
+12V:      +4.62 V  (min = +10.82 V, max = +13.19 V)
-12V:      -2.33 V  (min = -13.18 V, max = -10.88 V)
-5V:       -3.94 V  (min =  -5.25 V, max =  -4.75 V)
V5SB:      +5.48 V  (min =  +4.73 V, max =  +5.24 V)
VBat:      +0.77 V  (min =  +2.40 V, max =  +3.60 V)
fan1:        0 RPM  (min =   -1 RPM, div = 2)
fan2:     4927 RPM  (min = 7105 RPM, div = 2)
fan3:        0 RPM  (min = 25961 RPM, div = 2)
temp1:       +63 C  (high =   +72 C, hyst =   +24 C)   sensor = diode
temp2:     +64.0 C  (high =   +80 C, hyst =   +75 C)   sensor = diode
temp3:     +64.0 C  (high =   +80 C, hyst =   +75 C)   sensor = diode
vid:      +2.050 V  (VRM Version 2.4)
alarms:
beep_enable:
          Sound alarm disabled

I don't know if the sensor is wrong or if the voltages really are off. As for the fans, there are several and I'm fairly confident they're all running. The answer: "If you installed lm_sensors and want to see the right output from 'sensors', then edit /etc/sensors.conf and adjust it to your needs. If you have problems with gkrellm, you can do this by entering values into the 'Offset' and 'Factor' boxes in the 'Properties' window."

So that still needs to be done.

Installation history

On 22 March 2005 I ran sensors-detect on clitunno (from Oslo), which spotted the following:
# /usr/sbin/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):
Probing for PCI bus adapters...
Use driver `i2c-amd8111' for device 00:07.2: AMD-8111 SMBus 2.0
Use driver `i2c-amd756' for device 00:07.3: AMD-8111 ACPI
Probe succesfully concluded.

We will now try to load each adapter module in turn.
Module `i2c-amd8111' already loaded.
Load `i2c-amd756' (say NO if built into your kernel)? (YES/no):
FATAL: Module i2c_amd756 not found.
Loading failed... skipping.
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 already loaded.

 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: bt878 #0 [sw]
Do you want to scan it? (YES/no/selectively):
Client at address 0x50 can not be probed - unload all client drivers first!
Client at address 0x61 can not be probed - unload all client drivers first!

Next adapter: SMBus2 AMD8111 adapter at cc00
Do you want to scan it? (YES/no/selectively):
Client found at address 0x08

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):
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... Success!
    (confidence 8, driver `w83781d')
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):
Probing for `ITE 8702F Super IO Sensors'
  Failed! (skipping family)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
  Failed! (skipping family)
Probing for `SMSC 47B27x Super IO Fan Sensors'
  Failed! (skipping family)
Probing for `VT1211 Super IO Sensors'
  Failed! (0x52)
Probing for `Winbond W83627HF Super IO Sensors'
  Success... found at address 0x0290
Probing for `Winbond W83627THF Super IO Sensors'
  Failed! (0x52)
Probing for `Winbond W83637HF Super IO Sensors'
  Failed! (0x52)
Probing for `Winbond W83697HF Super IO Sensors'
  Failed! (0x52)
Probing for `Winbond W83697SF/UF Super IO PWM'
  Failed! (0x52)
Probing for `Winbond W83L517D Super IO'
  Failed! (0x52)

Do you want to scan for secondary Super I/O sensors? (YES/no):
Probing for `ITE 8702F Super IO Sensors'
  Failed! (skipping family)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
  Failed! (skipping family)
Probing for `SMSC 47B27x Super IO Fan Sensors'
  Failed! (skipping family)
Probing for `VT1211 Super IO Sensors'
  Failed! (skipping family)

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

Driver `w83781d' (may not be inserted):
  Misdetects:
  * ISA bus address 0x0290 (Busdriver `i2c-isa')
    Chip `Winbond W83627HF' (confidence: 8)

Driver `w83627hf' (should be inserted):
  Detects correctly:
  * ISA bus address 0x0290 (Busdriver `i2c-isa')
    Chip `Winbond W83627HF Super IO Sensors' (confidence: 9)


 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)? ISA

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

#----cut here----
# I2C adapter drivers
i2c-isa
# I2C chip drivers
w83627hf
#----cut here----

Do you want to add these lines to /etc/modules automatically? (yes/NO)yes
I then edited /etc/modules, adding this:
# You need these, but you may not need to load them all explicitly
i2c-dev
i2c-sensor
i2c-amd8111
# AMD-8111 ACPI -- showed up on the scan
i2c-amd756

# Generated by sensors-detect on Mon Mar 21 16:56:56 2005
# I2C adapter drivers
i2c-isa
# Winbond W83627HF Super I/O ASIC I2C chip driver (found by scan)
w83627hf

# Consider adding these
# Winbond W83627HF I2C chip driver -- found, but could cause conflict?
#w83781d
# Analog Devices ADM1027 Hardware Monitoring IC (not found by scan)
lm85
# You may have these too -- most likely not
#lm63
#adm1026

I then ran i2cdetect -l, which lists installed busses only:
i2c-2   dummy           ISA main adapter                        ISA bus algorithm
i2c-1   unknown         bt878 #0 [sw]                           Algorithm unavailable
i2c-0   unknown         SMBus2 AMD8111 adapter at cc00          Algorithm unavailable
Reasonably interesting -- check again when the right modules are loaded!

In the notes on the 2.6.12 kernel, I added the following (/usr/src/zinfo2.6.12):
Here is a chipset list for hardware monitoring -- I may not have
included support correctly in 2.6.9 (definitely not for the Winbond chip
for example):

I2C support (use the sensors-detect utility from lm-sensors package)

I2C Algorithms
  •    "I2C bit-banging interfaces" module i2c-algo-bit (used by bttv)
I2C Hardware Bus support
  • AMD-8131 HyperTransport PCI-X Tunnel
    • I don't see any I2C support for this chipset
  • AMD-8111 HyperTransport I/O Hub ("AMD-8111 SMBus 2.0", device 00:07.2)
    • "AMD 8111" module i2c-amd8111 (loads, found by scan)
  • AMD-8111 ACPI, device 00:07.3) (found by scan)
    • "AMD 756/766/768/8111 and nVidia nForce" module i2c-amd756
  • Use this -- it's faster than I2C access (see below)
    • "ISA Bus support" module i2c-isa (loads)
Hardware Sensors Chip support

     "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."
  • ISA bus address 0x0290 (Busdriver `i2c-isa') (found by scan)
    • Chip `Winbond W83627HF Super IO Sensors' (likely correct)
    • Winbond W83627HF Super I/O ASIC (listed by Monarch)
    • "Winbond W83627HF, W83627THF, W83637HF, W83697HF" module w83627hf
  • ISA bus address 0x0290 (Busdriver `i2c-isa') (found by scan)
    • Chip `Winbond W83627HF' (likely misdetected -- use the other one)
    • "Winbond W83781D, W83782D, W83783S, W83627HF" module w83781d
  • Analog Devices ADM1027 Hardware Monitoring IC (not detected by scan)
    • "National Semiconductor LM85 and compatibles" module lm85
  • Try this one -- you likely don't have it:
    • "National Semiconductor LM63" module lm63
  • Try this one -- you likely don't have it:
    • "Analog Devices ADM1026 and compatibles" adm1026
Add these to the next kernel (done in configuration for 2.6.11.2).
Under cat /proc/ioports I get this:
0290-0297 : w83781d
That strongly suggests that the w83781d will work, though the alternative "Super I/O" w83627hf driver is likely the better one to use.  I also get this:
cc00-cc1f : 0000:00:07.2
  cc00-cc1f : amd8111 SMBus 2.0
So I have an SMBus (whatever that stands for), and the driver is amd8111.

 

 

CogWeb