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