Netbooting Your VAX
Posted March 5, 2019
I've recently started refurbing my VAX 4000/200 in preparation for a talk I'll be giving at BSDCan this coming May. I must say that the process has been miserable, mostly due to outdated and/or misleading instructions. The problems, though, aren't the fault of the authors of the instructions. Things change, and the userbase for VAXen is pretty damn small.
Recently I acquired the annoyingly rare Emulex UC08 distribution panel for the old VAX 4000. The Emulex UC08 is a Qbus SCSI controller that has one terribly annoying feature: its male HD50 plugs. When I first bought it, I figured it just needed some gender changing to connect to a SCSI device. Of course, though, Emulex didn't design the pinouts that way. You either needed to make a custom SCSI cable, which... no, or get the distribution panel that came with this monstrosity. I finally found one on eBay, which meant I would no longer need to run the VAX 4000 diskless. It could have a disk !
...which leads to these summarized instructions for netbooting this damn machine to install NetBSD. The NetBSD instructions leave out a few important details on how to get this all going, however. Let's walk through the steps:
1 - Install and Configure a NetBSD Server
Okay, all the instructions that NetBSD provide talk about how to set up your Linux, FreeBSD, or whatever machine as your host server to boot your VAX. Just don't even bother. You need a NetBSD machine. This point isn't negotiable.
The VAX uses MOP, or Maintenance Operations Protocol, to netboot itself. NetBSD long ago implemented a MOP daemon, mopd, that can provide MOP images to a VAX. This daemon has been ported to just about anything that looks a bit UNIX-y. It even appears in the Debian and Raspbian repositories.
However, the daemon that ships with NetBSD includes a feature that none of the others do: it works. Specifically, NetBSD provides a bootloader for VAXen that is just labeled "boot" on their FTP servers. This file, though, isn't a MOP image. Before delivery to a VAX, it has to "be converted to a MOP image" or whatever. The details aren't important. The Linux version of mopd can't perform this conversion due to a missing executable because the Linux libelf apparently isn't compatible with the NetBSD libelf. There's a good chance that my explanation here is wrong, but it's not the point.
The point is that you need a NetBSD server to netboot your VAX. Save yourself hours of trouble and flash NetBSD onto a SD card, throw it in a Raspberry Pi with a wired ethernet connection, and get started.
2 - Get Your Files in Order on Your Server
Before proceeding, make sure you've downloaded that bootloader and any other necessary files for this task to your server for the VAX. The NetBSD instructions are pretty thorough about what you'll need. Basically, if you want the VAX to run diskless fulltime, you'll need all the sets. If you're just trying to netboot the installer, you actually just need install.ram.gz on the server. Don't wait on this step because the next step is:
3 - Isolate Your VAX and Its Server on an Ethernet Switch
...or hub or whatever. What you're trying to do is keep the VAX from speaking with any DHCP servers on your network. Suprisingly, most documentation about netbooting fails to mention this. Both your server and the VAX should not have a wire leading upstream to your gateway and/or other DHCP servers for now . My VAX seems to just love DHCP servers that don't actually help it netboot.
If you're netbooting the VAX with the intention of installing NetBSD, you'll need to plug that switch back into the network soon enough.
4 - Follow the NetBSD Diskless Instructions
Now you can proceed with the NetBSD instructions to complete the netboot process. If you're using a NetBSD server like you should, booting the VAX should actually be rather quick. In my experience, trying to do so with Linux (you can sort of do it...) is unreliable and intermittent at best, so don't bother trying.
5 - Netbooting to the Installer? Reconnect to the Net
If you're trying to netboot the installer like myself, you'll now need to reconnect your little, isolated, two machine network to the Internet. Once I reached the step where sysinst wanted to know where to get the sets, I pysically plugged a cable back into the switch and selected "FTP." There might be some network configuration now, but if you've set up your server properly, there won't be much. You could pre-download the sets for the installer, but I don't really see the point. It's just as easy to let the VAX do it.
6 - Get a Drink/Do the Laundry/Go to Bed
On my VAX 4000, decompression is painfully slow. Installation takes forever, so go do something else. Everything is going to take some time.
That's really it ! Once I realized my mistakes (trying to netboot from a Linux server, isolating the VAX from other DHCP servers), installationwas simple and straightforward. If you're going to try to use pkgsrc, though, get ready for a real wait.