[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