Installing Unix V7M: Part I

Installing 2.11BSD was a great way to get a modern-ish Unix running on the PDP-11, but I'd always wanted to try a more historical version. Unix version 7 is considered by many to be "the last true Unix" as it was the final version released by AT&T before the code was forked into the many different distributions we know today. Unfortunately, vanilla V7 doesn't support the RL02. There are patched versions which do, but there's also V7M (the "M" standing for "modified") which DEC tweaked to support their newer hardware devices. This seemed to be a good candidate for my system, which probably postdates V7M by several years.

As I'd just picked up a few extra RL02 disk packs, I was all set for the installation. All set, that is, apart from the fact that only one of the RL02s is working right now, and I'll need the second for the /usr filesystem. I thought I'd go ahead and see how far I got with the one drive for now.

The installation tools for Unix V7 for use with VTServer are bundled only with the older versions External link, 1.1 being the latest featuring these files. They didn't appear to work with the newer 2.x VTServer, so I continued with the older version. This works slightly differently than its successors in that the virtual tape drive runs on a separate serial port than the console. The handy ODT loading option wasn't yet implemented, so the a short bootstrap program needs to be loaded into the PDP-11 by hand. Although the accompanying documentation mentions a top speed of 9600 bps, I had no trouble running at 38.4 Kbps.

Thankfully, the bundled V7 installation programs worked fine with the RL02 drive. It would appear the problems I was having before only surface when using the BSD driver code for these drives. Making a root filesystem and extracting the contents went flawlessly and, although a little slower than writing to the RD53 drives, didn't take all that long.

It was after this I hit the first real problem. Although the supplied installation tools (mkfs, restor, etc.) were all modified to support the RL02, the secondary boot loader wasn't, meaning I couldn't boot Unix off the RL02 just yet. I ended up compiling a new secondary boot loader in Unix V7M running on SIMH. This took a few tries: the first attempt resulted in a boot loader with support for the RL02, but none for the virtual tape drive. Apparently something went wrong statically linking with /usr/lib/libsa.a meaning the expected configuration wasn't actually present in the generated program. Linking the separate object files however worked fine. The resulting boot loader is available here, should you need it.

With the new boot loader, I fired up VTServer again and tried booting the rl02htunix kernel. After a flurry of activity, the RL02's READY lamp went out, but Unix wasn't talking. The other RL02 kernels did the same so, figuring I'd screwed something up along the way, I restarted the installation. Getting to the same stage as before, I tried booting a kernel. No joy... I halted the machine to see where it was stopping and, on a whim, typed a "g" at the ODT prompt to continue running. Huh? The kernel suddenly sprung into life and presented me with the output I was hoping to see! Strange behaviour indeed, but I wasn't about to complain!

With the kernel running I could get on with the installation. This involves configuring the bits which depend on your specific set-up and installing the boot block. I'm not sure why, but this didn't yet result in a bootable RL02 - something I'll need to look into. In any case, I'll need to get the second RL02 running before I can finish things off.

Next: Installing Unix V7M: Part II >>