NetBSD on an Intel-based Mac mini

2006/10/07

Categories: GeekStuff

Quick summary: NetBSD-current loads and runs beautifully on the Intel-based Mac mini.

To do this, you need Boot Camp from Apple. In my case, my goal was a single-boot NetBSD-only system. If you follow these instructions, you will wipe out your Mac OS installation, including all your data.

Step 1: Install Boot Camp. You have to have a fairly recent version of OS X; the 10.4.5 install disks I had handy didn’t work, but 10.4.8 did. That’s a 400MB update used to run a single program.

Step 2: Run the Boot Camp Assisstant. Doesn’t matter much how you partition the disk if you’re going to turn it all into NetBSD. Does matter if you plan to dual-boot.

Step 3. Reboot, and put in a -current CD. You can’t tell Boot Camp to use that CD directly, because it will only work with a recognized Windows XP install CD. However, when the machine is rebooting, you can hold down option and the machine will ask you which disk to boot from. Pick the CD. (Boot Camp will call it “Windows”, which is a sign that they really haven’t thought about other applications yet.)

Step 4: Run the installer. In my case, I jumped out to /bin/sh before starting the real install, and manually updated the fdisk table, removing the Apple HFS and FAT filesystems (but not partition 1, which holds the Boot Camp magic cookies), and creating a new partition, using the remainder of the disk, for NetBSD. (Type 169, which is the default.) Once that’s done, the standard NetBSD installer just works.

If you just follow the prompts, you should end up with a serviceable machine which has at least booted and will let you log in. Here’s what might be problematic:

1. The msk0 ethernet device may behave abysmally, producing cripplingly bad performance.
2. The default X server can’t drive the Intel built-in graphics hardware as anything but a generic framebuffer.
3. No SMP support.

Building a kernel with SMP, and uncommenting the acpi device in the kernel config file, resolved problems 1 and 3 for me. I didn’t uncomment any of the “at acpi” devices, just the acpi root device; this was apparently enough to correct the ethernet and SMP problems.

To get X working, you need the X.org server. I used the xorg packages in pkgsrc: xorg-server, xorg-clients. Of course, this omits xterm, and won’t run because there’s no fonts. The fonts are in pkgsrc/fonts, not pkgsrc/x11, even though the server won’t run without them.

That’s where I’m at now. Ethernet working, wireless working. Haven’t done any testing with firewire or bluetooth.

You can get cheaper PC hardware, but I’ve seen nothing even close to comparable for small and quiet. If you are sick of the sounds of computer fans, this is your best bet ever.