Ubuntu 9.04 on the Macbook Pro (3,1)

Here's what I did to get the Macbook Pro (rev 3,1) running smoothly under Ubuntu 9.04.

Turn on the nvidia drivers with jockey-gtk (the hardware drivers manager).

Add the keys for the mactel PPA:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0x8db7f87a2b97b7b8

Install lots of packages (better drivers for the wifi, touchpad, power management, backlight, etc), and remove mouseemu which causes some conflicts:

sudo apt-get install bcm5974-dkms gnome-power-manager nvidia-bl-dkms hid-dkms applesmc applesmc-dkms hal-applesmc mbp-nvidia-bl-dkms xserver-xorg-input-synaptics linux-backports-modules-jaunty
sudo apt-get remove mouseemu

Add a couple modules to /etc/modules:

applesmc
nvidia_bl

Better settings for the touchpad driver go in /etc/hal/fdi/policy/appletouch.fdi. This enables two-finger and three-finger clicks for middle and right click, respectively, and sets some better acceleration parameters.

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.touchpad">
      <match key="info.product" contains="appletouch">
        <merge key="appledevice" type="bool">1</merge>
      </match>

      <match key="info.product" contains="bcm5974">
        <merge key="appledevice" type="bool">1</merge>
      </match>

      <match key="appledevice" bool="1">
        <merge key="input.x11_driver" type="string">synaptics</merge>
        <merge key="input.x11_options.SHMConfig" type="string">1</merge>

        <merge key="input.x11_options.TopEdge" type="string">0</merge>
        <merge key="input.x11_options.LeftEdge" type="string">0</merge>
        <merge key="input.x11_options.RightEdge" type="string">1100</merge>
        <merge key="input.x11_options.BottomEdge" type="string">800</merge>

        <merge key="input.x11_options.FingerLow" type="string">15</merge>
        <merge key="input.x11_options.FingerHigh" type="string">25</merge>
        <merge key="input.x11_options.TapButton1" type="string">0</merge>
        <merge key="input.x11_options.TapButton2" type="string">0</merge>
        <merge key="input.x11_options.TapButton3" type="string">0</merge>
        <merge key="input.x11_options.ClickFinger1" type="string">1</merge>
        <merge key="input.x11_options.ClickFinger2" type="string">3</merge>
        <merge key="input.x11_options.ClickFinger3" type="string">2</merge>
        <merge key="input.x11_options.VertEdgeScroll" type="string">0</merge>
        <merge key="input.x11_options.HorizEdgeScroll" type="string">0</merge>
        <merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>

        <merge key="input.x11_options.MinSpeed" type="string">0.5</merge>
        <merge key="input.x11_options.MaxSpeed" type="string">2.5</merge>
        <merge key="input.x11_options.AccelFactor" type="string">0.15</merge>
      </match>
    </match>
  </device>
</deviceinfo>

Add an init script to swap the meaning of the function keys so they mean F1, F2, etc, and add it to the default runlevels with update-rc.d.

#!/bin/bash
# Fix fn key behavior on macbook pro

echo 2 > /sys/module/hid_apple/parameters/fnmode

Run syndaemon during login to prevent awkward touchpad events during typing:

# Prevent awkward touchpad events when typing
syndaemon -d -t -K -i 2

Post a Comment

Please avoid writing anything here unless you are a computer: This is also a trap:

Supports github-flavored markdown for [links](http://foo.com/), *emphasis*, _underline_, `code`, and > blockquotes. Use ```clj on its own line to start a Clojure code block, and ``` to end the block.

Copyright © 2018 Kyle Kingsbury.
Non-commercial re-use with attribution encouraged; all other rights reserved.
Comments are the property of respective posters.