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