Linux on a G4 Mac Mini

December 21, 2011

I wanted to put Linux on this old Mac Mini so I can use it a file server. Some install instructions suggested burning a CD, but I don't have a CD burner handy. Others suggested booting off a USB stick, but the newer Debian/Ubuntu installer docs removed that section, and it's not clear how to partition the USB device. What to do?

It turns out it's relatively easy to completely install via the network due to Open Firmware's tftp support. You'll need a pretty standard networking setup (DHCP) along with a Linux box and a network wire for the Mac.

Start by searching for [debian netboot], not to be confused with netinst: the former is how to net boot the installer, the latter is minimal CD images that download the remainder of the install from the internet. What you want is the netboot version of the netinst installer, and you'll find it in the "network boot" section of the above page.

For a G4 Mac Mini, follow the link to the powerpc images, then navigate to powerpc/netboot and download the following files into a directory:

(How to remember this file list? You need yaboot.conf and all files it references; it's a short text file.)

Next, install tftp on your hosting machine. Run it like:

sudo in.tftpd -L -s path/to/files

It runs as root due to the port it uses, -L puts it in foreground mode, and -s makes paths relative to the directory you give it.

To verify that tftp works, try a command like:

tftp localhost -c get yaboot.conf

Fix your setup if that command results in an error (for example, I learned the hard way that the Mac doesn't like pulling files from a subdirectory).

Then boot the Mac into Open Firmware by holding Windows-Alt-O-F (that's Command-Option-O-F on a Mac keyboard) as it boots. At the prompt, tell it to fetch yaboot:

boot enet:192.168.1.114,yaboot

(adjust the IP as necessary).

From that point, just follow the menus. Simple.

(But actually it was not so simple to figure out the above. If you run into yaboot errors like can't read elf e_ident/e_type/e_machine info or the installer being unable to detect your disk, I found both of those were solved by using the latest version of Debian, and not Debian stable or the most recent PPC Ubuntu.)

PS: wow was OS X slow on this thing. I can't believe it was considered tolerable at the time of release.