Discussion:
[lm-sensors] looking for help with W83795ADG
Eddi De Pieri
2011-08-16 07:26:06 UTC
Permalink
Hi Jean...

The bios show fan rpm and temperature. Since my own proliant
microserver lacks of ipmi card, I doubt the bios give me the results
using ipmi call.

The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus like your.

http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf

Here is technical document from amd...

at p52/53 they say:

(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices
only. It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.


SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins
that are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at any time.

I can't understand how to enable 2, 3 and 4 muxed bus..

If you consolidate a solution for i2c-i801.c I hope we can be
replicated for i2c-piix4.c too..



Hi Karsten,

On Fri, 22 Oct 2010 16:04:10 +0200, karsten at maxi-dsl.de
* hi Jean,
*>* > The w83795 driver uses the same detection mechanism used in

*>* > sensors-detect. So if sensors-detect doesn't see your chip, I am not
*>* > surprised that the driver didn't either.
*>*
*>* > The full output of sensors-detect is needed to diagnose your problem

*>* > further. It could be that your SMBus controller isn't supported, or
*>* > maybe you are supposed to access the chip through IPMI.
*>*
*>* IPMI is probably the key..

*>*
*>* From the sensors-detect output:
*>* "Warning: the required module ipmisensors is not currently installed
*>* on your system. If it is built into the kernel then it's OK.

*>* Otherwise, check http://www.lm-sensors.org/wiki/Devices for
*>* driver availability" (full ouput attached)
*>*
*>* I did see the output before, but didn't really understand the
*>* implications (IPMI seems to be an alternative way of accessing the
*>* monitoring chips?)
*
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
* The suggested ipmisensors driver however does not seem to be available, right?
*>* (http://lm-sensors.org/wiki/Devices says "(2004-12-12) Port to Linux

*>* 2.6 in progress by Yani Ioannou")
*
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually


monitoring applications won't work.

If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.

If not, then it might be worth trying ipmitool once, and then try


sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is


set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.

If the trick doesn't work, you may want to try the new jc42 driver


which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
sensors-detect would confirm that:
http://dl.lm-sensors.org/lm-sensors/files/sensors-detect


I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
the drivers which I maintain at:
http://khali.linux-fr.org/devel/misc/k10temp/


The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20110816/d33e0d88/attachment.html>
Eddi De Pieri
2011-11-16 16:18:20 UTC
Permalink
Finally I get W83795ADG working on my proliant microserver

The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.

Karsten, please try it too...

root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0?? smbus?????????? SMBus piix4 adapter (SDA0)????????????? SMBus adapter
i2c-1?? smbus?????????? SMBus piix4 adapter (SDA2)????????????? SMBus adapter
i2c-2?? smbus?????????? SMBus piix4 adapter (SDA3)????????????? SMBus adapter
i2c-3?? smbus?????????? SMBus piix4 adapter (SDA4)????????????? SMBus adapter
root at proliant:/usr/src/lm-sensors/eddi#

yes SDA1 is reserved... so i can't multiplex it

root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1:?????? +24.5?C? (high = +70.0?C, crit = +100.0?C)

w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0:???????? +1.02 V? (min =? +0.00 V, max =? +2.05 V)
in1:???????? +1.52 V? (min =? +0.00 V, max =? +2.05 V)
in2:???????? +1.10 V? (min =? +0.00 V, max =? +2.05 V)
in3:???????? +0.89 V? (min =? +0.00 V, max =? +2.05 V)
in12:??????? +3.35 V? (min =? +0.00 V, max =? +6.14 V)
in13:??????? +3.28 V? (min =? +0.00 V, max =? +6.14 V)
fan1:??????? 703 RPM? (min =? 329 RPM)
temp1:?????? +23.0?C? (high = +109.0?C, hyst = +109.0?C)
????????????????????? (crit = +109.0?C, hyst = +109.0?C)? sensor = thermal diode
temp2:?????? +33.2?C? (high = +105.0?C, hyst = +105.0?C)
????????????????????? (crit = +105.0?C, hyst = +105.0?C)? sensor = thermal diode
temp5:?????? +14.0?C? (high = +39.0?C, hyst = +39.0?C)
????????????????????? (crit = +44.0?C, hyst = +44.0?C)? sensor = thermistor
beep_enable:disabled

jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1:?????? +20.5?C? (low? =? +0.0?C, high =? +0.0?C)? ALARM
????????????????????? (crit =? +0.0?C, hyst =? +0.0?C)? ALARM


root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
???? 0? 1? 2? 3? 4? 5? 6? 7? 8? 9? a? b? c? d? e? f
00:????????? -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
???? 0? 1? 2? 3? 4? 5? 6? 7? 8? 9? a? b? c? d? e? f
00:????????? -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
???? 0? 1? 2? 3? 4? 5? 6? 7? 8? 9? a? b? c? d? e? f
00:????????? -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
???? 0? 1? 2? 3? 4? 5? 6? 7? 8? 9? a? b? c? d? e? f
00:????????? -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

pay attention that the msleep seems to be really needed...

Regards, Eddi
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant microserver lacks of ipmi card, I doubt the bios give me the results using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices only. It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins that are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at any time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be replicated for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, check http://www.lm-sensors.org/wiki/Devices for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be available, right?
(http://lm-sensors.org/wiki/Devices says "(2004-12-12) Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: proliant-microserver-n36l.diff
Type: application/octet-stream
Size: 9805 bytes
Desc: not available
URL: <http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20111116/04472dbe/attachment.obj>
Karsten de Freese
2011-11-17 21:25:53 UTC
Permalink
hi Eddi,

thanks very much - I had almost forgotten about the topic, but stumbled
across it again a few days ago, so that's very interesting.
I'm not yet familiar with .diff patches, and may welcome a little help.
However, let me try to find out on my own first..

thanks & regards -

Karsten
Post by Eddi De Pieri
Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter
i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter
i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter
i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter
root at proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +24.5?C (high = +70.0?C, crit = +100.0?C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: +1.02 V (min = +0.00 V, max = +2.05 V)
in1: +1.52 V (min = +0.00 V, max = +2.05 V)
in2: +1.10 V (min = +0.00 V, max = +2.05 V)
in3: +0.89 V (min = +0.00 V, max = +2.05 V)
in12: +3.35 V (min = +0.00 V, max = +6.14 V)
in13: +3.28 V (min = +0.00 V, max = +6.14 V)
fan1: 703 RPM (min = 329 RPM)
temp1: +23.0?C (high = +109.0?C, hyst = +109.0?C)
(crit = +109.0?C, hyst = +109.0?C) sensor = thermal diode
temp2: +33.2?C (high = +105.0?C, hyst = +105.0?C)
(crit = +105.0?C, hyst = +105.0?C) sensor = thermal diode
temp5: +14.0?C (high = +39.0?C, hyst = +39.0?C)
(crit = +44.0?C, hyst = +44.0?C) sensor = thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: +20.5?C (low = +0.0?C, high = +0.0?C) ALARM
(crit = +0.0?C, hyst = +0.0?C) ALARM
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant microserver lacks of ipmi card, I doubt the bios give me the results using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices only. It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins that are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at any time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be replicated for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be available, right?
(http://lm-sensors.org/wiki/Devices says "(2004-12-12) Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
Karsten de Freese
2011-11-17 22:39:25 UTC
Permalink
hello Eddi,

I'm ready for two questions ;-)

.diff / patch looks simple, and I also found i2c-amd756-s4882.c - however:
- the diff file actually describes the patch to be on top of i2c-piix4.c?
- if I'd compile the patched file, would that give me a standalone driver?

thanks for your help -

Karsten
Post by Karsten de Freese
hi Eddi,
thanks very much - I had almost forgotten about the topic, but
stumbled across it again a few days ago, so that's very interesting.
I'm not yet familiar with .diff patches, and may welcome a little
help. However, let me try to find out on my own first..
thanks & regards -
Karsten
Post by Eddi De Pieri
Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter
i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter
i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter
i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter
root at proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +24.5?C (high = +70.0?C, crit = +100.0?C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: +1.02 V (min = +0.00 V, max = +2.05 V)
in1: +1.52 V (min = +0.00 V, max = +2.05 V)
in2: +1.10 V (min = +0.00 V, max = +2.05 V)
in3: +0.89 V (min = +0.00 V, max = +2.05 V)
in12: +3.35 V (min = +0.00 V, max = +6.14 V)
in13: +3.28 V (min = +0.00 V, max = +6.14 V)
fan1: 703 RPM (min = 329 RPM)
temp1: +23.0?C (high = +109.0?C, hyst = +109.0?C)
(crit = +109.0?C, hyst = +109.0?C) sensor = thermal diode
temp2: +33.2?C (high = +105.0?C, hyst = +105.0?C)
(crit = +105.0?C, hyst = +105.0?C) sensor = thermal diode
temp5: +14.0?C (high = +39.0?C, hyst = +39.0?C)
(crit = +44.0?C, hyst = +44.0?C) sensor = thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: +20.5?C (low = +0.0?C, high = +0.0?C) ALARM
(crit = +0.0?C, hyst = +0.0?C) ALARM
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant
microserver lacks of ipmi card, I doubt the bios give me the results
using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices
only. It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins
that are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at any time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be
replicated for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be available, right?
(http://lm-sensors.org/wiki/Devices says "(2004-12-12) Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
Eddi De Pieri
2011-11-18 10:09:45 UTC
Permalink
I suggest you:


mkdir ~/piix4-n36l
cp [yourlinuxtree]/usr/src/linux-source-2.6.32/drivers/i2c/busses/i2c-piix4.c
~/piix4-n36l/
cp ~/Downloads/Makefile ~/piix4-n36l/
cd ~/piix4-n36l/

patch -p1 < proliant-microserver-n36l.diff
make
you will have your new module inside ~/piix4-n36l/

rmmod i2c-piix4
insmod ./i2c-piix4.ko
insmod ./i2c-piix4-n36l.ko

insmod w83795 (you should already build separately)

sensors

regards Eddi.

I hope an answer from Jean... I'd like if this patch may be inserted
in mainstream linux with the necessary adjustment..
Post by Karsten de Freese
hello Eddi,
I'm ready for two questions ;-)
- the diff file actually describes the patch to be on top of i2c-piix4.c?
- if I'd compile the patched file, would that give me a standalone driver?
thanks for your help -
Karsten
Post by Karsten de Freese
hi Eddi,
thanks very much - I had almost forgotten about the topic, but stumbled
across it again a few days ago, so that's very interesting.
I'm not yet familiar with .diff patches, and may welcome a little help.
However, let me try to find out on my own first..
thanks & regards -
Karsten
Post by Eddi De Pieri
Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA0) ? ? ? ? ? ? ?SMBus
adapter
i2c-1 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA2) ? ? ? ? ? ? ?SMBus
adapter
i2c-2 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA3) ? ? ? ? ? ? ?SMBus
adapter
i2c-3 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA4) ? ? ? ? ? ? ?SMBus
adapter
root at proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: ? ? ? +24.5?C ?(high = +70.0?C, crit = +100.0?C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: ? ? ? ? +1.02 V ?(min = ?+0.00 V, max = ?+2.05 V)
in1: ? ? ? ? +1.52 V ?(min = ?+0.00 V, max = ?+2.05 V)
in2: ? ? ? ? +1.10 V ?(min = ?+0.00 V, max = ?+2.05 V)
in3: ? ? ? ? +0.89 V ?(min = ?+0.00 V, max = ?+2.05 V)
in12: ? ? ? ?+3.35 V ?(min = ?+0.00 V, max = ?+6.14 V)
in13: ? ? ? ?+3.28 V ?(min = ?+0.00 V, max = ?+6.14 V)
fan1: ? ? ? ?703 RPM ?(min = ?329 RPM)
temp1: ? ? ? +23.0?C ?(high = +109.0?C, hyst = +109.0?C)
? ? ? ? ? ? ? ? ? ? ? (crit = +109.0?C, hyst = +109.0?C) ?sensor =
thermal diode
temp2: ? ? ? +33.2?C ?(high = +105.0?C, hyst = +105.0?C)
? ? ? ? ? ? ? ? ? ? ? (crit = +105.0?C, hyst = +105.0?C) ?sensor =
thermal diode
temp5: ? ? ? +14.0?C ?(high = +39.0?C, hyst = +39.0?C)
? ? ? ? ? ? ? ? ? ? ? (crit = +44.0?C, hyst = +44.0?C) ?sensor =
thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: ? ? ? +20.5?C ?(low ?= ?+0.0?C, high = ?+0.0?C) ?ALARM
? ? ? ? ? ? ? ? ? ? ? (crit = ?+0.0?C, hyst = ?+0.0?C) ?ALARM
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant microserver
lacks of ipmi card, I doubt the bios give me the results using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices only.
It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins that
are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at any time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be replicated
for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices ?for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be available, right?
(http://lm-sensors.org/wiki/Devices ?says "(2004-12-12) ?Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
? http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
? http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile
Type: application/octet-stream
Size: 1044 bytes
Desc: not available
URL: <http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20111118/7c04505f/attachment.obj>
Karsten de Freese
2011-11-20 13:38:23 UTC
Permalink
hello Eddi,

Success!

Thanks for the detailed steps. This all works as described, at least as
far as the 'sensors' output is concerned. With the respective modules, I
get all the measurements you're listing! (See attached.)

'i2cdetect -l' will however not produce any output for whatsoever reason.

The next thing I'd like to find out is how to load the modules
automatically in a clean / kernel-upgrade-proof way..

thanks and regards -

Karsten
Post by Eddi De Pieri
mkdir ~/piix4-n36l
cp [yourlinuxtree]/usr/src/linux-source-2.6.32/drivers/i2c/busses/i2c-piix4.c
~/piix4-n36l/
cp ~/Downloads/Makefile ~/piix4-n36l/
cd ~/piix4-n36l/
patch -p1< proliant-microserver-n36l.diff
make
you will have your new module inside ~/piix4-n36l/
rmmod i2c-piix4
insmod ./i2c-piix4.ko
insmod ./i2c-piix4-n36l.ko
insmod w83795 (you should already build separately)
sensors
regards Eddi.
I hope an answer from Jean... I'd like if this patch may be inserted
in mainstream linux with the necessary adjustment..
Post by Karsten de Freese
hello Eddi,
I'm ready for two questions ;-)
- the diff file actually describes the patch to be on top of i2c-piix4.c?
- if I'd compile the patched file, would that give me a standalone driver?
thanks for your help -
Karsten
Post by Karsten de Freese
hi Eddi,
thanks very much - I had almost forgotten about the topic, but stumbled
across it again a few days ago, so that's very interesting.
I'm not yet familiar with .diff patches, and may welcome a little help.
However, let me try to find out on my own first..
thanks& regards -
Karsten
Post by Eddi De Pieri
Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter
i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter
i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter
i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter
root at proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +24.5?C (high = +70.0?C, crit = +100.0?C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: +1.02 V (min = +0.00 V, max = +2.05 V)
in1: +1.52 V (min = +0.00 V, max = +2.05 V)
in2: +1.10 V (min = +0.00 V, max = +2.05 V)
in3: +0.89 V (min = +0.00 V, max = +2.05 V)
in12: +3.35 V (min = +0.00 V, max = +6.14 V)
in13: +3.28 V (min = +0.00 V, max = +6.14 V)
fan1: 703 RPM (min = 329 RPM)
temp1: +23.0?C (high = +109.0?C, hyst = +109.0?C)
(crit = +109.0?C, hyst = +109.0?C) sensor = thermal diode
temp2: +33.2?C (high = +105.0?C, hyst = +105.0?C)
(crit = +105.0?C, hyst = +105.0?C) sensor = thermal diode
temp5: +14.0?C (high = +39.0?C, hyst = +39.0?C)
(crit = +44.0?C, hyst = +44.0?C) sensor = thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: +20.5?C (low = +0.0?C, high = +0.0?C) ALARM
(crit = +0.0?C, hyst = +0.0?C) ALARM
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant microserver
lacks of ipmi card, I doubt the bios give me the results using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices only.
It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins that
are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at any time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be replicated
for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be available, right?
(http://lm-sensors.org/wiki/Devices says "(2004-12-12) Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sensors_out
URL: <http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20111120/5047a753/attachment.ksh>
Karsten de Freese
2011-11-20 23:03:36 UTC
Permalink
hello Eddi,

a less-than-welcome update:

at least when the three modules i2c-piix4.ko, i2c-piix4-n36l.ko,
w83795.ko are loaded, a restart (sudo shutdown -r now) of my N36L
fails, the system does not come up until I do a complete power cycle.
I'll have to look more closely at this, once I have physical access to
the box again.

regards -

Karsten
Post by Karsten de Freese
hello Eddi,
Success!
Thanks for the detailed steps. This all works as described, at least
as far as the 'sensors' output is concerned. With the respective
modules, I get all the measurements you're listing! (See attached.)
'i2cdetect -l' will however not produce any output for whatsoever reason.
The next thing I'd like to find out is how to load the modules
automatically in a clean / kernel-upgrade-proof way..
thanks and regards -
Karsten
Post by Eddi De Pieri
mkdir ~/piix4-n36l
cp
[yourlinuxtree]/usr/src/linux-source-2.6.32/drivers/i2c/busses/i2c-piix4.c
~/piix4-n36l/
cp ~/Downloads/Makefile ~/piix4-n36l/
cd ~/piix4-n36l/
patch -p1< proliant-microserver-n36l.diff
make
you will have your new module inside ~/piix4-n36l/
rmmod i2c-piix4
insmod ./i2c-piix4.ko
insmod ./i2c-piix4-n36l.ko
insmod w83795 (you should already build separately)
sensors
regards Eddi.
I hope an answer from Jean... I'd like if this patch may be inserted
in mainstream linux with the necessary adjustment..
On Thu, Nov 17, 2011 at 11:39 PM, Karsten de
Post by Karsten de Freese
hello Eddi,
I'm ready for two questions ;-)
- the diff file actually describes the patch to be on top of
i2c-piix4.c?
- if I'd compile the patched file, would that give me a standalone driver?
thanks for your help -
Karsten
Post by Karsten de Freese
hi Eddi,
thanks very much - I had almost forgotten about the topic, but stumbled
across it again a few days ago, so that's very interesting.
I'm not yet familiar with .diff patches, and may welcome a little help.
However, let me try to find out on my own first..
thanks& regards -
Karsten
Post by Eddi De Pieri
Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter
i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter
i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter
i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter
root at proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +24.5?C (high = +70.0?C, crit = +100.0?C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: +1.02 V (min = +0.00 V, max = +2.05 V)
in1: +1.52 V (min = +0.00 V, max = +2.05 V)
in2: +1.10 V (min = +0.00 V, max = +2.05 V)
in3: +0.89 V (min = +0.00 V, max = +2.05 V)
in12: +3.35 V (min = +0.00 V, max = +6.14 V)
in13: +3.28 V (min = +0.00 V, max = +6.14 V)
fan1: 703 RPM (min = 329 RPM)
temp1: +23.0?C (high = +109.0?C, hyst = +109.0?C)
(crit = +109.0?C, hyst = +109.0?C) sensor = thermal diode
temp2: +33.2?C (high = +105.0?C, hyst = +105.0?C)
(crit = +105.0?C, hyst = +105.0?C) sensor = thermal diode
temp5: +14.0?C (high = +39.0?C, hyst = +39.0?C)
(crit = +44.0?C, hyst = +44.0?C) sensor = thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: +20.5?C (low = +0.0?C, high = +0.0?C) ALARM
(crit = +0.0?C, hyst = +0.0?C) ALARM
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
On Tue, Aug 16, 2011 at 9:26 AM, Eddi De
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant microserver
lacks of ipmi card, I doubt the bios give me the results using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed
smbus
like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices only.
It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins that
are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active
at any
time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be replicated
for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't
supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be
available,
right?
(http://lm-sensors.org/wiki/Devices says "(2004-12-12) Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
Eddi De Pieri
2011-11-21 10:49:04 UTC
Permalink
Well... I noticed this too... I have to investigate...

perhaps I wrong masks on rewriting adresses... I don't know very well
C programming..

I hope Jean Delvare can help us in adjusting mask programming...

Do you get sensors working?

Regards
Post by Karsten de Freese
hello Eddi,
at least when the three modules i2c-piix4.ko, i2c-piix4-n36l.ko, w83795.ko
are loaded, ?a restart (sudo shutdown -r now) of my N36L fails, the system
does not come up until I do a complete power cycle. I'll have to look more
closely at this, once I have physical access to the box again.
regards -
Karsten
Post by Karsten de Freese
hello Eddi,
Success!
Thanks for the detailed steps. This all works as described, at least as
far as the 'sensors' output is concerned. With the respective modules, I get
all the measurements you're listing! (See attached.)
'i2cdetect -l' will however not produce any output for whatsoever reason.
The next thing I'd like to find out is how to load the modules
automatically in a clean / kernel-upgrade-proof way..
thanks and regards -
Karsten
Post by Eddi De Pieri
mkdir ~/piix4-n36l
cp
[yourlinuxtree]/usr/src/linux-source-2.6.32/drivers/i2c/busses/i2c-piix4.c
~/piix4-n36l/
cp ~/Downloads/Makefile ~/piix4-n36l/
cd ?~/piix4-n36l/
patch -p1< ?proliant-microserver-n36l.diff
make
you will have your new module inside ~/piix4-n36l/
rmmod i2c-piix4
insmod ./i2c-piix4.ko
insmod ./i2c-piix4-n36l.ko
insmod w83795 (you should already build separately)
sensors
regards Eddi.
I hope an answer from Jean... I'd like if this patch may be inserted
in mainstream linux with the necessary adjustment..
On Thu, Nov 17, 2011 at 11:39 PM, Karsten de Freese<karsten at maxi-dsl.de>
Post by Karsten de Freese
hello Eddi,
I'm ready for two questions ;-)
- the diff file actually describes the patch to be on top of i2c-piix4.c?
- if I'd compile the patched file, would that give me a standalone driver?
thanks for your help -
Karsten
Post by Karsten de Freese
hi Eddi,
thanks very much - I had almost forgotten about the topic, but stumbled
across it again a few days ago, so that's very interesting.
I'm not yet familiar with .diff patches, and may welcome a little help.
However, let me try to find out on my own first..
thanks& ?regards -
Karsten
Post by Eddi De Pieri
Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA0) ? ? ? ? ? ? ?SMBus
adapter
i2c-1 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA2) ? ? ? ? ? ? ?SMBus
adapter
i2c-2 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA3) ? ? ? ? ? ? ?SMBus
adapter
i2c-3 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA4) ? ? ? ? ? ? ?SMBus
adapter
root at proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: ? ? ? +24.5?C ?(high = +70.0?C, crit = +100.0?C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: ? ? ? ? +1.02 V ?(min = ?+0.00 V, max = ?+2.05 V)
in1: ? ? ? ? +1.52 V ?(min = ?+0.00 V, max = ?+2.05 V)
in2: ? ? ? ? +1.10 V ?(min = ?+0.00 V, max = ?+2.05 V)
in3: ? ? ? ? +0.89 V ?(min = ?+0.00 V, max = ?+2.05 V)
in12: ? ? ? ?+3.35 V ?(min = ?+0.00 V, max = ?+6.14 V)
in13: ? ? ? ?+3.28 V ?(min = ?+0.00 V, max = ?+6.14 V)
fan1: ? ? ? ?703 RPM ?(min = ?329 RPM)
temp1: ? ? ? +23.0?C ?(high = +109.0?C, hyst = +109.0?C)
? ? ? ? ? ? ? ? ? ? ? (crit = +109.0?C, hyst = +109.0?C) ?sensor =
thermal diode
temp2: ? ? ? +33.2?C ?(high = +105.0?C, hyst = +105.0?C)
? ? ? ? ? ? ? ? ? ? ? (crit = +105.0?C, hyst = +105.0?C) ?sensor =
thermal diode
temp5: ? ? ? +14.0?C ?(high = +39.0?C, hyst = +39.0?C)
? ? ? ? ? ? ? ? ? ? ? (crit = +44.0?C, hyst = +44.0?C) ?sensor =
thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: ? ? ? +20.5?C ?(low ?= ?+0.0?C, high = ?+0.0?C) ?ALARM
? ? ? ? ? ? ? ? ? ? ? (crit = ?+0.0?C, hyst = ?+0.0?C) ?ALARM
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant microserver
lacks of ipmi card, I doubt the bios give me the results using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus
like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices only.
It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins that
are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at
any
time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be replicated
for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices ?for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be
available,
right?
(http://lm-sensors.org/wiki/Devices ?says "(2004-12-12) ?Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
? http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
? http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
Karsten de Freese
2011-11-21 16:09:15 UTC
Permalink
Yes, the sensors are working - in one of the earlier mails I had attached the Output of 'sensors' wich was very similar to your results!

Regards -

Karsten
Post by Eddi De Pieri
Well... I noticed this too... I have to investigate...
perhaps I wrong masks on rewriting adresses... I don't know very well
C programming..
I hope Jean Delvare can help us in adjusting mask programming...
Do you get sensors working?
Regards
Post by Karsten de Freese
hello Eddi,
at least when the three modules i2c-piix4.ko, i2c-piix4-n36l.ko, w83795.ko
are loaded, a restart (sudo shutdown -r now) of my N36L fails, the system
does not come up until I do a complete power cycle. I'll have to look more
closely at this, once I have physical access to the box again.
regards -
Karsten
Post by Karsten de Freese
hello Eddi,
Success!
Thanks for the detailed steps. This all works as described, at least as
far as the 'sensors' output is concerned. With the respective modules, I get
all the measurements you're listing! (See attached.)
'i2cdetect -l' will however not produce any output for whatsoever reason.
The next thing I'd like to find out is how to load the modules
automatically in a clean / kernel-upgrade-proof way..
thanks and regards -
Karsten
Post by Eddi De Pieri
mkdir ~/piix4-n36l
cp
[yourlinuxtree]/usr/src/linux-source-2.6.32/drivers/i2c/busses/i2c-piix4.c
~/piix4-n36l/
cp ~/Downloads/Makefile ~/piix4-n36l/
cd ~/piix4-n36l/
patch -p1< proliant-microserver-n36l.diff
make
you will have your new module inside ~/piix4-n36l/
rmmod i2c-piix4
insmod ./i2c-piix4.ko
insmod ./i2c-piix4-n36l.ko
insmod w83795 (you should already build separately)
sensors
regards Eddi.
I hope an answer from Jean... I'd like if this patch may be inserted
in mainstream linux with the necessary adjustment..
On Thu, Nov 17, 2011 at 11:39 PM, Karsten de Freese<karsten at maxi-dsl.de>
Post by Karsten de Freese
hello Eddi,
I'm ready for two questions ;-)
- the diff file actually describes the patch to be on top of i2c-piix4.c?
- if I'd compile the patched file, would that give me a standalone driver?
thanks for your help -
Karsten
Post by Karsten de Freese
hi Eddi,
thanks very much - I had almost forgotten about the topic, but stumbled
across it again a few days ago, so that's very interesting.
I'm not yet familiar with .diff patches, and may welcome a little help.
However, let me try to find out on my own first..
thanks& regards -
Karsten
Post by Eddi De Pieri
Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter
i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter
i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter
i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter
root at proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +24.5?C (high = +70.0?C, crit = +100.0?C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: +1.02 V (min = +0.00 V, max = +2.05 V)
in1: +1.52 V (min = +0.00 V, max = +2.05 V)
in2: +1.10 V (min = +0.00 V, max = +2.05 V)
in3: +0.89 V (min = +0.00 V, max = +2.05 V)
in12: +3.35 V (min = +0.00 V, max = +6.14 V)
in13: +3.28 V (min = +0.00 V, max = +6.14 V)
fan1: 703 RPM (min = 329 RPM)
temp1: +23.0?C (high = +109.0?C, hyst = +109.0?C)
(crit = +109.0?C, hyst = +109.0?C) sensor =
thermal diode
temp2: +33.2?C (high = +105.0?C, hyst = +105.0?C)
(crit = +105.0?C, hyst = +105.0?C) sensor =
thermal diode
temp5: +14.0?C (high = +39.0?C, hyst = +39.0?C)
(crit = +44.0?C, hyst = +44.0?C) sensor = thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: +20.5?C (low = +0.0?C, high = +0.0?C) ALARM
(crit = +0.0?C, hyst = +0.0?C) ALARM
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
On Tue, Aug 16, 2011 at 9:26 AM, Eddi De Pieri<eddi at depieri.net>
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant microserver
lacks of ipmi card, I doubt the bios give me the results using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus
like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices only.
It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins that
are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at
any
time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be replicated
for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be
available,
right?
(http://lm-sensors.org/wiki/Devices says "(2004-12-12) Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
Eddi De Pieri
2011-11-25 10:22:41 UTC
Permalink
Hi Karsten,

about the complete power cycle issue:

While testing I had same problem like you... I had to remove power
cord to get my server back...

Now I tried a soft "reboot" and I get any issue..

So my patch seems to be fully working and I'd like to know how to
commit into mainstream.

I think may be useful for other pc based on same chipset like ours.

Regards,

Eddi
Post by Karsten de Freese
hello Eddi,
at least when the three modules i2c-piix4.ko, i2c-piix4-n36l.ko, w83795.ko
are loaded, ?a restart (sudo shutdown -r now) of my N36L fails, the system
does not come up until I do a complete power cycle. I'll have to look more
closely at this, once I have physical access to the box again.
regards -
Karsten
Post by Karsten de Freese
hello Eddi,
Success!
Thanks for the detailed steps. This all works as described, at least as
far as the 'sensors' output is concerned. With the respective modules, I get
all the measurements you're listing! (See attached.)
'i2cdetect -l' will however not produce any output for whatsoever reason.
The next thing I'd like to find out is how to load the modules
automatically in a clean / kernel-upgrade-proof way..
thanks and regards -
Karsten
Post by Eddi De Pieri
mkdir ~/piix4-n36l
cp
[yourlinuxtree]/usr/src/linux-source-2.6.32/drivers/i2c/busses/i2c-piix4.c
~/piix4-n36l/
cp ~/Downloads/Makefile ~/piix4-n36l/
cd ?~/piix4-n36l/
patch -p1< ?proliant-microserver-n36l.diff
make
you will have your new module inside ~/piix4-n36l/
rmmod i2c-piix4
insmod ./i2c-piix4.ko
insmod ./i2c-piix4-n36l.ko
insmod w83795 (you should already build separately)
sensors
regards Eddi.
I hope an answer from Jean... I'd like if this patch may be inserted
in mainstream linux with the necessary adjustment..
On Thu, Nov 17, 2011 at 11:39 PM, Karsten de Freese<karsten at maxi-dsl.de>
Post by Karsten de Freese
hello Eddi,
I'm ready for two questions ;-)
- the diff file actually describes the patch to be on top of i2c-piix4.c?
- if I'd compile the patched file, would that give me a standalone driver?
thanks for your help -
Karsten
Post by Karsten de Freese
hi Eddi,
thanks very much - I had almost forgotten about the topic, but stumbled
across it again a few days ago, so that's very interesting.
I'm not yet familiar with .diff patches, and may welcome a little help.
However, let me try to find out on my own first..
thanks& ?regards -
Karsten
Post by Eddi De Pieri
Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA0) ? ? ? ? ? ? ?SMBus
adapter
i2c-1 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA2) ? ? ? ? ? ? ?SMBus
adapter
i2c-2 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA3) ? ? ? ? ? ? ?SMBus
adapter
i2c-3 ? smbus ? ? ? ? ? SMBus piix4 adapter (SDA4) ? ? ? ? ? ? ?SMBus
adapter
root at proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: ? ? ? +24.5?C ?(high = +70.0?C, crit = +100.0?C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: ? ? ? ? +1.02 V ?(min = ?+0.00 V, max = ?+2.05 V)
in1: ? ? ? ? +1.52 V ?(min = ?+0.00 V, max = ?+2.05 V)
in2: ? ? ? ? +1.10 V ?(min = ?+0.00 V, max = ?+2.05 V)
in3: ? ? ? ? +0.89 V ?(min = ?+0.00 V, max = ?+2.05 V)
in12: ? ? ? ?+3.35 V ?(min = ?+0.00 V, max = ?+6.14 V)
in13: ? ? ? ?+3.28 V ?(min = ?+0.00 V, max = ?+6.14 V)
fan1: ? ? ? ?703 RPM ?(min = ?329 RPM)
temp1: ? ? ? +23.0?C ?(high = +109.0?C, hyst = +109.0?C)
? ? ? ? ? ? ? ? ? ? ? (crit = +109.0?C, hyst = +109.0?C) ?sensor =
thermal diode
temp2: ? ? ? +33.2?C ?(high = +105.0?C, hyst = +105.0?C)
? ? ? ? ? ? ? ? ? ? ? (crit = +105.0?C, hyst = +105.0?C) ?sensor =
thermal diode
temp5: ? ? ? +14.0?C ?(high = +39.0?C, hyst = +39.0?C)
? ? ? ? ? ? ? ? ? ? ? (crit = +44.0?C, hyst = +44.0?C) ?sensor =
thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: ? ? ? +20.5?C ?(low ?= ?+0.0?C, high = ?+0.0?C) ?ALARM
? ? ? ? ? ? ? ? ? ? ? (crit = ?+0.0?C, hyst = ?+0.0?C) ?ALARM
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
? ? ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?a ?b ?c ?d ?e ?f
00: ? ? ? ? ?-- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant microserver
lacks of ipmi card, I doubt the bios give me the results using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus
like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices only.
It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins that
are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at
any
time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be replicated
for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices ?for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be
available,
right?
(http://lm-sensors.org/wiki/Devices ?says "(2004-12-12) ?Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
? http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
? http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
Guenter Roeck
2011-11-25 10:45:10 UTC
Permalink
Post by Eddi De Pieri
Hi Karsten,
While testing I had same problem like you... I had to remove power
cord to get my server back...
Now I tried a soft "reboot" and I get any issue..
So my patch seems to be fully working and I'd like to know how to
commit into mainstream.
1) Don't top-post. Your e-mail may otherwise be ignored.
2) There is conflicting information if your patch is causing trouble
or not. Please clarify if and when a reboot fails, and what you changed
to solve the problem.
3) This is an I2C multiplexer. Provide a patch which introduces an I2C
multiplexer driver.
4) Read and follow Documentation/hwmon/submitting-patches for submitting
your patch.

Thanks,
Guenter
Post by Eddi De Pieri
I think may be useful for other pc based on same chipset like ours.
Regards,
Eddi
Post by Karsten de Freese
hello Eddi,
at least when the three modules i2c-piix4.ko, i2c-piix4-n36l.ko, w83795.ko
are loaded, a restart (sudo shutdown -r now) of my N36L fails, the system
does not come up until I do a complete power cycle. I'll have to look more
closely at this, once I have physical access to the box again.
regards -
Karsten
Post by Karsten de Freese
hello Eddi,
Success!
Thanks for the detailed steps. This all works as described, at least as
far as the 'sensors' output is concerned. With the respective modules, I get
all the measurements you're listing! (See attached.)
'i2cdetect -l' will however not produce any output for whatsoever reason.
The next thing I'd like to find out is how to load the modules
automatically in a clean / kernel-upgrade-proof way..
thanks and regards -
Karsten
Post by Eddi De Pieri
mkdir ~/piix4-n36l
cp
[yourlinuxtree]/usr/src/linux-source-2.6.32/drivers/i2c/busses/i2c-piix4.c
~/piix4-n36l/
cp ~/Downloads/Makefile ~/piix4-n36l/
cd ~/piix4-n36l/
patch -p1< proliant-microserver-n36l.diff
make
you will have your new module inside ~/piix4-n36l/
rmmod i2c-piix4
insmod ./i2c-piix4.ko
insmod ./i2c-piix4-n36l.ko
insmod w83795 (you should already build separately)
sensors
regards Eddi.
I hope an answer from Jean... I'd like if this patch may be inserted
in mainstream linux with the necessary adjustment..
On Thu, Nov 17, 2011 at 11:39 PM, Karsten de Freese<karsten at maxi-dsl.de>
Post by Karsten de Freese
hello Eddi,
I'm ready for two questions ;-)
- the diff file actually describes the patch to be on top of i2c-piix4.c?
- if I'd compile the patched file, would that give me a standalone driver?
thanks for your help -
Karsten
Post by Karsten de Freese
hi Eddi,
thanks very much - I had almost forgotten about the topic, but stumbled
across it again a few days ago, so that's very interesting.
I'm not yet familiar with .diff patches, and may welcome a little help.
However, let me try to find out on my own first..
thanks& regards -
Karsten
Post by Eddi De Pieri
Finally I get W83795ADG working on my proliant microserver
The patch is based on i2c-amd756-s4882.c and adapted for sb800 southbus.
Karsten, please try it too...
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -l
i2c-0 smbus SMBus piix4 adapter (SDA0) SMBus adapter
i2c-1 smbus SMBus piix4 adapter (SDA2) SMBus adapter
i2c-2 smbus SMBus piix4 adapter (SDA3) SMBus adapter
i2c-3 smbus SMBus piix4 adapter (SDA4) SMBus adapter
root at proliant:/usr/src/lm-sensors/eddi#
yes SDA1 is reserved... so i can't multiplex it
root at proliant:/usr/src/lm-sensors/eddi# sensors
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +24.5?C (high = +70.0?C, crit = +100.0?C)
w83795adg-i2c-1-2f
Adapter: SMBus piix4 adapter (SDA2)
in0: +1.02 V (min = +0.00 V, max = +2.05 V)
in1: +1.52 V (min = +0.00 V, max = +2.05 V)
in2: +1.10 V (min = +0.00 V, max = +2.05 V)
in3: +0.89 V (min = +0.00 V, max = +2.05 V)
in12: +3.35 V (min = +0.00 V, max = +6.14 V)
in13: +3.28 V (min = +0.00 V, max = +6.14 V)
fan1: 703 RPM (min = 329 RPM)
temp1: +23.0?C (high = +109.0?C, hyst = +109.0?C)
(crit = +109.0?C, hyst = +109.0?C) sensor =
thermal diode
temp2: +33.2?C (high = +105.0?C, hyst = +105.0?C)
(crit = +105.0?C, hyst = +105.0?C) sensor =
thermal diode
temp5: +14.0?C (high = +39.0?C, hyst = +39.0?C)
(crit = +44.0?C, hyst = +44.0?C) sensor = thermistor
beep_enable:disabled
jc42-i2c-0-18
Adapter: SMBus piix4 adapter (SDA0)
temp1: +20.5?C (low = +0.0?C, high = +0.0?C) ALARM
(crit = +0.0?C, hyst = +0.0?C) ALARM
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- 61 -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- 4c -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root at proliant:/usr/src/lm-sensors/eddi# i2cdetect -y 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pay attention that the msleep seems to be really needed...
Regards, Eddi
On Tue, Aug 16, 2011 at 9:26 AM, Eddi De Pieri<eddi at depieri.net>
Post by Eddi De Pieri
Hi Jean...
The bios show fan rpm and temperature. Since my own proliant microserver
lacks of ipmi card, I doubt the bios give me the results using ipmi call.
The HP Proliant Microserver chipset (SB820M) have a multiplexed smbus
like your.
http://support.amd.com/it/Embedded_TechDocs/47283_sb820m_ds_pub_2.00.pdf
Here is technical document from amd...
(1) The SDA1 and SCL1 SMBus interface is dedicated for ASF devices only.
It should not be used to
connect to any other devices.
(2) There are only two SMBus controllers. The SCL1/SDA1 pair is
controlled by SMBus controller 1.
SCL0/SDA0, SCL2/SDA2, SCL3/SDA3 and SCL4/SDA4 are multiplexed pins that
are all controlled by
SMBus controller 0, and only 1 pair of those pins can be active at
any
time.
I can't understand how to enable 2, 3 and 4 muxed bus..
If you consolidate a solution for i2c-i801.c I hope we can be replicated
for i2c-piix4.c too..
Hi Karsten,
hi Jean,
Post by Eddi De Pieri
The w83795 driver uses the same detection mechanism used in
sensors-detect. So if sensors-detect doesn't see your chip, I am not
surprised that the driver didn't either.
The full output of sensors-detect is needed to diagnose your problem
further. It could be that your SMBus controller isn't supported, or
maybe you are supposed to access the chip through IPMI.
IPMI is probably the key..
"Warning: the required module ipmisensors is not currently installed
on your system. If it is built into the kernel then it's OK.
Otherwise, checkhttp://www.lm-sensors.org/wiki/Devices for
driver availability" (full ouput attached)
I did see the output before, but didn't really understand the
implications (IPMI seems to be an alternative way of accessing the
monitoring chips?)
Yes. The strength of IPMI access is that it can be used remotely too,
for example from a BMC plugged into your system.
The suggested ipmisensors driver however does not seem to be
available,
right?
(http://lm-sensors.org/wiki/Devices says "(2004-12-12) Port to Linux
2.6 in progress by Yani Ioannou")
That project is essentially dead. At the time being, the best way to
retrieve IPMI-based sensor values is using "ipmitool sensor". The
drawback is that this isn't integrated with libsensors, so the usually
monitoring applications won't work.
If you have a BMC or are otherwise already using IPMI on your machine,
just use ipmitool and you're done.
If not, then it might be worth trying ipmitool once, and then try
sensors-detect again. There is a small chance that, once ipmitool
managed to access the monitoring device, sensors-detect will see it. My
own mainboard which has a W83795ADG chip has a multiplexed SMBus, and I
can only see the W83795ADG in sensors-detect when the multiplexer is
set properly. Otherwise I would see the memory modules, which _do_
appear in your sensors-detect output. So maybe your board has a
multiplexed SMBus too.
If the trick doesn't work, you may want to try the new jc42 driver
which can monitor the temperature of some DDR3 memory modules. I
suspect your memory modules have such sensors. A more recent version of
http://dl.lm-sensors.org/lm-sensors/files/sensors-detect
I also see that sensors-detect suggested to use the k10temp driver,
which your kernel doesn't have. You can try the standalone flavor of
http://khali.linux-fr.org/devel/misc/k10temp/
The accuracy of the CPU internal sensors is limited, but that's still
better than nothing.
--
Jean Delvare
http://khali.linux-fr.org/wishlist.html
_______________________________________________
lm-sensors mailing list
lm-sensors at lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Karsten de Freese
2011-12-04 21:18:07 UTC
Permalink
hello Eddi,
Post by Eddi De Pieri
While testing I had same problem like you... I had to remove power
cord to get my server back...
Now I tried a soft "reboot" and I get any issue..
So my patch seems to be fully working and I'd like to know how to
commit into mainstream.
So I understand that you've fixed the problem of the hanging reboots.
Great! Could you send me the latest version of your patch?
Post by Eddi De Pieri
I think may be useful for other pc based on same chipset like ours.
certainly..
Post by Eddi De Pieri
Regards,
Eddi
regards -

Karsten

Loading...