From: Karsten.Petersen@megware.com (Karsten Petersen)
To: lm-sensors@vger.kernel.org
Subject: [lm-sensors] Patch: Kernel 2.6 and multiple buses
Date: Fri, 09 Sep 2005 11:53:32 +0000 [thread overview]
Message-ID: <43215B5F.7050100@megware.com> (raw)
[CC on answers please, I am not on the list.]
Hi,
during the last couple of hours I traced down some lm_sensors problems
that occured with a Quad Opteron on Tyan 4882 running a kernel 2.6 distro.
My main problem is easily describable as: Although there was a good
looking sensors.conf, its options were not used with all chips. Those
chips with chip-lines like "bla-*" were ok, but those with lines like
"bla-i2c-3-*" just showed default labels.
One first problem was, that the "bus" line in sensors.conf needs to have
another value than when running kernel 2.4 on the same machine.
With kernel 2.4 its like this:
bus "i2c-4" "SMBus 8111 adapter (CPU3)" "Non-I2C SMBus adapter"
But with kernel 2.6, it must be like this:
bus "i2c-4" "SMBus 8111 adapter (CPU3)" "Unavailable from sysfs"
It seems to me, that the third argument is redundant these days, so it
could probably be dropped or made optional. It took me some time to
find out about this problem, because the comparison in lib/data.c:233 is
not helpful at all. :-/
But this did not solve my problem, more sensor chips showed usefull
labels but not all. After a lot of printf debugging it became clear,
that the sensors_substitute_chip function in lib/data.c assigns wrong
bus numbers to the configured chips. This is because the busses in the
sensors_config_busses array are _not_ sorted, so
sensors_config_busses[j] does not need to be the bus with id "j". But
the function thinks, that this is the case. It probably was with kernel
2.4, but not with the kernel 2.6.9 (+lot of patches) I am running.
The attached patch corrects this behavior, it uses the bus id from the
entry sensors_config_busses[j] instead of "j".
With the patch attached to lm_sensors-2.9.1 and the changes to
sensors.conf noted above, I can now see correctly labeled output from
all sensors.
Best wishes
Karsten
--
HPC System Engineer
Tel.: +49 3722 528 43
Fax: +49 3722 528 15
E-Mail: karsten.petersen@megware.com
MEGWARE Computer GmbH
Vertrieb und Service
Nordstra?e 19
09247 Chemnitz/R?hrsdorf
Germany
http://www.megware.com
-------------- next part --------------
diff -urNP lm_sensors-2.9.1-vanilla/lib/data.c lm_sensors-2.9.1/lib/data.c
--- lm_sensors-2.9.1-vanilla/lib/data.c 2004-05-16 16:25:20.000000000 +0200
+++ lm_sensors-2.9.1/lib/data.c 2005-09-09 11:19:49.388603409 +0200
@@ -230,8 +230,10 @@
if (!strcmp(sensors_config_busses[i].adapter,
sensors_proc_bus[j].adapter) &&
!strcmp(sensors_config_busses[i].algorithm,
- sensors_proc_bus[j].algorithm))
- break;
+ sensors_proc_bus[j].algorithm)) {
+ name->bus = sensors_proc_bus[j].number;
+ return 0;
+ }
}
/* Well, if we did not find anything, j = sensors_proc_bus_count; so if
next reply other threads:[~2005-09-09 11:53 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-09 11:53 Karsten Petersen [this message]
2005-09-09 16:54 ` [lm-sensors] Patch: Kernel 2.6 and multiple buses Jean Delvare
2005-09-10 22:46 ` Jean Delvare
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43215B5F.7050100@megware.com \
--to=karsten.petersen@megware.com \
--cc=lm-sensors@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.