Description of problem: The appletouch driver does not function with a full set of fetures, tested on a macbook 13", a basic explorer ps2 mouse is used instead of the synaptics driver in Xorg Steps to Reproduce: 1. Use a kernel built with usbhid builtin or load the usbhid module before appletouch 2. Start X Actual results: X puts out an error indicating that the synaptics touchpad cannot be found, two finger tap and three finger tap cannot be enabled (especially anoying on a machine with only one mouse button) Additional info: A fix for this bug is to build the usbhid driver as a module (I have done this myself from kernel-2.6.18-1.2708 src), and the modules must be (re)loaded in the correct order before X starts, currently I do this using a hack in my /etc/rc.local as follows; /sbin/rmmod usbhid appletouch /sbin/modprobe appletouch /sbin/modprobe usbhid A better solution (still requiring the usbhid driver to be built as a module) is to modify udev in some way in order to ensure the appletouch driver is loaded earlier than the usbhid driver. This fix is a great enabler for intel macs! I now have two finger tap for button two and three finger for middle click and scrolling at the touchpad edges.
Module load order should never cause any change in operation. If that happens, it's a bug. Looks like the exclusion list is incorrect in hid. The requestor would do good to attach /proc/bus/usb/devices so that we have something concrete with which to go to Dmitry.
Created attachment 137493 [details] usb devices as requested
Upstream discussion: http://lkml.org/lkml/2006/9/30/181
After reading the upstream discussion I was wondering is there any resolution to this in the kernel? > it can't be blacklisted by the existing quirk bits, can it? Implies that it can't as there is currently no reply, I hope to see this supported.
Yes, it turned out not to be a trivial patch as I hoped. So, someone has to do the work, and I have other things on top of the pile. I'm going to keep this bug open as a reminder.
Quoted from the mactel linux users mailing list. This may help. Soeren Sonnenburg wrote: > On Sun, 05 Nov 2006 20:30:22 +0000, Jon Grosshart wrote: > > >> Just suscribed so I'm not quoting Karl's original message. Sorry. >> >> I'm having the same problem on my new MacBook Pro Core 2 Duo.... I've >> scoured the web for days on end and can not get synaptics to recognize the >> touchpad. Gives the same error that Karl is getting. I'm using >> synaptics-0.14.6.... >> > > well open the file drivers/usb/input/appletouch.c (kernel source) in an > editor and replace > > #define GEYSER3_JIS_PRODUCT_ID 0x0219 > > for testing with > > #define GEYSER3_JIS_PRODUCT_ID 0x021A > > if you applied the apply the usbhid.patch in > mactel/mactel-linux-trunk/kernel/mactel-patches-2.6.18/ > > do the same there rebuild+reboot and post results... > > Soeren > Thanks Soeren. That did the trick. Not sure why I didn't think of it myself. I had to do something similar with alsa to get a card working a few years back. I've never used the synaptics driver before, but if you lightly touch the pad and then move, it doesn't register. I'll assume that has something to do with one of the many settings in xorg.conf.... Time to poke around. Thanks again Soeren. Much appreciated. I'm really liking the double-tap right click.
Are the any plans to patch appletouch with the new usbid's as per the mactel patches?
Actually it looks like patch-2.6.20-rc6 contains that patch - so looks like it's en-route .....
I have the same issue as the original reporter. Running on a Macbook Pro Core Duo (first generation). I tried the latest kernel with the included patch, but that doesn't seem to help. [ruben@wodan ~]$ uname -a Linux wodan.marshallplein.nl 2.6.19-1.2916.fc7 #1 SMP Tue Jan 30 17:59:57 EST 2007 i686 i686 i386 GNU/Linux /proc/bus/usb/devices: T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 4 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=05ac ProdID=0218 Rev= 0.60 S: Manufacturer=Apple Computer S: Product=Apple Internal Keyboard / Trackpad C:* #Ifs= 3 Cfg#= 1 Atr=a0 MxPwr= 40mA I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=8ms I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=8ms I: If#= 2 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid E: Ad=84(I) Atr=03(Int.) MxPS= 1 Ivl=8ms So it looks like I should have a GEYSER_3 Loading the Synaptics mouse driver fails though: (II) Synaptics touchpad driver version 0.14.4 (1404) (**) Option "Device" "/dev/input/mice" (**) Option "SHMConfig" "on" (**) Option "HorizScrollDelta" "0" (EE) Touchpad no synaptics touchpad detected and no repeater device (EE) Touchpad Unable to query/initialize Synaptics hardware. (EE) PreInit failed for input device "Touchpad" (II) UnloadModule: "synaptics"
(In reply to comment #4) > > it can't be blacklisted by the existing quirk bits, can it? > > Implies that it can't as there is currently no reply, Possibly there's a way to do this. Appletouch contains code to set the device mode of Geyser 3 and 4 devices to something other than USB HID. If this would be done in inside the HID driver too, somewhere before it starts to take control over those devices, this should give us what we want. The keyboard part could be handled through the HID driver, whereas the touchpad would be ignored and eventually picked up by appletouch. It's just a thought. I can't try it myself, because I have no way to get my hands on a MacBook.
Well, somebody has already done the work: > Soeren Sonnenburg [Mon, 5 Feb 2007 09:06:01 +0000 (10:06 +0100)] > > Some HID devices by Apple have both keyboard and mouse interfaces; the > keyboard interface is handled by usbhid, but the mouse (really > touchpad) interface must be handled by the separate 'appletouch' > driver. Using HID_QUIRK_IGNORE will make hiddev ignore both > interfaces, therefore a new quirk flag to ignore only the mouse > interface is required. git commit: a417a21e10831bca695b4ba9c74f4ddf5a95ac06 Not included in 2.6.20, though.
It's seems to be in 2.6.21-rc1. I haven't been able to try it yet, since that kernel won't boot on my machine, but that's due to bug 229607.
I have the same problem as Ruben. The best solution so far is to backport patches 00081d3729a450c37afb01c01528f4f305806d86 009ad0e7b43d6cabd74e47db6180f14315b71417 e5d9A832c207f952e15ccddda5f2d52c94036acd7 and compile usbhid as a module. To get the two button scrolling to work one also has to upgrade the X driver.
*** Bug 235634 has been marked as a duplicate of this bug. ***
Karl, did you have a chance to try F-7? Does it work?
Fedora 7 works great, in fact I was meaning to come and close this bug. :) Still waiting on two finger scroll, I can't figure out why the settings in the man page don't work in X, although I've got edge scrolling working and two/three finger tap.