lirc-modules-source breaks in-kernel lirc support

Bug #778026 reported by Jarod Wilson
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
lirc (Ubuntu)
Fix Released
Critical
Unassigned
Natty
Fix Released
Critical
Mario Limonciello
Oneiric
Fix Released
Critical
Unassigned

Bug Description

Binary package hint: lirc-modules-source

** Impact **
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).

** Addressing in future versions **
For oneiric and later the lirc-modules-source package has been dropped

** Reproducing the bug **
1) Install lirc-modules-source
2) modprobe ir-lirc-codec
3) Observe errors in dmesg

** Regression Potential **
Little, although the DKMS package builds, it will not not interact properly with the kernel's built-in LIRC support. It's not possible to use right now, and this is just to prevent users from trying.

MarcRandolph (mrand)
Changed in lirc (Ubuntu):
importance: Undecided → Critical
milestone: none → natty-updates
status: New → Triaged
Revision history for this message
Mario Limonciello (superm1) wrote :

lirc-modules-source shouldn't be installed by default, but maybe we should drop it from the archive in the future considering the modules in 2.6.38+.

 but yes it should be fixed regardless for 11.04.

Changed in lirc (Ubuntu Natty):
milestone: none → natty-updates
Changed in lirc (Ubuntu Oneiric):
milestone: natty-updates → oneiric-alpha-1
Changed in lirc (Ubuntu Natty):
importance: Undecided → Critical
status: New → Triaged
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lirc - 0.9.0-0ubuntu1

---------------
lirc (0.9.0-0ubuntu1) oneiric; urgency=low

  * New upstream version (0.9.0)
  * Drop lirc-modules-source (LP: #778026)
  * Change to v3 package (quilt)
  * debian/control:
    - Build-deps on newer debhelper
    - bump standards version.
  * debian/compat:
    - Bump to 7
  * Drop Patches:
    - debian/patches/13-warning-cleanup
    - debian/patches/define_current_cpu_data.patch
    - debian/patches/lirc-in-kernel-ioctls.patch
    - debian/patches/updated-driver-names.patch
  * Move extra remotes to our remotes DB.
  * debian/rules:
    - Remove references to quilt (as it's source package that does it now)
    - remove deprecated dh_clean -k
 -- Mario Limonciello <email address hidden> Thu, 05 May 2011 14:45:59 -0500

Changed in lirc (Ubuntu Oneiric):
status: Triaged → Fix Released
Revision history for this message
Mario Limonciello (superm1) wrote :
description: updated
Changed in lirc (Ubuntu Natty):
status: Triaged → New
assignee: nobody → Mario Limonciello (superm1)
Revision history for this message
Martin Pitt (pitti) wrote : Please test proposed package

Accepted lirc into natty-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in lirc (Ubuntu Natty):
status: New → Fix Committed
tags: added: verification-needed
Revision history for this message
Thomas (t.c) wrote :

why not leave the dkms modules package for kernel < 2.6.36 and add to the dkms.conf a

BUILD_EXCLUSIVE_KERNEL=

So we can also use old kernels with this package :-/

Revision history for this message
dino99 (9d9) wrote :
Changed in lirc (Ubuntu Natty):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.