Public bug reported:

Binary package hint: udev

Keyboard scancode remapping isn't working because the udev packages
shipped in Natty were build against a new(ish) kernel which changed
IOCTL numbers and semantics without changing the name.

This was adjusted in commit:

commit ab4e0192196b8d4e43a3945742d4996da934a86f
Author: Dmitry Torokhov <dmitry.torok...@gmail.com>
Date:   Tue Dec 14 23:53:21 2010 -0800

    Input: define separate EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2
    
    The desire to keep old names for the EVIOCGKEYCODE/EVIOCSKEYCODE while
    extending them to support large scancodes was a mistake. While we tried
    to keep ABI intact (and we succeeded in doing that, programs compiled
    on older kernels will work on newer ones) there is still a problem with
    recompiling existing software with newer kernel headers.
    
    New kernel headers will supply updated ioctl numbers and kernel will
    expect that userspace will use struct input_keymap_entry to set and
    retrieve keymap data. But since the names of ioctls are still the same
    userspace will happily compile even if not adjusted to make use of the
    new structure and will start miraculously fail in the field.
    
    To avoid this issue let's revert EVIOCGKEYCODE/EVIOCSKEYCODE definitions
    and add EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2 so that userspace can explicitly
    select the style of ioctls it wants to employ.
    
    Reviewed-by: Henrik Rydberg <rydb...@euromail.se>
    Acked-by: Jarod Wilson <ja...@redhat.com>
    Acked-by: Mauro Carvalho Chehab <mche...@redhat.com>
    Signed-off-by: Dmitry Torokhov <d...@mail.ru>


The build needs to be made against kernel headers newer than this.

Git describe in the fix suggests that it comes AFTER v2.6.37-rc1-21

The breakage was probably introduced in:


commit 8613e4c2872a87cc309a42de2c7091744dc54d0e
Author: Mauro Carvalho Chehab <mche...@redhat.com>
Date:   Thu Sep 9 21:54:22 2010 -0700

    Input: add support for large scancodes
    
    Several devices use a high number of bits for scancodes. One important
    group is the Remote Controllers. Some new protocols like RC-6 define a
    scancode space of 64 bits.
    
    The current EVIO[CS]GKEYCODE ioctls allow replace the scancode/keycode
    translation tables, but it is limited to up to 32 bits for scancode.
    
    Also, if userspace wants to clean the existing table, replacing it by
    a new one, it needs to run a loop calling the ioctls over the entire
    sparse scancode space.
    
    To solve those problems, this patch extends the ioctls to allow drivers
    handle scancodes up to 32 bytes long (the length could be extended in
    the future should such need arise) and allow userspace to query and set
    scancode to keycode mappings not only by scancode but also by index.
    
    Compatibility code were also added to handle the old format of
    EVIO[CS]GKEYCODE ioctls.

    
    Folded fixes by:
    - Dan Carpenter: locking fixes for the original implementation
    - Jarod Wilson: fix crash when setting keycode and wiring up get/set
                    handlers in original implementation.
    - Dmitry Torokhov: rework to consolidate old and new scancode handling,
                       provide options to act either by index or scancode.
    
    Signed-off-by: Mauro Carvalho Chehab <mche...@redhat.com>
    Signed-off-by: Dan Carpenter <erro...@gmail.com>
    Signed-off-by: Jarod Wilson <ja...@redhat.com>
    Signed-off-by: Dmitry Torokhov <d...@mail.ru>

Which came in AFTER v2.6.36-rc1

A quick bit of scripting with git suggests we need at least
Ubuntu-2.6.37-11.25 to build against.

** Affects: udev (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/708962

Title:
  [NATTY]: Rebuild against newer kernel required due to IOCTL breakage

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to