Fixing the lm-sensors/i2c mess
OK. I've been poring over the lm-sensors/i2c mess. (Which is really
the fault of upstream for not changing the i2c module names when they
changed the module interface, but not much can be done about that now.)
I'm sending this to David Maze as the maintainer of most of this; and to
Herbert Xu and debian-devel because the best solution seems to involve
large patches to the kernel packages, and maybe the removal of some
The key points are this:
* i2c underwent a major incompatible change. The new version is
required by lm-sensors 2.8.x. The old version is present in the
upstream kernel tree 2.4 i2c modules. The new version is in the 2.6
kernel tree, and in a separate i2c upstream package for 2.4 versions,
and in a patch to the 2.4.23 and 2.4.22 kernel tree.
Lots of people have been getting crashes because the old i2c modules
will override the new modules when both are present, and people's kernel
packages often have the old modules installed.
* Meanwhile, lm-sensors underwent a major incompatible change, to
libsensors2, which many packages in unstable have already updated to
requiring, so new lm-sensors is now holding up other packages. :-/
* Also, lm-sensors isn't kernel-2.6-ready yet, although upstream appears
to be close to ready.
It looks to me like this is what needs to be done to get this stuff in
good shape for sarge; I'm not sure in what order.
* Herbert Xu: Apply the upstream patches in
to the kernel-source-2.4.22, and kernel-source-2.4.23 packages.
Alternately (and worse) disable the i2c modules from the upstream kernel
tree (and all the modules depending on them) by default, allowing the
modules from i2c-source to install cleanly without running into kernel
versions of the i2c modules.
* Rebuild ALL stock kernels based on those versions. :-/
* David Z. Maze: In its description, document i2c-source as being
unneeded and unwanted for 2.6 kernels. (2.6 kernels already contain the
'new ABI' versions of the i2c modules, and for that matter contain the
* David Z. Maze: Document (in its description) that i2c-source is
incompatible with kernel-tree i2c modules for stock 2.4 kernels, and
note that they *must* be removed for lm-sensors to run. Document that
it is *unneeded* for patched kernel versions.
Alternately, and better, try to get rid of all the kernel 2.4.0...2.4.21
versions, and drop i2c-source. But this seems unlikely to happen. :-/
* David Z. Maze: Document in the lm-sensors-source description which
kernels need i2c-source modules and which don't. :-/
* David Z. Maze: Upload new lm-sensors from upstream with 2.6-compatible
userland tools. Make sure the userland tools work for both 2.6 and 2.4
kernels. Make sure the userland tools can be installed without modules
for 2.6 kernels.
* David Z. Maze: Document (in the lm-sensors-source description at
least) that the lm-sensors modules are needed for all 2.4 kernels
(whether i2c-source is needed or not) and for no 2.6 kernels. (I
believe this is correct. :-P )
* David Z. Maze: Document somewhere which kernels don't work at *all*
for lm-sensors (such as 2.2 and 2.0 kernels, and probably some 2.4
It looks to me like if *all* of this is done they'll be in fairly good
shape. If the kernel patches are not applied, the i2c-source warning
about kernel modules must be very loud, and similary the
lm-sensors-source warning. :-(
Please don't email me personally about this unless you have questions
about the meaning of what I said. I've just been trying to decipher the
issues, and I hope I've done so.
I've only bothered to do so because this has become an impediment to
sarge releasing, and it seems to require some major work which probably
deserves thought as soon as possible. If you have alternate solutions,
or hate mine, please discuss it on debian-devel.