Comment 0 for bug 778026

Revision history for this message
Jarod Wilson (jarod-wilsonet) wrote :

Binary package hint: lirc-modules-source

Ubuntu 11.04 is shipping with a 2.6.38 kernel, which has numerous lirc device drivers from the staging tree enabled, as well as rc-core infrastructure and several new rc-core device drivers. The rc-core drivers and the in-kernel lirc device drivers rely on the lirc device interface driver (lirc_dev.ko) provided by the kernel to provide the lirc character device interface needed by lircd.

Also shipping is an lirc-modules-source package, based on lirc 0.8.7-era out-of-tree lirc device driver code. When this package is installed and dkms builds modules, they override the in-kernel ones, most troubling being lirc_dev.ko:

# find /lib/modules/$(uname -r)/ -name lirc_dev.ko
/lib/modules/2.6.38-8-generic/kernel/drivers/media/rc/lirc_dev.ko
/lib/modules/2.6.38-8-generic/updates/dkms/lirc_dev.ko

Now when any of the in-kernel lirc drivers or an rc-core driver with support for the ir-lirc-codec bridge driver tries to load, you get something like the following:

# modprobe ir-lirc-codec
FATAL: Error inserting ir_lirc_codec (/lib/modules/2.6.38-8-generic/kernel/drivers/media/rc/ir-lirc-codec.ko): Unknown symbol in module, or unknown parameter (see dmesg)

# dmesg | grep ir_lirc_codec
[ 13.439407] ir_lirc_codec: Unknown symbol lirc_dev_fop_poll (err 0)
[ 13.439557] ir_lirc_codec: Unknown symbol lirc_dev_fop_open (err 0)
[ 13.439622] ir_lirc_codec: disagrees about version of symbol lirc_get_pdata
[ 13.439623] ir_lirc_codec: Unknown symbol lirc_get_pdata (err -22)
[ 13.439706] ir_lirc_codec: Unknown symbol lirc_dev_fop_close (err 0)
[ 13.439770] ir_lirc_codec: Unknown symbol lirc_dev_fop_read (err 0)
[ 13.439824] ir_lirc_codec: disagrees about version of symbol lirc_register_driver
[ 13.439826] ir_lirc_codec: Unknown symbol lirc_register_driver (err -22)
[ 13.439960] ir_lirc_codec: Unknown symbol lirc_dev_fop_ioctl (err 0)

This completely breaks in-kernel drivers' lirc support.

Please either stop shipping lirc-modules-source, or properly update it to build against the in-kernel lirc bits (and preferably, strip out the entirely redundant drivers).