* [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What
2006-03-21 17:49 [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What else Steve Snyder
@ 2006-03-21 17:58 ` Steve Snyder
2006-03-21 19:10 ` Jean Delvare
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Steve Snyder @ 2006-03-21 17:58 UTC (permalink / raw)
To: lm-sensors
Oops! Forgot to mention that I'm using lm_sensors-2.8.7 for the userspace
programs. (Standard with RHEL4).
---------- Forwarded Message ----------
Subject: lm87 on kernel 2.6.9: kinda-sorta working. What else is needed?
Date: Tuesday 21 March 2006 12:49 pm
From: Steve Snyder <swsnyder at insightbb.com>
To: lm-sensors at lm-sensors.org
I am attempting to get LM87 support on a RHEL4 kernel. This kernel,
2.6.9-34.EL, does not include the lm87 driver, so I'm trying to add it
myself.
My desire is to get health information from my Supermicro P3TDLE
M/B (http://www.supermicro.com/products/motherboard/P3/LE/P3TDLE.cfm).
I got the lm87.c from the standard 2.6.10 kernel and simply dropped it
into Red Hat's source tree. After adding the required normal_i2c_range[]
and normal_isa_range{} references (see below) it built without complaint.
No errors or warnings are seen in the system log at load time, either.
At runtime, though, I get this:
# sensors
lm87-i2c-0-2e
Adapter: SMBus PIIX4 adapter at 0580
ERROR: Can't get IN1 data!
ERROR: Can't get IN3 data!
ERROR: Can't get IN4 data!
fan1: 5153 RPM (min = 2848 RPM, div = 2)
fan2: 5153 RPM (min = 2848 RPM, div = 2)
temp1: +33?C (low = +0?C, high = +50?C)
ERROR: Can't get TEMP2 data!
Yes, this is a dual-CPU board, and the single temperature shown is
reasonably close to the values reported by the BIOS in the BIOS
setup menu.
This are the 2 lines I added to the 2.6.10 version of lm87.c to pacify
the build complaints:
static unsigned short normal_i2c_range[] = { I2C_CLIENT_END };
static unsigned int normal_isa_range[] = { I2C_CLIENT_ISA_END };
So now the full set of address declarations look like this:
static unsigned short normal_i2c[] = { 0x2c, 0x2d, 0x2e, I2C_CLIENT_END
}; static unsigned short normal_i2c_range[] = { I2C_CLIENT_END }; static
unsigned int normal_isa[] = { I2C_CLIENT_ISA_END };
static unsigned int normal_isa_range[] = { I2C_CLIENT_ISA_END };
Any advice out there on what else is needed to get LM87 support with this
2.6.9 (+ backported tweaks and fixes) kernel?
Thanks.
-------------------------------------------------------
^ permalink raw reply [flat|nested] 5+ messages in thread* [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What
2006-03-21 17:49 [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What else Steve Snyder
2006-03-21 17:58 ` [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What Steve Snyder
@ 2006-03-21 19:10 ` Jean Delvare
2006-03-21 21:25 ` Steve Snyder
2006-03-21 21:46 ` Jean Delvare
3 siblings, 0 replies; 5+ messages in thread
From: Jean Delvare @ 2006-03-21 19:10 UTC (permalink / raw)
To: lm-sensors
Hi Steve,
> Oops! Forgot to mention that I'm using lm_sensors-2.8.7 for the userspace
> programs. (Standard with RHEL4).
This is the cause of your problem then. Proper support for the Linux
2.6 lm87 driver was only added in lm_sensors-2.8.8.
> I got the lm87.c from the standard 2.6.10 kernel and simply dropped it
> into Red Hat's source tree. After adding the required normal_i2c_range[]
> and normal_isa_range{} references (see below) it built without complaint.
> No errors or warnings are seen in the system log at load time, either.
Note that you may want to backport the driver from 2.6.12 rather than
2.6.10 - it has some more bugfixes and cleanups, and the backport
should be similarly easy.
--
Jean Delvare
^ permalink raw reply [flat|nested] 5+ messages in thread* [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What
2006-03-21 17:49 [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What else Steve Snyder
2006-03-21 17:58 ` [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What Steve Snyder
2006-03-21 19:10 ` Jean Delvare
@ 2006-03-21 21:25 ` Steve Snyder
2006-03-21 21:46 ` Jean Delvare
3 siblings, 0 replies; 5+ messages in thread
From: Steve Snyder @ 2006-03-21 21:25 UTC (permalink / raw)
To: lm-sensors
Hi, Jean.
Thanks for the advice. With the lm87.c from kernel v2.6.12 and
lm_sensors v2.8.8 the output is vastly improved. Now it looks like this:
# sensors
lm87-i2c-0-2e
Adapter: SMBus PIIX4 adapter at 0580
VCore: +1.43 V (min = +0.98 V, max = +2.00 V)
+3.3V: +3.32 V (min = +2.99 V, max = +3.51 V)
+5V: +5.03 V (min = +4.50 V, max = +5.52 V)
+12V: +12.12 V (min = +10.00 V, max = +13.00 V)
CPU Fan: 5153 RPM (min = 2848 RPM, div = 2)
fan2: 5114 RPM (min = 2848 RPM, div = 2)
M/B Temp: +34?C (low = +0?C, high = +50?C)
CPU Temp: +37?C (low = +0?C, high = +85?C)
temp3: +37?C (low = +0?C, high = +75?C)
vid: +1.450 V (VRM Version 8.5)
Those 3 temperatures correspond to the 2 CPUs and the motherboard temp.
Is there any way to know which temp and RPM reading corresponds to which
actual device? I assume that the lowest of the 2 temperatures is the M/B,
but it would be nice to accurately identify the specific CPUs and fans.
Thanks again.
>Hi Steve,
>
>> Oops! Forgot to mention that I'm using lm_sensors-2.8.7 for the userspace
>> programs. (Standard with RHEL4).
>
>This is the cause of your problem then. Proper support for the Linux
>2.6 lm87 driver was only added in lm_sensors-2.8.8.
>
>> I got the lm87.c from the standard 2.6.10 kernel and simply dropped it
>> into Red Hat's source tree. After adding the required normal_i2c_range[]
>> and normal_isa_range{} references (see below) it built without complaint.
>> No errors or warnings are seen in the system log at load time, either.
>
>Note that you may want to backport the driver from 2.6.12 rather than
>2.6.10 - it has some more bugfixes and cleanups, and the backport
>should be similarly easy.
^ permalink raw reply [flat|nested] 5+ messages in thread* [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What
2006-03-21 17:49 [lm-sensors] lm87 on kernel 2.6.9: kinda-sorta working. What else Steve Snyder
` (2 preceding siblings ...)
2006-03-21 21:25 ` Steve Snyder
@ 2006-03-21 21:46 ` Jean Delvare
3 siblings, 0 replies; 5+ messages in thread
From: Jean Delvare @ 2006-03-21 21:46 UTC (permalink / raw)
To: lm-sensors
Hi Steve,
> Thanks for the advice. With the lm87.c from kernel v2.6.12 and
> lm_sensors v2.8.8 the output is vastly improved. Now it looks like this:
>
> # sensors
> lm87-i2c-0-2e
> Adapter: SMBus PIIX4 adapter at 0580
> VCore: +1.43 V (min = +0.98 V, max = +2.00 V)
> +3.3V: +3.32 V (min = +2.99 V, max = +3.51 V)
> +5V: +5.03 V (min = +4.50 V, max = +5.52 V)
> +12V: +12.12 V (min = +10.00 V, max = +13.00 V)
> CPU Fan: 5153 RPM (min = 2848 RPM, div = 2)
> fan2: 5114 RPM (min = 2848 RPM, div = 2)
> M/B Temp: +34?C (low = +0?C, high = +50?C)
> CPU Temp: +37?C (low = +0?C, high = +85?C)
> temp3: +37?C (low = +0?C, high = +75?C)
> vid: +1.450 V (VRM Version 8.5)
Yes, that's quite good. You could try "sensors -s" to set the limits
for the CPU voltage. You might tweak the configuration file to set the
other limits as well - in particular high temperature limits can
probably be lowered a bit.
> Those 3 temperatures correspond to the 2 CPUs and the motherboard temp.
>
> Is there any way to know which temp and RPM reading corresponds to which
> actual device? I assume that the lowest of the 2 temperatures is the M/B,
> but it would be nice to accurately identify the specific CPUs and fans.
A rule of thumb is that the BIOS will usually list the items in the same
order as lm_sensors does, so if your BIOS displays the labels for fans
and/or temperature you can use that order as a hint.
Then for temperatures, you can try to run a CPU-consumming process,
e.g. "md5sum /dev/zero", and see which temperature rises faster: this
will be the temperature of the CPU running the process.
For fans it's even easier, just unplug or block one fan and see which
reading goes to 0. It's safer to temporarily power the fan from a molex
connector using a converter instead, unless you're really quick.
Anyway, it is _very_ likely that the order is just what you would
expect:
temp1: motherboard temperature
temp2: first CPU temperature
temp3: second CPU temperature
fan1: first CPU fan
fan2: second CPU fan
I have a similar motherboard (Supermicro DLE370) with an LM87 and
that's how it is wired.
--
Jean Delvare
^ permalink raw reply [flat|nested] 5+ messages in thread