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):
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.