I now have a 2008 unibody macbook. Here's some preliminary information.
Installation of Debian was fairly painless with the Debian Installer from Dec. 18, 2008 after I realised that my CD was broken and barely booted, and the packages on it certainly couldn't be trusted. The only thing was that the installer refused to shrink my OSX installation partition, but parted did it just fine from a shell and the installer then was happy with the new layout and created new partitions.
Despite asking it to install grub to the MBR, this didn't work, probably since it's GPT partitioned. I then proceeded to install refit from OSX, which worked on the second attempt (really!), but would not show Linux. After going into the partition tool in refit itself, Linux showed up. Having two bootloaders is a bit odd, but unfortunately required.
I compiled a 2.6.28-rc8 based kernel and upgraded debian to experimental. Works fine. Config here.
The machine came with a 160G HD that I wanted to replace. Be sure to check out the ifixit.com MacBook Unibody disassembly. Mind you, I had to buy a Torx T6 to do this.
Wireless device swap
Couldn't find the wireless device inside the laptop. It is in the screen assembly, and even if you'd open it you'd find it has a custom form factor (or so I was told by somebody who should know.)
wireless: Broadcom 4322 - not working with Linux (yet, doing reverse engineering)
sound: hda-intel with NVidia chip/realtek codec, load with model=mbp3, and turn all controls but master to the maximum, then play with the controls, set the channel control to 6ch (no sound on 2ch setting).
ethernet: forcedeth, works fine, kernel fix in 2.6.29 to not wake up 100x per second
graphics: nvidia, vesa driver works with lots of prodding in xorg.conf
[...] Section "Device" Identifier "Configured Video Device" Driver "vesa" EndSection Section "Monitor" Identifier "Configured Monitor" HorizSync 42-50 EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Subsection "Display" Depth 24 Modes "1280x800" EndSubSection EndSection [...] and will otherwise refuse to use the correct resolution. Will try nouveau and things later.
backlight: working, need patches http://lkml.org/lkml/2008/12/10/336 and http://lkml.org/lkml/2008/12/12/293 (no longer apply against 2.6.29-rc1, fixed up versions on https://johannes.sipsolutions.net/patches/kernel/all/)
For earlier MacBooks I helped figure out how the iSight firmware is loaded. This doesn't seem to be necessary here, uvcvideo seems to just detect it, but it logs a lot of "unknown code" messages when used (fixed in kernel 2.6.29-rc1).
Bluetooth doesn't seem to work. http://bugzilla.kernel.org/show_bug.cgi?id=12521
It actually works after
hciconfig hci0 reset
Sometimes the machine fails to shut down, or takes a very long time to shut down. From the Debian Installer, shutting down would not even work at all but hang with the machine beeping ("Beep Beep Beep <pause> <repeat>") in a rather high volume and low pitch. Some firmware thing?
Suspend cannot work due to the NVidia graphics chip. This I really need to fix for the machine to be usable for me.
Hibernate works fine, except for http://bugs.debian.org/512291.
- http://bugzilla.kernel.org/show_bug.cgi?id=12445 [reboot problem]
- http://bugs.freedesktop.org/show_bug.cgi?id=19545 [nv Xorg please support 9400M]
- http://bugzilla.kernel.org/show_bug.cgi?id=12449 [uvcvideo memory allocation problem]
- http://bugzilla.kernel.org/show_bug.cgi?id=12521 [bluetooth not working]
- http://bugs.debian.org/512291 [can't enter resume key for uswsusp with internal keyboard]
[this page is linked on http://tuxmobil.org/apple.html]