Apple multitouch and 11.10

Bug #882428 reported by Tourach
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Medium
Chase Douglas
Oneiric
Fix Released
Medium
Chase Douglas

Bug Description

The multitouch touchpad works out of the box with a fresh install of 11.10 (Macbook 8.1 Late 2011 & Early 2011) however after the first update, the touchpad is not detected and is treated as a mouse in "Mouse and Touchpad".

Revision history for this message
Tourach (bradmpearce) wrote :
Changed in ubuntu:
status: New → Confirmed
Revision history for this message
Tourach (bradmpearce) wrote :

Apologies again... This is not a duplicate, and is separate to incorrectly set defaults.

Changed in ubuntu:
status: Confirmed → New
Tourach (bradmpearce)
affects: ubuntu → utouch (Ubuntu)
Revision history for this message
Chase Douglas (chasedouglas) wrote :

Hi Tourarch,

Please install evtest:

$ sudo apt-get install evtest

Then run it and capture the output:

$ sudo evtest (Pick your trackpad when it prompts you for the device)

You don't need to capture any event data for now, so after selecting your trackpad use Ctrl-C to quit evtest. Please attach the output to this bug report.

Thanks!

Changed in utouch (Ubuntu):
status: New → Incomplete
Revision history for this message
Tourach (bradmpearce) wrote :

Hi Chase,

I have run the commands, and the devices available are HDA controllers:

||No device specified, trying to scan all of /dev/input/event*
||Not running as root, no devices may be available.
||Available devices:
||/dev/input/event10: HDA Intel PCH HDMI/DP,pcm=7
||/dev/input/event11: HDA Intel PCH HDMI/DP,pcm=3
||/dev/input/event7: HDA Intel PCH HDMI/DP,pcm=8
||Select the device event number [0-11]: 10
||Input driver version is 1.0.1
||Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
||Input device name: "HDA Intel PCH HDMI/DP,pcm=7"
||Supported events:
|| Event type 0 (Sync)
|| Event type 5 (Switch)
|| Event code 8 (Video Out Insert)
||Testing ... (interrupt to exit)

I had to interrupt after an hour of it sitting there.

However I have noticed something quite interesting, I got functionality back briefly after a reboot yesterday, in mouse settings (under xubuntu) the device was listed as BCM5974 device.. after another reboot, functionality was lost and the device was listed as Apple Inc. Apple Internal Keyboard/Trackpad.

Xubuntu was installed after the problem started to occur so there is no package conflict in that regard,

Thanks in advance.

Brad

Revision history for this message
Chase Douglas (chasedouglas) wrote :

It looks like you didn't run evtest as root (sudo evtest). The second line of the output you pasted is:

Not running as root, no devices may be available.

Please run evtest again using sudo so it can access all your devices.

Thanks!

Revision history for this message
Tourach (bradmpearce) wrote :
Download full text (12.3 KiB)

Hi Chase,

yeah your right, really sorry. This is the output without event data.

||No device specified, trying to scan all of /dev/input/event*
||Available devices:
||/dev/input/event0: Lid Switch
||/dev/input/event1: Power Button
||/dev/input/event10: Video Bus
||/dev/input/event11: HDA Intel PCH HDMI/DP,pcm=7
||/dev/input/event12: HDA Intel PCH HDMI/DP,pcm=3
||/dev/input/event2: Sleep Button
||/dev/input/event3: Power Button
||/dev/input/event4: Apple Inc. Apple Internal Keyboard / Trackpad
||/dev/input/event5: Apple Inc. Apple Internal Keyboard / Trackpad
||/dev/input/event6: Western Digital External HDD
||/dev/input/event7: applesmc
||/dev/input/event8: HDA Intel PCH HDMI/DP,pcm=8
||/dev/input/event9: FaceTime HD Camera (Built-in)
||Select the device event number [0-12]: 5
||Input driver version is 1.0.1
||Input device ID: bus 0x3 vendor 0x5ac product 0x253 version 0x111
||Input device name: "Apple Inc. Apple Internal Keyboard / Trackpad"
||Supported events:
|| Event type 0 (Sync)
|| Event type 1 (Key)
|| Event code 272 (LeftBtn)
|| Event code 273 (RightBtn)
|| Event code 274 (MiddleBtn)
|| Event type 2 (Relative)
|| Event code 0 (X)
|| Event code 1 (Y)
|| Event type 4 (Misc)
|| Event code 4 (ScanCode)
||Testing ... (interrupt to exit)

And this is with some event data,

Single press, left-click (one finger on pad):

||Event: time 1320071354.550551, type 4 (Misc), code 4 (ScanCode), value 90001
||Event: time 1320071354.550553, type 1 (Key), code 272 (LeftBtn), value 1
||Event: time 1320071354.550566, -------------- Report Sync ------------
||Event: time 1320071354.662543, type 4 (Misc), code 4 (ScanCode), value 90001
||Event: time 1320071354.662545, type 1 (Key), code 272 (LeftBtn), value 0
||Event: time 1320071354.662557, -------------- Report Sync ------------

Single press, right-click (two finger press down):

||Event: time 1320071482.045047, type 4 (Misc), code 4 (ScanCode), value 90001
||Event: time 1320071482.045049, type 1 (Key), code 272 (LeftBtn), value 1
||Event: time 1320071482.045061, -------------- Report Sync ------------
||Event: time 1320071482.117048, type 4 (Misc), code 4 (ScanCode), value 90001
||Event: time 1320071482.117051, type 1 (Key), code 272 (LeftBtn), value 0
||Event: time 1320071482.117063, -------------- Report Sync ------------

Singer finger (0,Y) from top to bottom:
||Event: time 1320071609.419558, type 2 (Relative), code 0 (X), value -3
||Event: time 1320071609.419563, type 2 (Relative), code 1 (Y), value 48
||Event: time 1320071609.419565, -------------- Report Sync ------------
||Event: time 1320071609.427553, type 2 (Relative), code 1 (Y), value 8
||Event: time 1320071609.427556, -------------- Report Sync ------------
||Event: time 1320071609.435550, type 2 (Relative), code 1 (Y), value 9
||Event: time 1320071609.435553, -------------- Report Sync ------------
||Event: time 1320071609.443516, type 2 (Relative), code 1 (Y), value 8
||Event: time 1320071609.443518, -------------- Report Sync ------------
||Event: time 1320071609.451511, type 2 (Relative), code 1 (Y), value 9
||Event: time 1320071609.451514, -------------- Report Sync ------------
||Event: time 1320071609.45...

Revision history for this message
Chase Douglas (chasedouglas) wrote :

Thanks Brad!

I'm at the Ubuntu developer summit right now and by chance someone with this same issue asked me to take a look. I can confirm, based on your device product number, that the the fix for his hardware will work for you as well.

The trackpad supports two modes: generic HID and multitouch. The generic HID mode is provided by the usbhid driver. The multitouch mode is provided by the bcm5974 driver. The bcm5974 driver knows about your trackpad and is already ready to handle your device. Unfortunately, the usbhid module has not been altered to prevent it from handling your trackpad. We merely need to add your device to the blacklist of hid IDs for the usbhid driver to skip.

This explains why sometimes you get full trackpad abilities and sometimes you don't. Sometimes the usbhid module grabs the device, and sometimes bcm5974 grabs it.

Changed in utouch (Ubuntu):
status: Incomplete → In Progress
importance: Undecided → Medium
assignee: nobody → Chase Douglas (chasedouglas)
affects: utouch (Ubuntu) → linux (Ubuntu)
Changed in linux (Ubuntu):
milestone: none → ubuntu-12.04
Changed in linux (Ubuntu Oneiric):
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Chase Douglas (chasedouglas)
milestone: none → oneiric-updates
Revision history for this message
Tourach (bradmpearce) wrote :

Thanks Chase,

Hope you enjoyed the summit.

Is there a blacklist that I should add to? Or is it that the usbhid driver requires recompiling, or should I just wait until the update?

All the best, and thanks for dealing with this;

Brad

Revision history for this message
Chase Douglas (chasedouglas) wrote :

Tourarch,

This is the patch that fixes things: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=213f9da80533940560bef8fa43b10c590895459c. I have requested that the patch be applied to the stable series of the older kernel releases. Once accepted, it will make its way into the Oneiric kernel. This will likely take around a month due to the complexities involved.

It is possible to prepare a dkms package or one-off kernel build for this, but it's not simple, so I suggest waiting it out. Feel free to try your hand if you are interested, though.

Thanks!

Revision history for this message
Tourach (bradmpearce) wrote :

Hey Chase,

Thanks for doing the leg work; and for your patience.

All the best, as I'm on a production machine I shall not deviate from downstream; thanks again,

Brad

Revision history for this message
Chase Douglas (chasedouglas) wrote :

The fix has been committed to the oneiric kernel tree. I believe it will be available in the linux package version 3.0.0-14.23 (or later) when it is released.

Revision history for this message
Julian Wiedmann (jwiedmann) wrote :

Brad,
a kernel with the aforementioned patch should be available in oneiric-updates by now. Is this still an issue?

Revision history for this message
Chase Douglas (chasedouglas) wrote :

Julian,

Thanks for bringing this back up. I'm going to mark it as fix released since it should be by now as you said. Brad or anyone else can reopen it if that's not the case.

Changed in linux (Ubuntu):
status: In Progress → Fix Released
Changed in linux (Ubuntu Oneiric):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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