Page 5 of 29 FirstFirst ... 3456715 ... LastLast
Results 41 to 50 of 287

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

  1. #41
    Join Date
    Apr 2006
    Beans
    Hidden!

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

    Hey guys, I'm having trouble getting this to work properly. I've followed the directions for a binary install of the current driver and I'm not getting right-click or scrolling.

    Right now, I'm 2.6.24-19-generic

    xorg.conf:
    Code:
    # xorg.conf (X.Org X Window System server configuration file)
    #
    # This file was generated by dexconf, the Debian X Configuration tool, using
    # values from the debconf database.
    #
    # Edit this file with caution, and see the xorg.conf manual page.
    # (Type "man xorg.conf" at the shell prompt.)
    #
    # This file is automatically updated on xserver-xorg package upgrades *only*
    # if it has not been modified since the last upgrade of the xserver-xorg
    # package.
    #
    # If you have edited this file but would like it to be automatically updated
    # again, run the following command:
    #   sudo dpkg-reconfigure -phigh xserver-xorg
    
    Section "InputDevice"
    	Identifier	"Generic Keyboard"
    	Driver		"kbd"
    	Option		"XkbRules"	"xorg"
    	Option		"XkbModel"	"pc105"
    	Option		"XkbLayout"	"us"
    EndSection
    
    Section "InputDevice"
    	Identifier	"Configured Mouse"
    	Driver		"mouse"
    	Option		"CorePointer"
    EndSection
    
    Section "InputDevice"
            # updated 2007-12-07
            # use command "synclient -m 1" to see raw output
            # common stuff
            Identifier      "Synaptics Touchpad"
            Driver          "synaptics"
            Option          "SendCoreEvents"        "true"
            Option          "Device"                "/dev/psaux"
            Option          "Protocol"              "auto-dev"
            
            # not using edge scrolling
            Option          "HorizEdgeScroll"       "0"
            Option          "VertEdgeScroll"        "0"
            
            # use two finger scrolling
            Option          "VertTwoFingerScroll"   "1"
            Option          "HorizTwoFingerScroll"  "1" # set to 0 if you don't want horizontal scrolling
            
            # scroll speed, lower is faster
            Option          "HorizScrollDelta"      "10"
            Option          "VertScrollDelta"       "10"
    
            # minimum pressure motion factor
            Option          "PressureMotionMinZ"    "10"
    
            # touch and untouch thresholds, higher numbers if you like to push hard
            Option          "FingerLow"             "10"
            Option          "FingerHigh"            "20" # change to 30 or 40 if you like
    
            # borders based on output from synclient
            Option          "LeftEdge"              "20"
            Option          "RightEdge"             "1200"
            Option          "TopEdge"               "20"
            Option          "BottomEdge"            "370"
    
            # speeds, smaller number for a slower mouse
            Option          "MinSpeed"              "0.8" # 0.5 is very slow, 1.5 is very fast
            Option          "MaxSpeed"              "1.2" # up to 1.5 works ok
            Option          "AccelFactor"           "0.10"
    
            # tap times, change to suit your tapping habits
            Option          "MaxTapMove"            "100"
            Option          "MaxTapTime"            "100"
            Option          "MaxDoubleTapTime"      "200"
            
            # don't change these or two finger tap stops working
            Option          "TapButton2"            "3"
            Option          "TapButton3"            "2"
    
            # must be commented out or normal tapping wont work
            #Option         "TapButton1"            "0"
    
            # needed for disabled while typing fix  
            Option          "SHMConfig"             "on"
    EndSection
    
    Section "Device"
    	Identifier	"Configured Video Device"
    EndSection
    
    Section "Monitor"
    	Identifier	"Configured Monitor"
    EndSection
    
    Section "Screen"
    	Identifier	"Default Screen"
    	Monitor		"Configured Monitor"
    	Device		"Configured Video Device"
    EndSection
    
    Section "ServerLayout"
    	Identifier	"Default Layout"
    	Screen		"Default Screen"
    	InputDevice	"Synaptics Touchpad"
    EndSection

    /etc/modules includes:
    bcm5974
    usbhid

    /etc/modprobe.d/blacklist includes:
    blacklist usbhid

    Xorg.0.log snippet:

    Code:
    (EE) Synaptics Touchpad no synaptics touchpad detected and no repeater device
    (EE) Synaptics Touchpad Unable to query/initialize Synaptics hardware.
    (EE) PreInit failed for input device "Synaptics Touchpad"
    (II) UnloadModule: "synaptics"
    (WW) Configured Mouse: No Device specified, looking for one...
    (II) Configured Mouse: Setting Device option to "/dev/input/mice"
    (--) Configured Mouse: Device: "/dev/input/mice"
    (==) Configured Mouse: Protocol: "Auto"
    (**) Option "CorePointer"
    (**) Configured Mouse: always reports core events
    (**) Option "Device" "/dev/input/mice"
    kernel messages:
    Code:
    Jun 30 12:42:18 mbpu kernel: [  272.176926] usbcore: deregistering interface driver bcm5974
    Jun 30 12:42:30 mbpu kernel: [  275.535817] usbcore: registered new interface driver bcm5974
    Jun 30 12:42:40 mbpu kernel: [  278.759654] usbcore: deregistering interface driver bcm5974
    Jun 30 12:46:42 mbpu kernel: [  330.507230] usbcore: registered new interface driver appletouch
    Jun 30 12:47:01 mbpu kernel: [  334.941114] usbcore: registered new interface driver bcm5974
    Installed synaptic driver:
    0.14.7~git20070706-mactel1

    Kernel messages after rmmod and modprobe of bcm5974:
    Code:
    Jun 30 13:20:51 mbpu kernel: [  943.608044] usbcore: deregistering interface driver bcm5974
    Jun 30 13:21:00 mbpu kernel: [  945.555609] usbcore: registered new interface driver bcm5974

    I hope someone can help me out...this one last thing is all I need to complete this installation!

  2. #42
    Join Date
    May 2008
    Beans
    745

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

    I see... So both the penryn computers displays this reinitialization problem, related to suspend (to ram or disk?) and/or usb connect/disconnect. I tried reproducing this problem on my MBA by plugging and unplugging a usb mouse, but it is stable. Thus, my current conjecture is that this problem only occurs on the penryn computers. Now the question is: where is the source of this problem? It does not seem like anything one can fix in the bcm5974 driver.
    Last edited by kosumi68; June 30th, 2008 at 07:07 PM.

  3. #43
    Join Date
    Jun 2008
    Location
    Canada
    Beans
    28

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

    I wanted to say thank you for the great driver, I was working on a kernel-module myself but yours is much better

    I can confirm this works perfectly on a MacBook Pro 4,1 running Fedora 9 (kernel 2.6.25.6-57.fc9). In Fedora, usbhid isn't compiled as a module so I can't unbind the trackpad by blacklisting it. However, somebody showed me this trick:
    Code:
    echo -n '7-2:1.2' > /sys/bus/usb/drivers/usbhid/unbind
    ('7-2:1.2' is the USB ID of your trackpad. You can check the output of "dmesg" to find it out, but that should be the same for all MacBook Pro 4,1s sold in North America.)

    The code above will keep usbhid loaded, but simply prevent it from grabbing the trackpad before bcm5974 can. You can use this trick if you need to keep usbhid loaded for other devices (ie, external keyboard) but still want to use bcm5974 for the trackpad.

    Will double-finger-click=right-click and triple-finger-swipe be supported in a future versions? Also, do you have any plans to support gestures with Multi-Pointer X?

    Firewing1
    Last edited by firewing1; June 30th, 2008 at 06:54 PM.

  4. #44
    Join Date
    May 2008
    Beans
    745

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

    Hi magaio, there are several problems with your setup, it seems:

    * Try the quirk settings of a previous post in this thread, it is a better solution than blacklisting the usbhid. Your output shows the bcm5974 is not claiming the device, suggesting something else grabbed it first.

    * Please provide the output of lsusb for further checking and productID reference.

    * The xorg.conf has bad trackpad dimensions and is missing the VertTwoFingerScroll option. Please check a previous post in this thread for links to good settings.

    Something to start with

  5. #45
    Join Date
    May 2008
    Beans
    745

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

    Hi firewing, thanks for reporting! Neat trick also Using the quirks in a previous post in this thread is another way to go, it seems quite stable.

    Double-finger-click = right-click *is* supported, check the xorg.conf settings in this thread.

    Swiping... how is that one supposed to work?

    I never used MPX, so have not given it (that) much thought. I did get inspired by Jeff Han's demos, though

  6. #46
    Join Date
    May 2008
    Beans
    745

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

    Alex, thanks, I will give the mailing list a try.

    Lloeki, the next release will have source and binaries separated

  7. #47
    Join Date
    Apr 2006
    Beans
    Hidden!

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

    Hi everyone. I got it to work. I think I just fudged up the process at some point.

    Here's what I did:

    1. Uninstalled linux-image and modules packages
    2. Reinstalled linux-image and modules (current highest version)
    3. reinstalled xserver-xorg and xserver-xorg-core packages
    4. removed all files related to BCM5974 and the KO module
    5. blacklisted appletouch and usbhid
    6. added bcm5974 and usbhid to /etc/modules
    7. rebuilt bcm5974 from source and copied to the module folder from bits' instructions
    8. pasted the inputdevice section from the website over into my xorg.conf file
    9. rebooted
    10. yay


    Right click also works. SCORE. Perhaps we need a clearer install doc?

  8. #48
    Join Date
    Jun 2008
    Location
    Canada
    Beans
    28

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

    Quote Originally Posted by kosumi68 View Post
    Hi firewing, thanks for reporting! Neat trick also Using the quirks in a previous post in this thread is another way to go, it seems quite stable.

    Double-finger-click = right-click *is* supported, check the xorg.conf settings in this thread.

    Swiping... how is that one supposed to work?

    I never used MPX, so have not given it (that) much thought. I did get inspired by Jeff Han's demos, though
    What version of synaptics are you using? I have 0.14.6 and it says "MultiFingerButton" isn't recognized
    Edit: Hm, I enabled tapping in xorg.conf by uncommenting the TapButton2/3 lines and it works now, but only with tapping enabled. Double-finger + button click doesn't produce a right-click but I believe this is a bug in synaptics, not your driver

    For the swiping, a triple finger "swipe" (really just a left/right movement) moves back/forward in Firefox or the file browser. Apple also has a rotate gesture for pictures which is pretty neat.

    I have a technical question - is the finger detection done in synaptics or the actual kernel module? One thing I've noticed is two-finger taps don't always scroll (the mouse just jumps across the screen like on older laptops when you have one finger down and put another on the trackpad).

    It's tricky reproducing it, but one way I found that works most of the time is to put one finger on the trackpad, start moving it and then try to scroll up/down by adding a second finger. synclient shows that two fingers are detected which is odd...

    Firewing1
    Last edited by firewing1; June 30th, 2008 at 07:34 PM.

  9. #49
    Join Date
    May 2008
    Beans
    745

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

    Magaio, great! There are good wiki pages for both MBA and Penryn, but perhaps we could update them now as the procedure seems to stabilize somewhat. If you want to give it a go, please do - I dont mind a little help

    What is the output of lsusb on your computer, please?

  10. #50
    Join Date
    Apr 2006
    Beans
    Hidden!

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

    lsusb output:

    Code:
    Bus 007 Device 003: ID 05ac:8502 Apple Computer, Inc. 
    Bus 007 Device 001: ID 0000:0000  
    Bus 006 Device 001: ID 0000:0000  
    Bus 005 Device 003: ID 05ac:0230 Apple Computer, Inc. 
    Bus 005 Device 002: ID 05ac:8242 Apple Computer, Inc. 
    Bus 005 Device 001: ID 0000:0000  
    Bus 003 Device 002: ID 046d:c044 Logitech, Inc. 
    Bus 003 Device 001: ID 0000:0000  
    Bus 002 Device 001: ID 0000:0000  
    Bus 004 Device 001: ID 0000:0000  
    Bus 001 Device 006: ID 05ac:820b Apple Computer, Inc. 
    Bus 001 Device 005: ID 05ac:820a Apple Computer, Inc. 
    Bus 001 Device 004: ID 05ac:820f Apple Computer, Inc. 
    Bus 001 Device 003: ID 0a5c:4500 Broadcom Corp. 
    Bus 001 Device 001: ID 0000:0000

Page 5 of 29 FirstFirst ... 3456715 ... 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
  •