Page 3 of 29 FirstFirst 1234513 ... LastLast
Results 21 to 30 of 287

Thread: [SOLVED] New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

  1. #21
    Join Date
    Sep 2007
    Beans
    25

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    nevermind, I found it there: http://ppa.launchpad.net/mactel-supp...ver-synaptics/

    a quick grep on the diff revealed me that it effectively adds the relevant option. built it and it works like a charm. thanks for the assistance!

  2. #22
    Join Date
    May 2008
    Beans
    745

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    Yes, the MultiFingerButton option has not made it all the way yet. That makes you the second documented penryn user. Great! Are you experiencing any flavor of the problem __alex__ is describing?

  3. #23
    Join Date
    Sep 2007
    Beans
    25

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    up till now, nothing like that.

    all in all, it works like a charm. this module is really a much better solution than touchd, as I don't think this should belong to userspace, and it has no funky dependencies (openusb comes to mind). I like this KISS spirit, the ArchLinux way

  4. #24
    Join Date
    May 2008
    Beans
    745

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    Lovely, lovely. Then this is for alex: are you by any chance running touchd in the background? It would interfere with the device, in particular any device reset would confuse synaptics.

    I looked into the device initialization a bit, trying to get rid of the need to blacklist usbhid. The current kernel seems to miss out on the mouse-ignore quirk for the MBA and Penryn (aka wellspring devices). These should be the right quirks to use in /etc/modprobe.d/options:

    Code:
    # for MBA
    options usbhid quirks=0x05ac:0x0223:0x00020800,0x05ac:0x0224:0x00024800,0x05ac:0x0225:0x00020800
    # for Penryn
    options usbhid quirks=0x05ac:0x0230:0x00020800,0x05ac:0x0231:0x00024800,0x05ac:0x0232:0x00020800
    UPDATE: the quirk table above has been corrected according to succeeding posts.

    For those who compile their own kernel, here are the correct lines to use in drivers/hid/usbhid/hid-quirks.c:

    Code:
    	{ USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE },
    	{ USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD | HID_QUIRK_IGNORE_MOUSE},
    	{ USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_JIS, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE},
    	{ USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE},
    	{ USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD | HID_QUIRK_IGNORE_MOUSE },
    	{ USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS, HID_QUIRK_APPLE_HAS_FN  | HID_QUIRK_IGNORE_MOUSE },
    With one of the two options above in effect, one can drop the usbhid from the /etc/modprobe.d/blacklist, and just add bcm5974 to /etc/modules.
    Last edited by kosumi68; June 30th, 2008 at 10:43 AM.

  5. #25
    Join Date
    May 2008
    Beans
    745

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    Version 0.4 of the driver is out, adding the finger width reading to the synaptics interface: http://web.comhem.se/rydberg/Bits/.

    The idea here is that given the finger size, one can determine if its a clean index finger, a bulky thumb, or the whole palm touching the trackpad. Based on this, one can determine what action should be taken. We all know how annoying it is to accidentally touch the trackpad while writing a mail, for instance.

    Unfortunately, the palm detection feature of synaptics seems to be completely broken, so the palm feature will have to be turned off awaiting a fix to synaptics. These are the relevant settings in /etc/X11/xorg.conf:

    Code:
            Option          "PalmDetect"             "0"
            Option          "PalmMinWidth"           "180"
            Option          "PalmMinZ"               "10"
    Anyone feel like giving synaptics a treat, please go ahead

    PS: one can see the finger size reading running "sudo synclient -m 100". Pretty cool. DS.

  6. #26
    Join Date
    Dec 2007
    Beans
    61

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    Hello Henrik,

    I messed around with xorg.conf, and the touchpad has not frozen on me in a couple of days. I think it had to do with an external mouse that I always had attached. I mapped the external mouse to "/dev/input/mice", and the touchpad to "/dev/psaux/" in xorg.conf, and that seems to have done it...

    As for the dynamic quirks, it will work with the following modification:
    Edit: see kosumi68's post above.
    (HID_QUIRK_IGNORE_MOUSE is defined as 0x00020000 in hid.h)

    Good work!

    Edit: And it just locked up again This is running v0.41, but this time dmesg did capture something useful. The lockup happened right after I tried a two-finger right click, and the following messages appeared in dmesg:
    Code:
    [  885.095826] usb 5-2: USB disconnect, address 5
    [  885.152487] input: bcm5974 disconnected
    [  885.218634] usb 5-2: new full speed USB device using uhci_hcd and address 6
    [  885.269833] usb 5-2: configuration #1 chosen from 1 choice
    [  885.278812] input: Apple, Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:1d.2/usb5/5-2/5-2:1.0/input/input16
    [  885.333494] input,hidraw1: USB HID v1.11 Keyboard [Apple, Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.2-2
    [  885.615309] hidraw2: USB HID v1.11 Device [Apple, Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1d.2-2
    [  885.621106] bcm5974: Wellspring mode initialized.
    [  885.621217] input: bcm5974 as /devices/pci0000:00/0000:00:1d.2/usb5/5-2/5-2:1.2/input/input17
    After this, the touchpad button works, but the trackpad does not.
    Last edited by _alex_; June 30th, 2008 at 02:07 AM.

  7. #27
    Join Date
    Dec 2007
    Beans
    61

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    Okay, I'm pretty sure I know what it is now. My macbook pro seems to suffer from this problem: http://discussions.apple.com/thread....5569&tstart=75

    The flaky keyboard/trackpad connection causes the device to disconnect shortly (this explains the correlated keyboard and trackpad messages in dmesg), which causes the bcm5974 driver issues . I guess I'll have to bring my macbook in for repairs.

  8. #28
    Join Date
    May 2008
    Beans
    745

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    Ooops - your quirk table is exactly what I thought I tested, thanks for finding the problem

    So your device reinitiates spontaneously? After the initialization, the synaptics driver most likely loses track of what device to read from - do you have the output of /var/log/Xorg* from the same time?
    Last edited by kosumi68; June 30th, 2008 at 10:43 AM.

  9. #29
    Join Date
    Sep 2007
    Beans
    25

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    currently I'm using these quirks to make fn key work:
    Code:
    options usbhid quirks=0x05ac:0x0230:0x00000800,0x05ac:0x0231:0x00004800,0x05ac:0x0232:0x00000800
    is the last part wrong? do you suggest I add 0x0225:0x00020800 at the end? do you suggest I add +0x00020000 to each value? could you give a short explanation of what it all means?

  10. #30
    Join Date
    May 2008
    Beans
    745

    Re: New kernel driver for the BCM5974 touchpad (Macbook Air, Penryn)

    Sometimes the simplest things are the hardest - apparently alex' correction needs a correction, too Check my edited post for the (hopefully!) correct lines.

    The quirks look very mysterious and woodoo-like, until one reads the kernel code. It is all about performing special tasks for particular devices, things that have not yet made it to the driver code. For instance "0x05ac:0x0232:0x00020800" means: "apple device penryn has the FN key and the mouse device should be ignored" (to be initialized by bcm5974). The difference between 0x0230, 0x0231 and 0x0232 is where the computer is manufactured (dont know much about the details). In principle, you should only need to use the code for your own device (found with the lsusb command).
    Last edited by kosumi68; June 29th, 2008 at 09:54 PM. Reason: typo

Page 3 of 29 FirstFirst 1234513 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •