keyboard problems with 3.0 (xorg, evdev)

From: Ken Moffat
Date: Tue Aug 02 2011 - 21:02:26 EST


I guess my situation is unusual - I use a kvm switch to share a
monitor between my desktop boxes. For a long time, there have been
intermittent mouse problems in X (typically, the mouse goes apeshit
and highlights everything), usually cured by cycling through the kvm
positions [ I usually only use one machine at a time ] and dropping
back to a tty before going back to X. The key word is
*intermittent* - sometimes I can go weeks without problems. Mostly,
I only use one box at a time.

With 3.0, the problems are much worse - I'm getting keyboard
problems in vim (in urxvt) : the cursor keys stop working, as does
ESC [ although, bizzarely, Ctrl-C then takes over the ESC function
so I can sort-of continue editing ].

The first time I saw this was my first boot of 3.0 on my ppc64. I
initially assumed something in the keyboard area was horribly broken
there, but after coming back to it when I had time and paper-and-pen,
everything in both showkey and xev looked identical to previous
kernels, so I assumed it was a hardware glitch.

Tonight, it started doing the same thing on an x86_64 box which had
been ok with 3.0. This time, the first problem was that the mouse
clicks stopped working, and the loss of keys in vim happened later (I
clicked on a preview in the gimp/ufraw and thought things were slow
because my nfs drive with the photos I was editing spins down when
idle overnight, so I went to a different desktop to do something else
in vim, and then I again saw the loss of cursor and ESC keys).

After a lot of cycling thorough the kvm positions, and back to a tty,
it eventually all sorted itself and I was able to finish what I was
doing, but this time the following was in the system log:

Aug 3 00:10:48 ac30 kernel: psmouse.c: Wheel Mouse at
isa0060/serio1/input0 lost synchronization, throwing 3 bytes away.
Aug 3 00:12:47 ac30 kernel: psmouse.c: Wheel Mouse at
isa0060/serio1/input0 lost synchronization, throwing 3 bytes away.
Aug 3 00:12:47 ac30 kernel: psmouse.c: resync failed, issuing
reconnect request
Aug 3 00:12:49 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x71 on isa0060/serio0).
Aug 3 00:12:49 ac30 kernel: atkbd serio0: Use 'setkeycodes 71
<keycode>' to make it known.
Aug 3 00:12:49 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x71 on isa0060/serio0).
Aug 3 00:12:49 ac30 kernel: atkbd serio0: Use 'setkeycodes 71
<keycode>' to make it known.
Aug 3 00:12:55 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:12:55 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:12:55 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:12:55 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:01 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:01 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:01 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:01 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:04 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:04 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:04 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:04 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:05 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:05 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:05 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:05 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:11 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:11 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:11 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:11 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:12 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:12 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:12 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:12 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:14 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:14 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:14 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:14 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:14 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:14 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:14 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x64 on isa0060/serio0).
Aug 3 00:13:14 ac30 kernel: atkbd serio0: Use 'setkeycodes 64
<keycode>' to make it known.
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x55 on isa0060/serio0).
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Use 'setkeycodes 55
<keycode>' to make it known.
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x55 on isa0060/serio0).
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Use 'setkeycodes 55
<keycode>' to make it known.
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x55 on isa0060/serio0).
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Use 'setkeycodes 55
<keycode>' to make it known.
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x55 on isa0060/serio0).
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Use 'setkeycodes 55
<keycode>' to make it known.
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x55 on isa0060/serio0).
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x55 on isa0060/serio0).
Aug 3 00:13:26 ac30 kernel: atkbd serio0: Use 'setkeycodes 55
<keycode>' to make it known.
Aug 3 00:13:27 ac30 kernel: atkbd serio0: Unknown key pressed
(translated set 2, code 0x71 on isa0060/serio0).
Aug 3 00:13:27 ac30 kernel: atkbd serio0: Use 'setkeycodes 71
<keycode>' to make it known.
Aug 3 00:13:27 ac30 kernel: atkbd serio0: Unknown key released
(translated set 2, code 0x71 on isa0060/serio0).

this seems to repeat for keycodes 64, 55, 71 and then I got

Aug 3 00:18:24 ac30 kernel: psmouse.c: Wheel Mouse at
isa0060/serio1/input0 lost synchronization, throwing 2 bytes away.
Aug 3 00:18:25 ac30 kernel: psmouse.c: resync failed, issuing
reconnect request

which seems to be associated with the end of the problem.

Keycodes 64, 55, 71 are 'Alt', 'v', and 'F8' (I'm using evdev).

This is a pain in the proverial, but it's far too intermittent to
bisect. I'm hoping it turns out to be very infrequent, because it's
a real annoyance, and I'm short of time (going on holiday soon).

ken
--
das eine Mal als Tragödie, das andere Mal als Farce
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/