Ok, the problem is that because the ioctls are no longer i386-centric,
the layout of the tables has changed.
What used to be scancode e05e is now scancode 15e, basically all
scancodes beginning with e0 are now offset by just 100 hex.
getkeycodes/setkeycodes translates e05e to de, while the table needs 15e.
> ~# showkey
> kb mode was XLATE
>
> press any key (program terminates 10s after last keypress)...
> keycode 116 press
> keycode 116 release
>
> ~# getkeycodes
> Plain scancodes xx (hex) versus keycodes (dec)
> 0 is an error; for 1-88 (0x01-0x58) scancode equals keycode
>
> 0x58: 88 54 28 27 0 43 0 0
> 0x60: 85 86 90 91 92 93 14 94
> 0x68: 95 79 0 75 71 121 0 123
> 0x70: 82 83 80 76 77 72 1 69
> 0x78: 87 78 81 74 55 73 70 99
>
> Escaped scancodes e0 xx (hex)
>
> e0 00: 252 0 0 65 99 0 0 0
> e0 08: 0 0 0 0 0 0 0 0
> e0 10: 0 0 0 0 0 0 0 0
> e0 18: 0 0 0 0 0 0 0 0
> e0 20: 0 0 0 0 0 0 0 0
> e0 28: 0 0 251 0 0 0 0 0
> e0 30: 0 0 0 0 0 0 0 0
> e0 38: 0 0 0 0 0 0 0 0
> e0 40: 0 0 0 0 0 0 0 0
> e0 48: 0 0 0 0 0 0 0 0
> e0 50: 0 0 0 0 0 0 0 0
> e0 58: 0 0 0 0 0 0 0 0
> ^^^ <-- e05e
> e0 60: 252 253 0 0 0 0 0 0
> e0 68: 0 0 0 0 0 0 0 0
> e0 70: 254 0 0 0 0 0 0 0
> e0 78: 0 0 0 0 0 0 0 255
Ignore getkeycodes output, except for the 0x58-0x7f the output is not
correct anymore. (e000-e07f lines show entries for scancodes 0x80-0xff,
as they always did, though).
> ~# setkeycodes e05e 89
Use setkeycodes 15e 89
> ~# getkeycodes
> Plain scancodes xx (hex) versus keycodes (dec)
> 0 is an error; for 1-88 (0x01-0x58) scancode equals keycode
>
> 0x58: 88 54 28 27 0 43 0 0
> 0x60: 85 86 90 91 92 93 14 94
> 0x68: 95 79 0 75 71 121 0 123
> 0x70: 82 83 80 76 77 72 1 69
> 0x78: 87 78 81 74 55 73 70 99
>
> Escaped scancodes e0 xx (hex)
>
> e0 00: 252 0 0 65 99 0 0 0
> e0 08: 0 0 0 0 0 0 0 0
> e0 10: 0 0 0 0 0 0 0 0
> e0 18: 0 0 0 0 0 0 0 0
> e0 20: 0 0 0 0 0 0 0 0
> e0 28: 0 0 251 0 0 0 0 0
> e0 30: 0 0 0 0 0 0 0 0
> e0 38: 0 0 0 0 0 0 0 0
> e0 40: 0 0 0 0 0 0 0 0
> e0 48: 0 0 0 0 0 0 0 0
> e0 50: 0 0 0 0 0 0 0 0
> e0 58: 0 0 0 0 0 0 89 0
> ^^^^ <-- e05e
> e0 60: 252 253 0 0 0 0 0 0
> e0 68: 0 0 0 0 0 0 0 0
> e0 70: 254 0 0 0 0 0 0 0
> e0 78: 0 0 0 0 0 0 0 255
>
> ~# showkey
> kb mode was XLATE
>
> press any key (program terminates 10s after last keypress)...
> keycode 116 press
> keycode 116 release
>
> ----------------------------------------------------------
> The same thing happens with every key.
No, keycodes without e0 should be fine.
> I've tried every config option
> that seems even remotely related to keyboards and nothing changes. It's
> detected as:
>
> input: AT Set 2 keyboard on isa0060/serio0
> serio: i8042 KBD port at 0x60,0x64 irq 1
>
> It's a PS2 keyboard attached via PS2/AT adapter. The actual changes I'm
> trying to make are the same ones I've been using through all of 2.4 and
> 2.5
-- Vojtech Pavlik SuSE Labs - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/