[jaunty ppc ps3] Mouse handled as touchpad on powerpc

Bug #351059 reported by Arnaud Jeansen
22
This bug affects 1 person
Affects Status Importance Assigned to Milestone
hal (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Binary package hint: hal

[[[
For users suffering from this problem, the easiest workaround is to:
sudo apt-get remove xserver-xorg-input-synaptics
]]]

I own a Logitech LX710 mouse - keyboard combo. Its mouse works fine on my laptop (i386), but the mouse wheel doesn't work on my PS3 (powerpc).

I used the hotkeys troubleshooting page of the wiki to find the root cause of the problem, and it seems to be a problem in hal.
Using the hal-find-by-capability command, I found that the "input.x11_driver" value is different on the two machines:
- on i386, "input.x11_driver" is "evdev"
- on powerpc, "input.x11_driver" is "synatpics"

Thanks.

ProblemType: Bug
Architecture: powerpc
DistroRelease: Ubuntu 9.04
Package: hal 0.5.12~rc1+git20090204-0ubuntu4
ProcEnviron:
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: hal
Uname: Linux 2.6.28-5-powerpc64-smp ppc64

Revision history for this message
Arnaud Jeansen (ajeans) wrote :
Revision history for this message
Arnaud Jeansen (ajeans) wrote :

Adding the PS3 xorg log

Revision history for this message
Arnaud Jeansen (ajeans) wrote :

And the laptop xorg log

Revision history for this message
Arnaud Jeansen (ajeans) wrote :

Adding lshal.log

Revision history for this message
Arnaud Jeansen (ajeans) wrote :

On the PS3, manually changing the x11 driver from synaptics to evdev makes the mouse wheel work in X.

I ran the following line, then restarted gdm and logged in again
hal-set-property --udi "/org/freedesktop/Hal/devices/usb_device_46d_c517_noserial_if1_logicaldev_input" \
--key "input.x11_driver" --string "evdev"

Revision history for this message
Arnaud Jeansen (ajeans) wrote :

The input.x11_driver value is set by a fdi file, based on reported capabilities.

On the laptop, the capabilites for the mouse are :
info.capabilities = {'input', 'input.keys', 'input.mouse', 'button', 'access_control'} (string list)

Whereas on the PS3, the capabilities are :
info.capabilities = {'input', 'input.keypad', 'input.keys', 'input.mouse', 'input.touchpad', 'button', 'access_control'} (string list)

There is an extra "input.keypad" and another extra "input.touchpad". The second by responsible for the assignment to the synaptics driver.

Now what sets info.capabilities ??

Revision history for this message
Arnaud Jeansen (ajeans) wrote :

From the code in hal (lhald/linux/device.c), a device is set to input.touchpad based on its "abs" bitmask and its "key" bitmask.
If "abs" has bits ABS_X (0x00) and ABS_Y (0x01) and "abs" has bit ABS_PRESSURE (0x18)
OR
If "abs" has bits ABS_X (0x00) and ABS_Y (0x01) and "key" has bit BTN_TOUCH (0x14a)

Based on the content of /proc/bus/input/devices on both machines, the mouse on the laptop has:

B: EV=1f
B: KEY=837fff 42c332f bf084444 0 0 ff0001 1f84 8a37cc00 667bfa dd71dfed 9e0000 0 0 0
B: REL=1c3
B: ABS=1 0
B: MSC=10

Whereas the mouse on the PS3 has :
B: EV=1f
B: KEY=837fff042c332f bf08444400000000 ff0001 1f848a37cc00 667bfadd71dfed 9e000000000000 0
B: REL=1c3
B: ABS=100000000
B: MSC=10

At many points in these lines, there is an additional 7 '0' instead of a space character. This probably breaks the detection code...

If anyone well informed in hal and linux can have a look, I don't even know where this bug belongs now...

Revision history for this message
Ambricka (petter-ambricka) wrote : Re: Mouse handled as touchpad on powerpc

It's a keyboard I have problems with, the mouse works... however, here's the output, and the only diffs are sysfs, physical bluetooth addr, 32/64 bit, and strangely enough the name. Are the names hardcoded somewhere?

petter@ps3:~/haldebug$ tail -13 devices-ps3.txt

I: Bus=0005 Vendor=046d Product=b308 Version=7313
N: Name="Logitech Bluetooth Keyboard"
P: Phys=00:23:06:52:9A:9B
S: Sysfs=/devices/ps3_system/sb_07/usb2/2-2/2-2:1.0/bluetooth/hci0/hci0:47/input5
U: Uniq=00:07:61:A8:56:2C
H: Handlers=kbd event5
B: EV=10001f
B: KEY=837fff002c3027 bf00444400000000 1 10f848a27c007 ffe67bfad9415fff febeffdfffefffff fffffffffffffffe
B: REL=40
B: ABS=30100000000
B: MSC=10

petter@ps3:~/haldebug$ tail -13 devices-i386.txt

I: Bus=0005 Vendor=046d Product=b308 Version=7313
N: Name="Dell BT Keyboard"
P: Phys=00:10:60:D0:11:EE
S: Sysfs=/devices/pci0000:00/0000:00:10.0/usb2/2-1/2-1:1.0/bluetooth/hci0/hci0:42/input7
U: Uniq=00:07:61:A8:56:2C
H: Handlers=kbd event7
B: EV=10001f
B: KEY=837fff 2c3027 bf004444 0 0 1 10f84 8a27c007 ffe67bfa d9415fff febeffdf ffefffff ffffffff fffffffe
B: REL=40
B: ABS=301 0
B: MSC=10

Revision history for this message
Ambricka (petter-ambricka) wrote :

petter@ps3:~/haldebug$ tail -13 devices-amd64.txt

I: Bus=0005 Vendor=046d Product=b308 Version=7313
N: Name="Dell BT Keyboard"
P: Phys=00:10:60:A4:B1:04
S: Sysfs=/devices/pci0000:00/0000:00:02.0/usb1/1-9/1-9:1.0/bluetooth/hci0/hci0:44/input112
U: Uniq=00:07:61:A8:56:2C
H: Handlers=kbd event10
B: EV=10001f
B: KEY=837fff002c3027 bf00444400000000 1 10f848a27c007 ffe67bfad9415fff febeffdfffefffff fffffffffffffffe
B: REL=40
B: ABS=30100000000
B: MSC=10

Revision history for this message
Arnaud Jeansen (ajeans) wrote :

@Ambricka
Nice to get the amd64 version as well.

As it is working correctly for you on AMD64 with KEY codes identical to those on the PS3, the output difference could be simply due to endianness. Something else then...

As for the name difference, it is interesting but I don't know where the names come from. I'll grep in the kernel sources

Arnaud Jeansen (ajeans)
summary: - Mouse handled as touchpad on powerpc
+ [jaunty ppc] Mouse handled as touchpad on powerpc
Arnaud Jeansen (ajeans)
description: updated
tags: added: ps3
summary: - [jaunty ppc] Mouse handled as touchpad on powerpc
+ [jaunty ppc ps3] Mouse handled as touchpad on powerpc
Revision history for this message
Mihai Olimpiu Cristian (mihaiolimpiucristian) wrote :

I'm also affected by this bug. Using Jaunty PPC on a PS3, Microsoft Notebook Mouse 5000.

Workaround 1:
sudo apt-get remove xserver-xorg-input-synaptics

Workaround 2:
sudo gedit /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi

Comment this line by adding <!-- before and --> after
        <!--
        <merge key="input.x11_driver" type="string">synaptics</merge>
        -->

Both workarounds work great, I just wanted to put them into a more noobish approach, especially that in the first comment the command is misspelled (xserver instead of xerver)

description: updated
Revision history for this message
dino99 (9d9) wrote :
Changed in hal (Ubuntu):
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.