Ubuntu on the PowerBook G4

I recently bought a brand new PowerBook G4 15" 1.67GHz with SuperDrive (a powerbook5,6). My plan was to run Ubuntu on it. Here are my experiences:

Running Ubuntu 5.10 Breezy

Installation

Installation went fine without any problems. Remember to use the standard ethernet port for internet access, as Airport Extreme does not work (more below).

What works

Kernel

I currently run the latest stock ubuntu powerpc kernel (2.6.12-9.23 as of this writing). If you wish to run the 2.6.11.8 kernel, you need to apply more patches to get the cpu, sound system and temperature sensors working.

See the file section or Jochen Voss' excellent powerbook webpage at http://seehuhn.de/comp/powerbook/index#kernel for details.

Update: Stelian Pop's fn-key patch has, as of version 2.6.12-9.15, been included in the stock ubuntu kernels, replacing Johannes Berg's old one (see my bug #16134). Thus there is no reason to run any of my custom kernels anymore if you're on Breezy! :D

Update: There has been some issues regarding the fn-key in kernel 2.6.14 and later. Marc-Christian Petersen was so kind to mail me a patch which fixes this on the 2.6.14 kernels. I haven't had the time to test it yet, but reports at the debian-powerpc mailinglist indicate that it's working. See the file section for details.

Trackpad/touchpad

The trackpad does not work out of the box, but with Johannes Berg's experimental touchpad driver it somewhat works. It is extremely sensitive, making the mouse pointer bounce around. Setting the THRESHOLD to about 35-40 in the userspace daemon (driver.c), it gets less bouncy but it makes the trackpad less sensitive. I.e. you must press harder to get any reaction. After a while though, the gets less usable as the mouse pointer starts to jump around by itself! It's interesting though, if you leave the THRESHOLD on 20, you can actually hold your hand above the touchpad and see the pointer bounce around! Pretty sensitive hardware!

Update: Stelian Pop from the debian-powerpc mailinglist has developed a driver for the touchpad derived from Johannes Berg's appletrackpad driver. I've tested it, and it works very well, especially when using the synaptics driver. It's still under development, but it's perfectly usable. The Latest version of the driver is atp-0.08. I've been using version 0.04 for a while, and when I tried the version 0.05, I had some problems with the tapping sensitivity. I haven't had the time to fiddle around with it, so I'm still running 0.04. I will investigate.

Update: I'm now running version 0.07 of the appletouch driver and it works perfectly. I had to change my xorg configuration in order to get versions 0.05 and above working as I wanted.

Update: The appletouch driver has, as of version 2.6.12-9.14, been included in the stock ubuntu kernels!

Currently, I've set up synaptics so that I can right-click by tapping the upper right corner of the touchpad and middle-click by tapping the upper left corner of the touchpad. Neat :) You can find an excerpt from my xorg.conf at the files section.

For more information about the atp driver and how to set up synaptics for it, go to http://www.popies.net/atp

Keyboard

As you might already know, the keyboards that come with Macs are far from UNIX-firendly. Jochen Voss has made some key bindings for British (gb) and German (de) models (requires fnkey kernel patch). I modified the British version and made a new XKB symbol map for my Norwegian keyboard.

Special keys

There's a lot of special keys on the PowerBook. There are keys for:

I haven't gotten any of these keys to send a different keycode than the function keys they're on. Therefore, I'm using control as the modifier for these buttons. Making them work requires pbbuttonsd, which also deals with the power management. It requires some tweaking to work though, but I've managed to get it working pretty nicely. I stumbled into one problem though: closing the cover. When running pbbuttonsd with a default config, closing the cover first blanked the screen for a second, then turned it on again! Now, when opening the cover again, the screen goes blank! Now this is handy! I found that setting the configuration entry UseFBBlank to "no" fixed the problem.

The eject button works, but it won't eject any cd that is still mounted. Unmounting the cd and then pressing eject works, but I find it a bit faster just to right-click on the cd and choose "eject" :P

I haven't gotten the keyboard illumination nor the light-sensors to work yet though. Johannes Berg has reported that he has this working out-of-the-box on his powerbook. I do not know why this is not working on mine though. If anyone got this working, please let me know!

Update: After a little mailing to the debian-powerpc mailinglist, I found out that the problem was that I didn't have the i2c-dev module loaded. Loading it and restarting pbbuttonsd made the keyboard light up! Brilliant!

The power button works if you apply Johannes Berg's pbbuttonsd patch.

Update: No patch needed if you run pbbuttonsd >= 1.7.0! Pbbuttonsd now generates a fake KEY_POWER (116) when you push the PMU based power button. Just use 116 as the keycode anywhere in the config file!

What doesn't work

Airpot Extreme

This is unlikely to get supported in the near future, but there's an interesting project going on which aims to reverse engineer the BCM4301 chipset at http://linux-bcom4301.sourceforge.net/. There's also a petition going on with loads of signatures, but it doesn't seem Broadcom is paying any attention to it.

Therefore, I ordered a wireless PCMCIA card instead (a D-Link DWL-G650), which works with the madwifi drivers. I guess bying another wireless card is the only way to get wireless working at this point.

Update: The DWL-G650 card just broke down! It makes my kernel OOPS, and there's no way to debug it because the madwifi drivers are partly proprietary :( I guess I'll have to get a new card now with open source drivers. Sigh. This has proven more difficult than I initially thought. Anyone have any good CardBus/PCMCIA 802.11g wireless cards with native open linux drivers they want to recommend?

Update: The guys working on the BCM43xx driver is making progress! On a post to the debian-powerpc mailinglist, Johannes Berg says: "Yesterday, the free driver for the first time received data." Congratulations to all of you working on the bcm43xx project! Great work!

3D acceleration

3D acceleration (ATI RV350 [Mobility Radeon 9600 M10]) is not supported. ATI haven't (and are not planning to as far as I know) released any drivers for this card for the powerpc architecture.

Update: There's an effort to make this work at http://r300.sourceforge.net/. I haven't had the time to test it myself yet.

Other problems

I've had some problems mounting HFS+ filesystems. It seems that if they're not umounted properly, they won't mount rw. The only thing I've found that fixes this, is to boot into MacOS X and repair the disk using the Disk Utility.

Update: I recently got a mail from Jean-Paul Blaquiere about this. He has found that you can mount a dirty HFS+ filesystem by unmounting it, then using the hfstools utility, running `hpmount /dev/hdxx` then `hpumount`, which then resets the 'unmounted cleanly' flag on the partition. I've tested this on my internal HFS+ partition, which somehow reset the 'unmounted cleanly' flag on the partition. I got loads of errors when running hpmount though, and it didn't seem to be working, but suddenly I could mount the partition rw with mount! Thank you, Jean-Paul!

Files

Kernel

Patches

Note: All of these patches, except the fnkey patch, are already applied to the 2.6.12-rc4 kernel which also offers sleep (suspend-to-ram).

Pre-packaged kernels

These are kernel packages I've compiled and run on my powerbook. I do not guarantee that they work on your computer! Use at your own risk! With that said:

Note that the latest stock ubuntu 2.6.12-9-powerpc kernel now has all the needed patches applied, so things should generally work out-of-the-box now.

X keybindings

I made a symbol map for my Norwegian keyboard while aiming for the maximum PC-compatibility. Note that you need Jochen Voss' key bindings for these to work.

After applying Jochen Voss' key bindings, place these two files in their corresponding /etc/X11/xkb/ directory, overwriting the first file (i.e. /etc/X11/xkb/compat/powerbook and /etx/X11/xkb/symbols/powerbook/no).

Miscellaneous

Links

These webpages have helped me a lot:

Conclusion

As you can see, there are a few problems when running Ubuntu Linux on a powerbook. There has been many fixes, improvements and new drivers to linux regarding the powerbook5,6 since the first version of this document was published. As a result, most hardware should now work out-of-the-box on Ubuntu 5.10 Breezy! (See What doesn't work for details on unsupported hardware.)

Please let me know if there's anything you've gotten working which I haven't (or vice versa)...

- Johannes H. Jensen <joh at pseudoberries dot com>

Last updated Sun Nov 13, 2005

Ubuntu on the PowerBook G4 (powerbook5,6)