LmSensorsSuperMicro

I just had to configure lm_sensors under linux on the SuperMicro model 6010H 1U server (motherboard model 370DER). I found to my surprise that no one has ever published the lm_sensors configuration for this system. So, here you go. This config is for lm_sensors 2.8.7 on the 2.4 kernel.

First of all, I asked SuperMicro for some info, and this was their response:

Motherboard:370DE6/P3TDE6/370DER
Number of LM87:2
SMBus slave address of 1st LM87(U118): 5Ch(8bit), 2Eh(7bit)
SMBus slave address of 2nd LM87(U119): 5Ah(8bit), 2Dh(7bit)
SMBus master controller IO port:0x580. (Please reference attachment rcc2.pdf in detai
+l)
Monitored healthy property:  (Please reference attachment LM87.pdf in detail)
Voltage:
    Item                register                LM87
================================
1)+12V          24h             1
2)+5v           23h             1
3)3Vsb          22h             1
4)CPU1core      21h             1
5)Power Status  23h             2(Only for 370DE6/P3TDE6)
6)CPU2core      21h             2

Fan:
    Item                register                LM87
================================
CPU1            28h             1(Note-1)
CPU2            29h             1
MB chassis1     28h             2
MB chassis2     29h             2

Note-1:
If JP65 is closed, CPU1 and CPU2 are CPU1 FAN and CPU2 FAN on motherboard.
if JP65 is open, CPU1 and CPU2 are CPU1 CHASSIS FAN and CPU2 CHASSIS FAN on motherboa
+rd.


Temperature:
    Item                register                LM87
================================
LM87 1          27h             1
CPU 1           26h             1
LM87 2          27h             2
CPU 2           26h             2


NOTE:
For all temperature reading, it is a signed char. For
instance, 0x56 = 86*C. No converter is needed.

For Fan speed, you need read register 0x47 and
extract the divisors for Fan1 and Fan2.
The algorithm is

    RPM = 1350000 / Count / Divisor

Where Count is the reading from register.

For Voltage, you need to refer to the table in section 4.0 ANALOG INPUTS
in LM87 document.  For example, if the reading value from register 0x24
is
0xB8.  Then you may convert this voltage
 0xB8 * 62.5mv = 184 * 62.5mv = 11.5v

which gives some general guidance, but doesn't answer the question of what your /etc/sensors.conf should look like or what modules you need to load.

Here's the /etc/sensors.conf I developed based on that info and some guesswork:

# 2e is the first lm87 chip
chip "lm87-i2c-*-2e"

     # Ignore all fans except the one that's actrually connected: the bug
     # chassis fan on the second lm87 chip.
     label fan1 "Chs2 Fan"
     label fan2 "CPU1 Fan"
     ignore fan1
     ignore fan2
     label temp1 "Chs1 Temp"
     label CPU_Temp "CPU1 Temp"
     # Adding 10 degrees to the cpu temp is a guess based on
     # observing bios vs. lm_sensors temps.
     compute CPU_Temp 10+@,@+10

# 2d is the second lm87 chip
chip "lm87-i2c-*-2d"

     # Ignore these voltages as there is no CPU installed.
     ignore "2.5V"
     ignore Vccp2
     label fan1 "Chs1 Fan"
     label fan2 "CPU2 Fan"
     ignore fan2
     label temp1 "Chs2 Temp"
     label CPU_Temp "CPU2 Temp"
     # This is the second CPU temp.  Ignoring because it reports 128C,
     # maybe because cpu is missing?
     ignore CPU_Temp
     # Adding 10 degrees to the cpu temp is a guess based on
     # observing bios vs. lm_sensors temps.
     compute CPU_Temp 10+@,@+10

And here's the list of modules you need to load (lm_sensors 2.8.7, earlier verisons might be different):

  • i2c-piix4
  • lm87
  • eeprom


Note that on load the i2c-piix4 module will warn:

i2c-piix4.o: Unusual config register value
i2c-piix4.o: Try using fix_hstcfg=1 if you experience problems

Ignore this. If you try what the module suggests and set the fix_hstcfg option, the system will hang when loading the module.

Finally you need this in /etc/modules.conf:

alias char-major-89 i2c-dev

Here's the output from the sensors command:

lm87-i2c-0-2d
Adapter: SMBus PIIX4 adapter at 0580
Algorithm: Non-I2C SMBus adapter
Vccp1:     +1.29 V  (min =  +0.98 V, max =  +1.99 V)
3.3V:      +3.36 V  (min =  +2.99 V, max =  +3.50 V)
5V:        +5.10 V  (min =  +4.50 V, max =  +5.52 V)
12V:      +12.12 V  (min = +10.00 V, max = +13.00 V)
Chs1 Fan: 4299 RPM  (min = 2848 RPM, div = 2)
Chs2 Temp:   +30°C  (low =   +0°C, high =  +65°C)
vid:       +1.30 V

lm87-i2c-0-2e
Adapter: SMBus PIIX4 adapter at 0580
Algorithm: Non-I2C SMBus adapter
2.5V:      +3.26 V  (min =  +0.00 V, max =  +3.32 V)
Vccp1:     +1.74 V  (min =  +0.98 V, max =  +1.99 V)
3.3V:      +3.36 V  (min =  +2.99 V, max =  +3.50 V)
5V:        +5.10 V  (min =  +4.50 V, max =  +5.52 V)
12V:      +12.18 V  (min = +10.00 V, max = +13.00 V)
Vccp2:     +1.49 V  (min =  +0.98 V, max =  +1.99 V)
Chs2 Temp:   +28°C  (low =   +0°C, high =  +65°C)
CPU1 Temp:   +37°C  (low =  +10°C, high =  +95°C)
vid:       +1.75 V

eeprom-i2c-0-50
Adapter: SMBus PIIX4 adapter at 0580
Algorithm: Non-I2C SMBus adapter
Memory type:            SDR SDRAM DIMM
Memory size (MB):       128

eeprom-i2c-0-54
Adapter: SMBus PIIX4 adapter at 0580
Algorithm: Non-I2C SMBus adapter
Memory type:            SDR SDRAM DIMM
Memory size (MB):       128

Remember you will have to adjust /etc/sensors.conf if you have two CPUs installed.


CategoryGeekStuff

CategoryLinuxStuff



Our Founder
ToolboxClick to hide/show