So, I decided to install Linux on my Powerbook G4 12″. Why? (Feel free to skip to the real install notes while I rant!)
Recently, I’ve become slightly bored, slightly bugged with OS X. Nothing much wrong with OS X, just that I tend to do most of my work on Linux, and switching context back to the Mac takes brain cycles. Even though nearly everything works the same, there are minor, but painful differences. How you copy and paste text to and from Terminal / iTerm, gVim behavior, virtual desktop switching – minor things but very irritating and distracting at times. There are three main computers I use – my desktops at home and lab and my Powerbook and finally, all three run Fedora.
I’ve got the linux-ppc urge for quite some while now, I guess the last straw was the Apple battery recall fiasco, my Powerbook, after nearly a month of turning in the battery is still battery-less and therefore nearly use-less. So I didn’t have much to lose by experimenting. And I came across this post after which I decided to take the plunge.
PPC is not x86
Just in case you’re planning to try this out on your G4/G5 based Mac – these computers have a different architecture called powerpc or ppc, and aren’t as well-supported for Linux as the x86 architectures of AMD or Intel processors.
Ubuntu vs. Fedora
There are a number of resources online for installing Ubuntu on ppc architectures, but relatively few for Fedora. I was initially tempted to go for Ubuntu because of this but I really prefer Fedora. No harm in trying (we Linux folks are supposed to do that aren’t we?) and I could always reinstall Ubuntu if Fedora didn’t work out. Like I said, my Powerbook without a battery was just a toy to play with.
My original configuration was a single partition containing my entire Mac OS X partition. I wanted to make a dual-boot system (didn’t know how well Linux would work out and OS X is useful for PowerPoint). There are a number of paid utilities and some free/shareware ones to resize an existing hard drive but I didn’t find anything that I could trust. I figured after more than 18 months my Powerbook could use a OS X reinstall anyway, and so I backed up my data and reinstalled Mac OS X, leaving about 15 GB in free space on my disk for Linux.
I burned myself a FC5 ppc DVD and set to work. To boot from CD, you need to restart your mac and hold the ‘C’ key while starting up. First hitch: touchpad didn’t work in the graphical installer for some reason (it started working just fine after installation – on it’s own). I plugged in a USB mouse which worked fine. For partitioning, I chose to manually partition. The first thing you need to create for a Powerbook is an Apple bootstrap partition, of size exactly 1 MB (any larger and the installer will complain). Following this, you can create the usual partitions – I created swap, root and home partitions. The rest of the partition went smoothly. I foolishly unchecked the eth0 wired-LAN connection that FC5 detected (don’t do this). On my Powerbook, the system clock is set to UTC and timezone is offset, so I checked that.
Wired LAN is detected in Fedora by default. I had mistakenly unchecked the device during install, I got it back running the
neat command. Then, I plugged in an ethernet cable and did an
ifup eth0 to breathe the fresh air of the Net.
The good news is – Airport Extreme does work – relatively painlessly. What you need to do:
- Update your kernel to 2.6.17 or later:
yum update kernel
yum install bcm43xx-fwcutter(firmware cutter – does some stuff to the wireless card firmware)
- Download firmware:
bcm43xx-fwcutter -w /lib/firmware wl_apsta.o
cp /usr/share/doc/bcm43xx-fw-cutter-004/modprobe.bcm43xx /etc/modprobe.d/
system-config-network, click on add device, and choose the Broadcom Wireless LAN device and your desired settings, and activate.
And wireless works!
Fedora detected the sound card. To get it working though I had to load the snd-powermac module by running:
modprobe snd-powermac every startup. And somehow, putting this in modprobe.conf etc. did not work. Finally what worked was adding
/sbin/modprobe snd_powermac to the file /etc/sysconfig/modules/udev-stw.modules. Note the underscore in the latter addition as opposed to the hyphen that I was using earlier. I don’t really understand this, and for another guy I spoke to at #fedora-ppc the hyphen was what worked. Anyway, this got the sound module auto-loaded at startup.
One more thing – sound is muted by default. I needed to run alsamixer at the prompt and “mute” a volume bar called “auto-mute” (don’t ask me) before sound would work. Also, the volume control is strange, it needs to be set to at least 75% for me to hear anything.
The touchpad, while not detected during the installer, works fine once you reboot after installation. However, the standard touchpad leaves a lot to be desired, especially since the Powerbook has only one click button. Fortunately, the synaptics driver can be used to give good touchpad functionality quite easily. The synaptics driver was included with my FC5 install, if not you can get it by
yum install synaptics. Now edit the file /etc/X11/xorg.conf. Insert the following in the “ServerLayout” section:
And then add the following lines somewhere in the file:
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto-dev"
Option "LeftEdge" "0"
Option "RightEdge" "850"
Option "TopEdge" "0"
Option "BottomEdge" "645"
Option "MinSpeed" "0.4"
Option "MaxSpeed" "1.5"
Option "AccelFactor" "0.05"
Option "FingerLow" "55"
Option "FingerHigh" "60"
Option "HorizScrollDelta" "0"
Option "VertScrollDelta" "30"
Option "UseShm" "true"
Option "SHMConfig" "on"
This gives you the ability to scroll vertically using the right side of the touchpad, middle click by tapping two fingers on the touchpad, and right click by tapping three fingers on the touchpad. The values for MinSpeed, MaxSpeed and AccelFactor are what I am comfortable with, and you may want to experiment. I made a couple of modifications to this – the Apple touchpad single-click is too sensitive for me and I end up inadvertently clicking a lot of times, so I disabled the single click tap (single click is only by pressing the button below the touchpad). Also, I find it more convenient to right click using two fingers. These modifications can be made by inserting the following lines into the code above:
Option "TapButton2" "3"
Option "TapButton3" "2"
Option "MaxTapMove" "0"
Sun doesn’t have a release of Java for PPC. gij (gcc-java) is hopeless for GUIs. Fortunately, IBM has released a Java 5 SDK for PPC here. You want the 32-bit iSeries/pSeries file. Once you have it, simply unpack it and put it somewhere appropriate, like /usr/java. To install the Java plugin for Firefox, simply go to /usr/lib/firefox-1.5.x.x (depending on your firefox version) and make a symbolic link:
ln -s /usr/java/jre/bin/libjavaplugin_oji.so
So far this version of Java has been quite stable, running fine on my internet banking site and running applications such as JabRef.
yum install apmud closing the lid suspends to RAM. However, this doesn’t work in KDE for me (yet).
Mounting the OS X partition
Just make sure you have hfsutils installed and it’s as simple as mount -t hfsplus /dev/hda3 /mnt/macosx
Flash doth not work
The ways around this are obscure and IMHO not worth exploring. You can run the normal flash player in some emulation environment called qemu, though apparently only Gentoo users have been able to do this. You can try OSS implementations of flash like gnash. Let me know how you fare :)
Yet to try
External monitor support, remapping F1-F5 keys, hibernate. I’ll update this post if I try out any of these. If you’ve had experience with these, do leave a comment.
The bottom line is that I’m quite impressed. I expected to face a lot more problems getting a workable system on linux-ppc. I have a system now that I can fully work on (except for MATLAB, which doesn’t support linux-ppc platform).