OK, here is the dmesg output - I've cut out things not releating to the keyboard. This shows a boot followed by presses of - 'Henkaku/Zenkaku', '???', 'space', '???', and 'Hiragana/Romaji':
input: PC Speaker
i8042.c: 20 -> i8042 (command) [0]
i8042.c: 47 <- i8042 (return) [0]
i8042.c: 60 -> i8042 (command) [0]
i8042.c: 16 -> i8042 (parameter) [0]
i8042.c: d3 -> i8042 (command) [0]
i8042.c: 5a -> i8042 (parameter) [0]
i8042.c: a5 <- i8042 (return) [0]
i8042.c: a9 -> i8042 (command) [1]
i8042.c: 00 <- i8042 (return) [1]
i8042.c: a7 -> i8042 (command) [1]
i8042.c: 20 -> i8042 (command) [1]
i8042.c: 36 <- i8042 (return) [1]
i8042.c: a8 -> i8042 (command) [1]
i8042.c: 20 -> i8042 (command) [2]
i8042.c: 16 <- i8042 (return) [2]
i8042.c: 60 -> i8042 (command) [2]
i8042.c: 34 -> i8042 (parameter) [2]
i8042.c: 60 -> i8042 (command) [2]
i8042.c: 14 -> i8042 (parameter) [2]
i8042.c: 60 -> i8042 (command) [2]
i8042.c: 16 -> i8042 (parameter) [2]
i8042.c: d4 -> i8042 (command) [2]
i8042.c: ed -> i8042 (parameter) [2]
i8042.c: 60 -> i8042 (command) [56]
i8042.c: 14 -> i8042 (parameter) [56]
i8042.c: fe <- i8042 (interrupt, aux, 12, timeout) [57]
serio: i8042 AUX port at 0x60,0x64 irq 12
i8042.c: 60 -> i8042 (command) [57]
i8042.c: 04 -> i8042 (parameter) [57]
i8042.c: 60 -> i8042 (command) [57]
i8042.c: 05 -> i8042 (parameter) [57]
i8042.c: ed -> i8042 (kbd-data) [58]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [61]
i8042.c: 00 -> i8042 (kbd-data) [61]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [63]
i8042.c: f2 -> i8042 (kbd-data) [63]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [66]
i8042.c: ab <- i8042 (interrupt, kbd, 1) [67]
i8042.c: 90 <- i8042 (interrupt, kbd, 1) [68]
i8042.c: f8 -> i8042 (kbd-data) [68]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [71]
i8042.c: f4 -> i8042 (kbd-data) [71]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [75]
i8042.c: ea -> i8042 (kbd-data) [75]
i8042.c: fe <- i8042 (interrupt, kbd, 1) [78]
i8042.c: f0 -> i8042 (kbd-data) [78]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [81]
i8042.c: 02 -> i8042 (kbd-data) [81]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [83]
i8042.c: f0 -> i8042 (kbd-data) [83]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [86]
i8042.c: 00 -> i8042 (kbd-data) [86]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [89]
i8042.c: 02 <- i8042 (interrupt, kbd, 1) [90]
input: AT Set 2 keyboard on isa0060/serio0
serio: i8042 KBD port at 0x60,0x64 irq 1
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 8192 bind 8192)
ip_conntrack version 2.1 (1024 buckets, 8192 max) - 292 bytes per conntrack
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 224k freed
i8042.c: 00 <- i8042 (interrupt, kbd, 1) [138631]
atkbd.c: Unknown key (set 2, scancode 0x0, on isa0060/serio0) pressed.
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [199889]
i8042.c: f0 <- i8042 (interrupt, kbd, 1) [199972]
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [199974]
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [200469]
i8042.c: f0 <- i8042 (interrupt, kbd, 1) [200554]
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [200555]
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [200922]
i8042.c: f0 <- i8042 (interrupt, kbd, 1) [201024]
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [201025]
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [201415]
i8042.c: f0 <- i8042 (interrupt, kbd, 1) [201516]
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [201518]
> 2) The same with i8042_direct and atkbd_set=3 on the kernel command line.
>
> It may make the extra keyboards work and will definitely explain what's
> happening in greater detail.
Right, this one is interesting - same keypresses as above, and this time the keys work, (excellent :-) ), Henkaku/Zenkaku is mapped to backtick, (as expected, as I am using a Russian keymap), and the other extra keys are not mapped to anything, (again, as to be expected).
input: PC Speaker
i8042.c: 20 -> i8042 (command) [0]
i8042.c: 47 <- i8042 (return) [0]
i8042.c: 60 -> i8042 (command) [0]
i8042.c: 16 -> i8042 (parameter) [0]
i8042.c: d3 -> i8042 (command) [1]
i8042.c: 5a -> i8042 (parameter) [1]
i8042.c: a5 <- i8042 (return) [1]
i8042.c: a9 -> i8042 (command) [1]
i8042.c: 00 <- i8042 (return) [1]
i8042.c: a7 -> i8042 (command) [1]
i8042.c: 20 -> i8042 (command) [1]
i8042.c: 36 <- i8042 (return) [1]
i8042.c: a8 -> i8042 (command) [2]
i8042.c: 20 -> i8042 (command) [2]
i8042.c: 16 <- i8042 (return) [2]
i8042.c: 60 -> i8042 (command) [2]
i8042.c: 34 -> i8042 (parameter) [2]
i8042.c: 60 -> i8042 (command) [2]
i8042.c: 14 -> i8042 (parameter) [2]
i8042.c: 60 -> i8042 (command) [3]
i8042.c: 16 -> i8042 (parameter) [3]
i8042.c: d4 -> i8042 (command) [3]
i8042.c: ed -> i8042 (parameter) [3]
i8042.c: 60 -> i8042 (command) [56]
i8042.c: 14 -> i8042 (parameter) [56]
i8042.c: fe <- i8042 (interrupt, aux, 12, timeout) [57]
serio: i8042 AUX port at 0x60,0x64 irq 12
i8042.c: 60 -> i8042 (command) [58]
i8042.c: 04 -> i8042 (parameter) [58]
i8042.c: 60 -> i8042 (command) [58]
i8042.c: 05 -> i8042 (parameter) [58]
i8042.c: ed -> i8042 (kbd-data) [58]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [61]
i8042.c: 00 -> i8042 (kbd-data) [61]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [63]
i8042.c: f2 -> i8042 (kbd-data) [63]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [66]
i8042.c: ab <- i8042 (interrupt, kbd, 1) [67]
i8042.c: 90 <- i8042 (interrupt, kbd, 1) [68]
i8042.c: f8 -> i8042 (kbd-data) [68]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [71]
i8042.c: f4 -> i8042 (kbd-data) [71]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [75]
i8042.c: ea -> i8042 (kbd-data) [75]
i8042.c: fe <- i8042 (interrupt, kbd, 1) [78]
i8042.c: f0 -> i8042 (kbd-data) [78]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [81]
i8042.c: 03 -> i8042 (kbd-data) [81]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [83]
i8042.c: f0 -> i8042 (kbd-data) [83]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [86]
i8042.c: 00 -> i8042 (kbd-data) [86]
i8042.c: fa <- i8042 (interrupt, kbd, 1) [89]
i8042.c: 03 <- i8042 (interrupt, kbd, 1) [90]
input: AT Set 3 keyboard on isa0060/serio0
serio: i8042 KBD port at 0x60,0x64 irq 1
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 8192 bind 8192)
ip_conntrack version 2.1 (1024 buckets, 8192 max) - 292 bytes per conntrack
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 224k freed
i8042.c: 0e <- i8042 (interrupt, kbd, 1) [37041]
i8042.c: f0 <- i8042 (interrupt, kbd, 1) [37142]
i8042.c: 0e <- i8042 (interrupt, kbd, 1) [37143]
i8042.c: 85 <- i8042 (interrupt, kbd, 1) [41289]
atkbd.c: Unknown key (set 3, scancode 0x85, on isa0060/serio0) pressed.
i8042.c: f0 <- i8042 (interrupt, kbd, 1) [41382]
i8042.c: 85 <- i8042 (interrupt, kbd, 1) [41384]
atkbd.c: Unknown key (set 3, scancode 0x85, on isa0060/serio0) released.
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [42385]
i8042.c: f0 <- i8042 (interrupt, kbd, 1) [42478]
i8042.c: 29 <- i8042 (interrupt, kbd, 1) [42480]
i8042.c: 86 <- i8042 (interrupt, kbd, 1) [43519]
atkbd.c: Unknown key (set 3, scancode 0x86, on isa0060/serio0) pressed.
i8042.c: f0 <- i8042 (interrupt, kbd, 1) [43596]
i8042.c: 86 <- i8042 (interrupt, kbd, 1) [43598]
atkbd.c: Unknown key (set 3, scancode 0x86, on isa0060/serio0) released.
i8042.c: 87 <- i8042 (interrupt, kbd, 1) [45273]
atkbd.c: Unknown key (set 3, scancode 0x87, on isa0060/serio0) pressed.
i8042.c: f0 <- i8042 (interrupt, kbd, 1) [45366]
i8042.c: 87 <- i8042 (interrupt, kbd, 1) [45367]
atkbd.c: Unknown key (set 3, scancode 0x87, on isa0060/serio0) released.
Interestingly, I wasn't able to reproduce the bashing multiple keys error, using i8042_direct or atkbd_set=3.
John.
-
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/