So the “unfuck my keyboard” project is going well. We now have a way to map scancodes to keycodes even for the vendors that choose non-standard scancodes that don't get input events.
The thinkpad-acpi and sony-laptop kernel drivers now also support the setkeycode ioctl and report key presses over input. This means we can map the acpi events to keys, even when vendors do crazy things and move the decal on the button between models and ranges for no apparent reason.
ALL LINUX USERS:
So now I need your help.
Do you get something similar to this in dmesg?:
atkbd.c: Unknown key pressed (translated set 2, code 0×97 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e017 ' to make it known.
Try using all the fn-buttons and the special multimedia buttons, you might find you could help make this work.
I need to know what button does what on your laptop. You can already see I've fixed Bastiens laptop by looking at this file. This gives you an idea how simple it is.
I also need to know what mapping you have. See this file and send me a patch to make it “just work” for you in the future.
You'll need to be using a very new HAL and hal-info to make this work right now. If you want the sony and thinkpad bits to work you'll also need kernel modules from git. Actually getting it working now is unimportant – getting the data as soon as possible makes sure it should work for as many people as possible for Fedora 8, or the next version of Ubuntu or Suse.
So please, visit the quirk site and help me try to fix broken keys by sending patches. I need your help.