Bug#562052: Correctly identify touchpads

Martin Pitt mpitt at debian.org
Wed Dec 30 02:00:43 PST 2009


Michael Tokarev [2009-12-25  1:51 +0300]:
> > Not really :( We print in groups of longs so it is either 32 or 64 bits
> > worth of data per number.
> 
> Ok, I stand corrected.  I verified the issue with 32bit kernel, and
> there, hald works as expected, listing `synaptics' as x11_driver
> and correct input.touchpad capability.

Just to have all the data, could you please find the input device
number (from lshal, as you did before), and send the output of

  cat /sys/class/input/inputX/capabilities/key

(replace X with the particular input device number) under a 32 and 64
bit system?

Also, do you get correct or wrong ID_INPUT_* flags for the synaptics
device in "udevadm info --export-db|less"? I expect it to be wrong as
well, since it's pretty much the same code.

udev/hal already use sizeof(long) to determine the length of a long
word length, and it doesn't seem to happen everywhere. (I am running a
64 bit kernel/userspace and get correct results).

I might have misunderstood you, but did you actually try to run a 64
bit kernel under 32 bit userspace? That would explain the bug, since
hal/udev were compiled with the assumption that sizeof(long) == 4,
while the kernel prints those in groups of 8 bytes.

So if we want to support mixed kernel/userspace word lenghts, we need
to change the logic to do a dynamic word size detection based on
uname().

Martin

-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)


More information about the hal mailing list