This page describes how to install Debian on a MacBook Pro.
The first step is to install and run [http://www.apple.com/macosx/bootcamp/ Boot Camp]. You can skip the step that allows you to create a Macintosh Drivers CD. At the Start Windows XP Installation step, you should insert a Debian installation CD.
If you press return at the ISOLINUX prompt, the kernel may panic while enabling the IO-APIC IRQs ([http://bugs.debian.org/381719 bug 381719]). To avoid this, enter "install noapic" at the ISOLINUX prompt.
When you reach the "Install the GRUB boot loader on a hard disk" step, switch to the second virtual console by pressing ctrl-option-F2, press return to start the shell, and then enter
chroot /target apt-get install refit /target/sbin/gptsync /dev/sda
and enter y at the prompt.
Switch back to the first virtual console by pressing ctrl-option-F1 and select <Go Back> in response to the "Install the GRUB boot loader to the master boot record". Choose "Install the LILO boot loader on a hard disk" from the main menu and choose /dev/sda for the LILO installation target.
Kernel
linux-2.6 2.6.18-2 almost supports MacBook Pros out of the box: in order to use the synaptics driver, you'll need to set the following configuration option:
CONFIG_USB_APPLETOUCH=m
This has been reported as [http://bugs.debian.org/382298 bug 382298].
Once you've built and installed a kernel with this change, you'll need to ensure that the appletouch module is loaded before the usbhid module. You can do so by creating a file in /etc/modprobe.d that contains the following line:
install usbhid /sbin/modprobe appletouch && /sbin/modprobe --ignore-install usbhid $CMDLINE_OPTS
For some reason, this doesn't always work.
Using stock kernel and patch from svn
You can build your own kernel using the stock Linux kernel and the patches found in the [http://svn.sourceforge.net/viewvc/mactel-linux/trunk/ mactel-linux SVN]. Here is the steps to follow:
- download the source for the stock kernel from one of the kernel mirror,
- get the mactel-linux patches with svn:
svn co https://svn.sourceforge.net/svnroot/mactel-linux/trunk mactel-linux-trunk
- apply all the mactel-linux patches:
cd mactel-linux-trunk/kernel/mactel-patches-2.6.17 vi version.patch # if you are patching a kernel different than the svn one ./apply /where/you/have/the/kernel/sources
copy the config from the svn (trunk/kernel/mactel-patches-2.6.17/config-2.6.17-MBP) to your kernel dir, with name .config,
configure your kernel with make menuconfig, and control that CONFIG_FB_IMAC is not set,
build your kernel (fakeroot make-kpkg ...,
install your kernel (dpkg --install ...),
- reboot.
X Windows System
To use the X Windows System, install the non-free fglrx-driver package and, in the Device section of /etc/X11/xorg.conf, change the driver from "ati" to "fglrx".
Edit /etc/X11/xorg.conf and in the Module section, add the following line:
Load "synaptics"
Replace the contents of the ?InputDevice section with the "Configured Mouse" identifier with the following:
Identifier "Configured Mouse"
Driver "synaptics"
Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "MinSpeed" "1.0"
Option "MaxSpeed" "1.0"Once this is done, tapping the touchpad with two fingers should generate a middle-button click and tapping it with three fingers will generate a right-button click.
Note To have it working, you need to have a kernel with at least:
- CONFIG_INPUT_MOUSEDEV_PSAUX=y
- CONFIG_INPUT_EVDEV=y
- CONFIG_USB_HID=m
- CONFIG_USB_APPLETOUCH=m
Wireless
See the MacBook Wireless section.
Sound
See the MacBook Sound section.
cpufreq
See the MacBook cpufreq section.
infra red receiver
See the MacBook infra red receiver section.
iSight
See the MacBook iSight section.
Plan
Here's what needs to be done:
- Figure out how to use a free software graphics driver for the X Windows System.
- Figure out how to make tapping the touchpad with a single finger generate a left-button click.
- Figure out how to install ELILO.
- Figure out how to make the touchpad speed default to a usable value.
- Figure out how to suspend and resume.
- Figure out how to use the remote control.
