Comment 38 for bug 337935

Revision history for this message
Colin D Bennett (colinb) wrote : Re: [Jaunty] MacBook 5.1 touchpad not fully supported (Alpha 5 of Jaunty)

I got the trackpad on my MacBook Pro 5,1 *mostly* working by doing:
(On a fresh install of Jaunty Beta)

1. Install all the mactel PPA packages.
2. Blacklist usbhid
3. Put bcm5974, usbhid in modprobe's "modules" file to force bcm5974 to load first.
4. Put the file posted above by P. Dunbar on 2009-03-31 in /etc/hal/fdi/policy

I could then tweak the .fdi file in a minor way and had the following features:

- tap-to-click
- one/two/three-finger tap clicks for left/right/middle button
- two-finger scrolling (both vertical and horizontal)

There are still some big problems that make the trackpad completely unusable for me unfortunately. The main problems are:

1. Sensitivity is *WAY* too low.
2. Can't click and hold with thumb while dragging with another finger.

First, the sensitivity problem. I tweaked the .fdi file's MinSpeed, MaxSpeed, and AccelFactor to achieve much higher speed of movement that is fairly satisfactory -- however, this only has an effect at the GDM login screen! When I actually log in and Gnome starts, the trackpad movement slows down tremendously. Even if I crank up the sensitivity/acceleration in the Preferences|Mouse dialog, it is still too slow. Also, I don't want much "acceleration" I mostly want a constant, moderate sensitivity. This is useful because the MacBook Pro's trackpad is so enormous (which is one of the features that made me choose this laptop).

I cannot use the 'synclient' program, it always says that it can't access the shared memory segment and I should enable SHM support in the synaptics configuration, but it is already enabled in the .fdi file. (Also, there is nothing related to this in the xorg.conf file that could be messing it up.) I tried the 'gpointing-device-settings' program (http://live.gnome.org/GPointingDeviceSettings) and this provided some easy access to extremely important xinput settings such as palm detection. It did not allow configuring the sensitivity or speed of the trackpad movement.

I would be very happy if the trackpad movement speed at the GDM login screen could simply be preserved when I logged in. Does anyone have an idea how I could do this?

Second, the normal way of dragging things that I use in Mac OS X does not work. I find that double-tap-and-drag is sometimes useful but can be finicky if you don't wait long enough before putting your finger back down after you are done dragging (it will think you still want to drag). I have this problem in Mac OS X too. So I find the most effective way to drag is to use my forefinger to move the pointer and click-and-hold with my thumb on the near edge of the trackpad while I drag with the forefinger. This does not work in Ubuntu; apparently the driver is confused by my thumb's presence on the trackpad surface.

I think that Mac OS X must treat the near (bottom) edge of the trackpad specially when a second finger is detected there, in order to support the particular case where the thumb is used to click in the region on the bottom edge while a finger is moving the pointer elsewhere on the trackpad. I'd be willing to implement this functionality myself if someone could give me a nudge in the right direction; I don't yet understand the relationship between "bcm5974" and "synaptics". Is the trackpad actually a "synaptics" device, or is it a "bcm5974" device but events are being translated and sent to the synaptics X input module as an implementation shortcut instead of making a native bcm5974 X input module?

Thanks for any help; I really want to get Ubuntu working well on my new MacBook Pro and a well-functioning trackpad is a critical component to make the system usable.