Comment 0 for bug 1002951

Revision history for this message
Wookey (wookey) wrote : PS/2 keyboard input is ignored in X after a while

Since upgrading to precise my (PS/2) keyboard just stops working after a while. This is fatal and all I can do is log out of the desktop session (or reboot) to get it working again.

This happens every day or two, when I am typing - usually when scrolling back through xterm output. (shift page-up/page-down)

Some investigation has revealed:

hotplugging the keyboard doesn't change anything - nor does it produce any output in dmesg or /var/log/Xorg.0.log

I can ssh in and the system is working fine. My mouse still works fine.

plugging in a USB keyboard works fine and allows me to do some debugging:

switching to console (ctrl-alt-F1) shows that the PS/2 keyboard is working fine in console mode, so it's only bust in X.

Running xev shows only this when I hit a key on the dead keyboard:
MappingNotify event, serial 36, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

no keypress events.

My /var/log/Xorg.0.log and /etc/X11/xorg.conf fies are attached.

Relevant info is:
in /etc/X11/xorg.conf:
Section "InputDevice"
    # generated from default
    Identifier "Keyboard0"
    Driver "kbd"
    Option "XkbOptions" "ctrl:nocaps"
EndSection

in log file:
[ 32.547] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[ 32.547] (WW) Disabling Keyboard0
[ 32.547] (WW) Disabling Mouse0
....
[ 36.047] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event2)
[ 36.047] (**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall"
[ 36.047] (II) Using input driver 'evdev' for 'AT Translated Set 2 keyboard'
[ 36.047] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[ 36.047] (**) AT Translated Set 2 keyboard: always reports core events
[ 36.047] (**) evdev: AT Translated Set 2 keyboard: Device: "/dev/input/event2"
[ 36.047] (--) evdev: AT Translated Set 2 keyboard: Vendor 0x1 Product 0x1
[ 36.047] (--) evdev: AT Translated Set 2 keyboard: Found keys
[ 36.047] (II) evdev: AT Translated Set 2 keyboard: Configuring as keyboard
[ 36.047] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input2/event2"
[ 36.047] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 9)
[ 36.047] (**) Option "xkb_rules" "evdev"
[ 36.047] (**) Option "xkb_model" "pc105"
[ 36.047] (**) Option "xkb_layout" "gb"
[ 36.047] (**) Option "xkb_options" "ctrl:nocaps,lv3:ralt_switch"

$ dmesg | grep "AT T":
[ 0.991439] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2

$ xinput list⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft 5-Button Mouse with IntelliEye(TM) id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
    ↳ CHICONY USB NetVista Full Width Keyboard id=10 [slave keyboard (3)]

$ sudo evtest /dev/input/by-path/platform-i8042-serio-0-event-kbd

shows all key press and release events on the dead keyboard. So they are arriving at this level, but the X input device seems to be ignoring them

$dpkg --get-selections | grep xserver
x11-xserver-utils install
xserver-common install
xserver-xorg install
xserver-xorg-core install
xserver-xorg-input-all install
xserver-xorg-input-evdev install
xserver-xorg-input-mouse install
xserver-xorg-input-synaptics install
xserver-xorg-input-vmmouse install
xserver-xorg-input-wacom install
xserver-xorg-video-fbdev install
xserver-xorg-video-intel deinstall
xserver-xorg-video-nouveau install
xserver-xorg-video-openchrome deinstall
xserver-xorg-video-radeon deinstall
xserver-xorg-video-vmware install

So I not really sure how this works but it lokos to me that the kernel-level evdev stuff is working fine. X ignores the xorg.conf 'kbd' config (possibly because xserver-xorg-input-kbd is not installed? but then evdev picks up the device and it works fine for a while, but for some reason evdev starts ignoring that input device.

This looks like a bug...

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: xserver-xorg-input-evdev 1:2.7.0-0ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-24.37-generic 3.2.14
Uname: Linux 3.2.0-24-generic x86_64
ApportVersion: 2.0.1-0ubuntu7
Architecture: amd64
Date: Tue May 22 15:40:06 2012
ProcEnviron:
 SHELL=/bin/bash
 TERM=xterm
 PATH=(custom, no user)
 LANG=en_GB.UTF-8
SourcePackage: xserver-xorg-input-evdev
UpgradeStatus: Upgraded to precise on 2011-11-09 (194 days ago)