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 went fine without any problems. Remember to use the standard ethernet port for internet access, as Airport Extreme does not work (more below).
- CPU - MPC7447A CPU 1.67GHz (needs kernel patch to run at full speed)
- IDE hard drive
- Ethernet controller (Sun GEM)
- Trackpad (with driver)
- Temperature/fan control
- Battery status
- Firewire (reported to work, haven't tested)
- Sleep (suspend-to-ram) works on kernel 2.6.12-rc4 and later
I currently run the latest stock ubuntu powerpc kernel (2.6.12-9.23 as of this writing). If you wish to run the 184.108.40.206 kernel, you need to apply more patches to get the cpu, sound system and temperature sensors working.
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.
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
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.
There's a lot of special keys on the PowerBook. There are keys for:
- LCD brightness
- Volume control
- Num lock
- External display
- Keyboard illumination
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
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 (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.
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!
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).
- Benjamin Herrenschmidt's patch to make the CPU run on full speed.
- Colin Leroy's patch to make the temperature sensor work.
- Johannes Berg's patch to make the fn-key work.
- Stelian Pop's patch to make the fn-key work on kernels 2.6.12-rc4 and later.
- Marc-Christian Petersens patch to make the fn-key working on the 2.6.14 kernel.
- Benjamin Herrenschmidt's patch to make the sound system work.
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:
- Kernel 220.127.116.11-powerbook with all the above patches applied.
- Kernel 2.6.12-rc4-powerbook with the fnkey patch applied (Fn-key does not work properly).
- Kernel 18.104.22.168-powerbook with the fnkey patch applied (Fn-key does not work properly).
- Kernel 22.214.171.124-powerbook with Stelian Pop's fnkey patch applied.
- Kernel 2.6.13-powerbook with Stelian Pop's fnkey patch applied. (RECOMMENDED).
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.
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).
- Pbbuttonsd configuration (for pbbuttonsd >= 1.7.0)
- xorg.conf synaptics section using atp-0.5 and later.
- xorg.conf synaptics section using atp-0.4.
These webpages have helped me a lot:
- Linux on an Apple Powerbook G4
- Johannes Berg's PowerBook page
- Apple Touchpad Driver (atp)
- The debian-powerpc mailing list
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