[Pkg-utopia-maintainers] Bug#530585: hal: HAL registers too many keyboard devices
Josef Spillner
2005 at kuarepoti-dju.net
Tue May 26 06:38:47 UTC 2009
Package: hal
Version: 0.5.12~git20090406.46dc48-2
Severity: important
Yesterday I've upgraded my X.org from 7.3 to 7.4 which included
the removal of static kbd/mouse device configuration and their
replacement with evdev devices which get their information from HAL.
The net effect was that while the mouse still works, the keyboard
doesn't fully work. Some keys work without problems (e.g. enter),
while usual characters need to be input together with a trailing
space key to show up in order. Otherwise, the key code is alternating
constantly.
To demonstrate the problem:
input = 444444 -> output = 4$4$4$
input = 4 4 4 4 4 4 -> output = 444444
The alternation was also checked with xev (Or rather: x e v )
with several terminals and window managers just to make sure that
it's not related to these. It's not.
The key release event is always carrying the same key code and
is therefore not affected by the alternation. Using the same example
as above:
press(34) release(24) press(24) release(24) press(34) release(24)...
This makes X11 completely unusable for me. The text console still
works, though. If you believe that due to this it is an evdev issue,
please reassign.
Nevertheless I suspect HAL of being the problem here. When I plug
in an external USB keyboard, it is registered twice instead of once.
The following two sections from lshal show that both event12 and event13
are registered for the external keyboard, while event0 to event11 are all
spurious other keyboard devices which I'll list further down.
When checking the created device nodes manually, e.g. cat /dev/input/eventX,
only event12 returns something for the external keyboard and only event1
for the internal keyboard.
udi = '/org/freedesktop/Hal/devices/usb_device_4f2_402_noserial_if1_logicaldev_input'
info.addons.singleton = {'hald-addon-input'} (string list)
info.callouts.add = {'debian-setup-keyboard'} (string list)
info.capabilities = {'input', 'input.keys', 'button'} (string list)
info.category = 'input' (string)
info.parent = '/org/freedesktop/Hal/devices/usb_device_4f2_402_noserial_if1' (string)
info.product = 'Chicony USB Keyboard' (string)
info.subsystem = 'input' (string)
info.udi = '/org/freedesktop/Hal/devices/usb_device_4f2_402_noserial_if1_logicaldev_input' (string)
input.device = '/dev/input/event13' (string)
input.originating_device = '/org/freedesktop/Hal/devices/usb_device_4f2_402_noserial_if1' (string)
input.product = 'Chicony USB Keyboard' (string)
input.x11_driver = 'evdev' (string)
input.xkb.layout = 'de' (string)
input.xkb.model = 'pc105' (string)
input.xkb.rules = 'base' (string)
linux.device_file = '/dev/input/event13' (string)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'input' (string)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.1/input/input13/event13' (string)
udi = '/org/freedesktop/Hal/devices/usb_device_4f2_402_noserial_if0_logicaldev_input'
info.addons.singleton = {'hald-addon-input'} (string list)
info.callouts.add = {'debian-setup-keyboard'} (string list)
info.capabilities = {'input', 'input.keyboard', 'input.keypad', 'input.keys', 'button'} (string list)
info.category = 'input' (string)
info.parent = '/org/freedesktop/Hal/devices/usb_device_4f2_402_noserial_if0' (string)
info.product = 'Chicony USB Keyboard' (string)
info.subsystem = 'input' (string)
info.udi = '/org/freedesktop/Hal/devices/usb_device_4f2_402_noserial_if0_logicaldev_input' (string)
input.device = '/dev/input/event12' (string)
input.originating_device = '/org/freedesktop/Hal/devices/usb_device_4f2_402_noserial_if0' (string)
input.product = 'Chicony USB Keyboard' (string)
input.x11_driver = 'evdev' (string)
input.xkb.layout = 'de' (string)
input.xkb.model = 'pc105' (string)
input.xkb.rules = 'base' (string)
linux.device_file = '/dev/input/event12' (string)
linux.hotplug_type = 2 (0x2) (int)
linux.subsystem = 'input' (string)
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0/input/input12/event12' (string)
Here's the abbreviated list of other devices registered as a keyboard:
input.product = 'Fujitsu FUJ02B1' (string)
input.product = 'Video Bus' (string)
input.product = 'Fujitsu FUJ02E3' (string)
input.product = 'Macintosh mouse button emulation' (string)
input.product = 'SynPS/2 Synaptics TouchPad' (string)
input.product = 'PS/2 Generic Mouse' (string)
input.product = 'AT Translated Set 2 keyboard' (string)
In particular, I don't see what a video bus is doing there.
The Fujitsu keys could be special multimedia keys which seem to return
XF86Launch1-4 keycodes with xev (as opposed to returning nothing with
earlier kernels). There are four such keys though, and two Fujitsu
devices registered.
If you need the full list I can send it, but I guess the next step
would be to evaluate if it's indeed HAL's fault or evdev's or the
kernel's. All of these components are installed with their latest versions
from unstable.
I've also tried returning to manual device detection as described
in the blog entry linked from the Xorg NEWS.Debian file.
However, adding AutoAddDevices "off" to the Xorg ServerLayout
section was claimed to be an unknown command by Xorg.
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.29-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages hal depends on:
ii acl 2.2.47-2 Access control list utilities
ii adduser 3.107 add and remove users and groups
ii consolekit 0.3.0-2 framework for defining and trackin
ii dbus 1.2.14-2 simple interprocess messaging syst
ii hal-info 20090309-1 Hardware Abstraction Layer - fdi f
ii libc6 2.9-4 GNU C Library: Shared libraries
ii libdbus-1-3 1.2.1-2 simple interprocess messaging syst
ii libdbus-glib-1-2 0.80-3 simple interprocess messaging syst
ii libexpat1 2.0.1-4 XML parsing C library - runtime li
ii libgcc1 1:4.3.2-1 GCC support library
ii libglib2.0-0 2.20.0-2 The GLib library of C routines
ii libhal-storage1 0.5.11-2 Hardware Abstraction Layer - share
ii libhal1 0.5.11-1 Hardware Abstraction Layer - share
ii libpolkit2 0.9-3 library for accessing PolicyKit
ii libsmbios2 2.0.3.dfsg-1 Provide access to (SM)BIOS informa
ii libstdc++6 4.3.2-1 The GNU Standard C++ Library v3
ii libusb-0.1-4 2:0.1.12-11 userspace USB programming library
ii libvolume-id1 0.141-1 libvolume_id shared library
ii lsb-base 3.2-20 Linux Standard Base 3.2 init scrip
ii mount 2.13.1.1-1 Tools for mounting and manipulatin
ii pciutils 1:3.0.0-4 Linux PCI Utilities
ii pm-utils 1.1.0-1 utilities and scripts for power ma
ii policykit 0.9-3 framework for managing administrat
ii udev 0.141-1 /dev/ and hotplug management daemo
ii usbutils 0.73-8 Linux USB utilities
Versions of packages hal recommends:
ii eject 2.1.5-8 ejects CDs and operates CD-Changer
pn libsmbios-bin <none> (no description available)
-- no debconf information
More information about the Pkg-utopia-maintainers
mailing list