Documentation-based solution for lm-sensors mess, pass one
Christoph Hellwig <hch@lst.de> feels (see
http://lists.debian.org/debian-devel/2003/debian-devel-200312/msg02395.html)
that the only reasonable thing to do is to document the outright
incompatibility of lm-sensors with all i2c modules from the 2.4 kernel
tree. And he seems to know what he's talking about. :-P Christoph,
please correct me if I have any facts wrong.
(For instance, is there going to be a compatible i2c modules in the 2.4
kernel tree for 2.4.24?... it didn't *look* like it, but if so, a lot of
this needs to be made even more complicated, and I'll be happy to do so.)
Accordingly, the following descriptions should be changed as follows.
Package: lm-sensors
Architecture: any
Section: utils
Depends: makedev (>= 2.3.1-45) | devfsd, dmidecode, ${misc:Depends},
${shlibs:Depends}, ${perl:Depends}
Recommends: lm-sensors-mod-2.8
Suggests: lm-sensors-source, i2c-source, sensord
Description: Utilities to read temperature/voltage/fan sensors
Lm-sensors is a hardware health monitoring package for Linux. It
allows you
to access information from temperature, voltage, and fan speed sensors. It
works with most newer systems.
.
This package contains programs to help you set up and read data from
lm-sensors.
.
You will need lm-sensors kernel modules and recent i2c kernel modules
to use this package. There are none for 2.2 and earlier kernels. For 2.4
kernels, this requires installing the lm-sensors-source package and
i2c-source packages, and possibly the kernel-package package, and using
those to build lm-sensors and i2c modules. For 2.6 kernels, the
necessary modules are included in the Linux kernel sources, so it is
sufficient to make sure you have them enabled in your kernel
configuration.
.
lm-sensors is INCOMPATIBLE with the i2c modules in the 2.4.9 through
2.4.23 kernel sources. See /usr/share/doc/lm-sensors/README.Debian.
Package: lm-sensors-source
Architecture: all
Depends: debhelper (>= 4.1.16), devscripts (>= 2.5.20), bison, flex,
${misc:Depends}
Section: misc
Suggests: lm-sensors (>= 2.3.2), i2c-source (>= 2.6.0)
Description: Kernel drivers to read temperature/voltage/fan sensors (source)
Lm-sensors is a hardware health monitoring package for Linux. It
allows you
to access information from temperature, voltage, and fan speed sensors. It
works with most newer systems.
.
This package contains the source for kernel modules needed to access
the data under Linux 2.4 kernels. The 2.4 kernel sources must be
installed to compile these modules. (The necessary modules are already
present in the kernel sources for Linux 2.6 kernels.)
.
lm-sensors requires a separate set of drivers to access the I2C bus. If
you have a 2.4 kernel, you must also install the i2c-source package and
build i2c modules from that.
.
lm-sensors is INCOMPATIBLE with the i2c modules in the 2.4.9 through
2.4.23 kernel sources. See /usr/share/doc/lm-sensors/README.Debian (in
the lm-sensors package).
Package: sensord
Architecture: any
Section: utils
Depends: lm-sensors, ${shlibs:Depends}
Replaces: lm-sensors (<< 2.5.4-8)
Description: Hardware sensor information logging daemon
Lm-sensors is a hardware health monitoring package for Linux. It
allows you
to access information from temperature, voltage, and fan speed sensors. It
works with most newer systems.
.
This package contains a daemon that logs hardware health status to the
system log with optional warnings on potential system problems.
.
You will need lm-sensors and recent i2c kernel modules to use this
package. These are available in the lm-sensors-source and i2c-source
packages for 2.4 kernels, or in the kernel source for 2.6 kernels.
.
lm-sensors is INCOMPATIBLE with the i2c modules in the 2.4.9 through
2.4.23 kernel sources. See /usr/share/doc/lm-sensors/README.Debian (in
the lm-sensors package).
Next, README.Debian needs to be rewritten:
README.Debian for lm-sensors
----------------------------
lm-semsors requires kernel support to access sensor devices. There are
two parts to these modules: generic drivers to access devices on the i2c
bus, and drivers to support specific sensor devices.
Both sets of modules are distributed with the mainline Linux kernel for
2.6 kernels.
For 2.4 kernels, it's more complicated. The i2c modules for lm-sensors
must be built from the separate i2c-source package. You can no longer
use the i2c support present in the kernel tree from kernels 2.4.9
through 2.4.23. Those modules are INCOMPATIBLE with current lm-sensors.
Unfortunately, a number of drivers in the 2.4 kernel depend on the
kernel versions of the i2c modules. If you are using any of those
drivers, you CANNOT use lm-sensors:
(insert driver list here)
If you are not using any drivers which depend on the old i2c modules,
you must still make sure that all the old i2c modules are removed in
order to use lm-sensors; otherwise you will get kernel oopses,
segfaults, and other crashes. If you configure your own kernel, make
sure to disable I2C support (it must not be built-in or built as
modules). If you are using a stock kernel, you will have to remove all
the files from this directory:
/lib/modules/[kernel version]/kernel/drivers/i2c
The lm-sensors modules for 2.4 kernels are not distributed with the
Linux kernel either; source is distributed separately in the
lm-sensors-source package. I recommend building modules using
lm-sensors-source in combination with the Debian kernel-package package;
instructions for building the modules are in
/usr/share/doc/lm-sensors-source/README.Debian in the lm-sensors-source
package.
Once you have the modules built (on 2.6 or 2.4), you need to probe for
the sensors available on your system. You can use the sensors-detect
program to do this.
Note that there is a critical problem with the firmware on IBM
ThinkPad laptops, such that the lm-sensors modules can cause permanent
hardware damage. You may not want to use lm-sensors on these machines
until this problem is solved.
-- David Z. Maze <dmaze@debian.org>
Additional information by Nathanael C. Nerode <neroden@twcny.rr.com>
That should do it for the documentation, except that a list of the
conflicting drivers needs to be made available.
Oh, by the way: I disclaim copyright in all of these changes; if that's
not legally possible then I dedicate them to the public domain; and if
that's not legally possible then I freely license them, irrevocably and
permanently, to be used in any way in which they could be used if they
were in the public domain. Just to make suer we're legally clear. :-)
Reply to: