Thanks for your answer. I have tested 2.6.29-1 kernel: it's a better but there are still 2 issues: First, there are 2 keys with an input event >255 (0x0ff): -"hotkey ATKD 0000005c 00000000" mapped to BTN_EXTRA (0x179). I think it should be mapped to KEY_SCREENLOCK instead as this is what this button is supposed to do. -"hotkey ATKD 0000008a 00000000" mapped to KEY_TV (0x114). I don't know what we could use instead. The second problem is that for certain buttons, events are reported by 2 input device (so event triggered 2 times). It affects keys mapped to: KEY_PLAYPAUSE KEY_NEXTSONG KEY_PREVIOUSSONG KEY_STOPCD KEY_VOLUMEDOWN KEY_VOLUMEUP KEY_MIN_INTERESTING The two input devices that report events are these ones (from "hal-find-by-capability --capability input | xargs -n1 lshal -u"): udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input_3' info.addons.singleton = {'hald-addon-input'} (string list) info.callouts.add = {'debian-setup-keyboard'} (string list) info.capabilities = {'input', 'input.keys', 'button'} (string list) info.category = 'input' (string) info.parent = '/org/freedesktop/Hal/devices/computer' (string) info.product = 'Asus Laptop extra buttons' (string) info.subsystem = 'input' (string) info.udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input_3' (string) input.device = '/dev/input/event8' (string) input.product = 'Asus Laptop extra buttons' (string) input.x11_driver = 'evdev' (string) input.xkb.layout = 'fr' (string) input.xkb.model = 'pc105' (string) input.xkb.rules = 'evdev' (string) input.xkb.variant = 'oss' (string) linux.device_file = '/dev/input/event8' (string) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'input' (string) linux.sysfs_path = '/sys/devices/virtual/input/input8/event8' (string) udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input' info.addons.singleton = {'hald-addon-input'} (string list) info.callouts.add = {'debian-setup-keyboard'} (string list) info.capabilities = {'input', 'input.keyboard', 'input.keypad', 'input.keys', 'button'} (string list) info.category = 'input' (string) info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port' (string) info.product = 'AT Translated Set 2 keyboard' (string) info.subsystem = 'input' (string) info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input' (string) input.device = '/dev/input/event4' (string) input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port' (string) input.product = 'AT Translated Set 2 keyboard' (string) input.x11_driver = 'evdev' (string) input.xkb.layout = 'fr' (string) input.xkb.model = 'pc105' (string) input.xkb.rules = 'evdev' (string) input.xkb.variant = 'oss' (string) linux.device_file = '/dev/input/event4' (string) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'input' (string) linux.sysfs_path = '/sys/devices/platform/i8042/serio0/input/input4/event4' (string) So it seems like /dev/input/event4 should not report them? I can provide more infos if needed, or make any test. I can understand if it's not possible to make the backport. But I would really like to have it working for karmic. Anyway, is there some workaround for 2.6.28? Thanks