NetBSD on a PowerMac 5500

I seriously have the Mac bug. I've somehow managed to come into possession of 4 PowerMac 5500's. These little guys are kinda like the predecessor to the iMac. Take a look at it here

I decided I'd give NetBSD a shot, since these guys won't run OSX, and really don't even run 9.x that well. Besides, NetBSD runs on just about anything, and is pretty fast on old hardware. It is a supported model, but there're a few quirks that made this a little hairier than a typical NetBSD install. The documentation for doing the install was a bit unclear, so I'm recounting the process that got me going. Here are the basic steps I took...

  1. Flash the Parameter RAM (PRAM)
  2. Install MacOS 8 and set the proper NVRAM variables to overcome 5500 quirks
  3. Install NetBSD
  4. Reconfigure NVRAM settings

Getting Started

For this project, I needed:

  • an ISO image of the NetBSD 1.6.2 MacPPC
  • a pair of floppies to boot from
  • some way of writing out the floppies (I used rawrite on my XP box)
  • one PowerMac 5500 with mouse and keyboard
  • the BootVars utility
  • install disk of some previous version of MacOS (I used 8.0)

Flashing the PRAM

This is the easy part. Boot the machine while holding CMD+OPTION+P+R. This sets the NVRAM (PRAM) back to the factory defaults.

Unfortunately, this also means that Open Firmware sets the screen to black, so you can't see what you're typing. This can be handled in two ways. First, you can attach a null modem cable to the serial port and make the changes to NVRAM from there. However, my only Mac serial cable is in use, and zip-tied to a wire shelf. I opted for the more roundabout option...

Now, of course, the machine I'm using has some funky issue with Open Firmware (OFW). For some reason, the OFW shell locks up at random times. In MacOS, it's fine, and so far in NetBSD, there aren't any lockups. I googled for some insight, but didn't find anything that was applicable. So, if the OFW shell locks up, just reboot the box and try to type your commands as fast as possible :).

Setting the NVRAM Variables

Again, if you have a Mac serial cable, save yourself some hassle and attach a null-modem cable to the serial cable and use the serial console. Otherwise, install an earlier version of MacOS on the target machine (I used 8.0), and then download BootVars.

Once you've installed MacOS (not going to get into details about that here), download BootVars, and change these settings(you'll have to show all variables to edit some of these):

  • uncheck auto-boot
  • set real-base to F00000
  • set load-base to 600000
  • set output-device to "/bandit/ATY,264GT-B"
  • set input-device to "kbd"
  • check "use NVRAMRC"
  • set nvramrc to "cpoke 0a7 0f3000032 cpoke 093 0f3000033 cpoke 03e 0f300003a". The documentation shows multiple lines, one for each cpoke line, but they can be entered as one line via BootVars.

At this point you may want to save the config, in case something was mistyped, and you have to come back to BootVars. This will save you some hassle, but if you're successful, you won't need the settings again. Once you've saved the settings, you can write the new settings to NVRAM.

Installing NetBSD

The first thing you'll need is the NetBSD ISO image. Burn this to a CD and from it, make the boot floppies. Due to some strangeness in the version of OFW, the system cannot be booted from the CDROM drive, so it is necessary to boot from floppies. I used a windows PC and rawritewin to create the boot floppies. If you have a unix-like machine around, you can use dd with the following commands(the floppy images are in the "macppc/installation/floppy" directory of the ISO image):

dd if=boot1.fs of=/dev/rfd0a bs=36k
dd if=boot2.fs of=/dev/rfd0a bs=36k

Once you've got your boot floppies prepared, and your CD burned, you're ready to boot into Open Firmware and get the installation going.

Reboot the Mac. If your NVRAM settings are correct, you should be dumped to the following prompt:

0 >

If not, then your output-device variable may not be correct.

from the prompt, type:

0 > boot fd:0

If everything is set properly, you should get the familiar boot screen for NetBSD. You then follow the normal install process. It's interesting to note that the current (1.6.2) version of the MacPPC port requires the entire disk, according to the documentation.

Final NVRAM Settings

Okay, at this point, you can reboot the Mac. It should dump you to the OFW prompt, and now you just have to figure out the boot-device and boot-file parameters. I fooled around with a lot of the examples in the docs, but I finally came up with workable values. At the OFW prompt, type these 4 commands:

setenv boot-device ata/ata-disk@0:0
setenv boot-file /netbsd
setenv auto-boot true

This tells Open Firmware where to load the kernel from. The 3rd command avoids dumping you to the OFW prompt, and you should get a smooth boot into NetBSD after the 4th command.

I hope this was helpful. If not for you, it at least reminds me what to do when I get around to installing the other 3 5500's sitting around here :)