One of my recent retrocomputing projects was to set up a Novell NetWare 4.11 server and boot clients from it. Remote boot, or Remote Initial Program Load, was a common method for booting network clients over the LAN before IP became commonplace.
RPL requires a boot ROM on the network card which finds a nearby server, connects to it and downloads a disk image which it then executes. By today’s standards, it’s trivial – but by late 1990s standards, it was anything but.
I spent a few hours trying to get VirtualBox to do RPL boot. Etherboot doesn’t appear to support RPL, so I tracked down a ROM image on Intel’s website. There isn’t much demand for RPL and Intel deprecated it in 2005. Luckily, they’ve kept an old version of their drivers available which contains a boot ROM image supporting RPL.
The executable, PRORPL.EXE, will uncompress using 7z and produce two interesting looking files with the extension FLB. One of these is 63,488 bytes, and the other is 139,264 bytes.
Installing these in a VirtualBox machine is straightforward but unfortunately undocumented:
vboxmanage setextradata "vmName" VBoxInternal/Devices/pcbios/0/Config/LanBootRom romLocation
After booting the virtual machine from cold, VirtualBox didn’t complain, but also didn’t use the ROM. Looking in the Log Viewer showed the vague message rc=VERR_TOO_MUCH_DATA.
The vital piece of information I forgot is that boot ROMs must be smaller than 64 kilobytes. The Intel image is very close to that size. Back to the drawing board!
With some further searching, I found a Generic BootRom Utility on AMD’s website which contains a 16kb file. This file, RBOOT.ROM, is a working RPL boot ROM for AMD PCnet network cards. Coincidentally, the VirtualBox machine I’m using has an AMD PCnet-FAST III card. Result!
Re-running the vboxmanage command above with the path to the newly discovered boot ROM works a treat. I can boot a virtual machine straight off a virtual Novell NetWare server. By today’s standards, the process is quite cumbersome but I’ll leave a description of that for another time.
Hi Peter,
Thanks for posting this artical; it is makes very useful reading for something I’m trying to do with RPL booting some LanManager machines. I was wondering if you had an upto date link to the Generic Boot Rom utility or could you share a copy of it with me?
I look forward to hearing from you.
Hi Nick – try https://blog.poggs.com/wp-content/uploads/2020/03/util_boot.zip, which is I think the generic boot ROM that I used
Thanks Peter. It is very much appreciated.
Nick
Have you tried stripping first 62 bytes of *.flb ?
dd if=.flb bs=62 skip=1 of=.rom
Extracted 16K RPL image from BA1222M2.FLB at offset 0xCFEE.
Also made 32K and 40K images from BA1104M2.FLB and BA1211M2.FLB respectively.
Unfortunately neither of them is capable to initialize PCI card.
Screenshot: https://ibb.co/09L1Cwt
Downloads: https://web.archive.org/web/20190903083118if_/https://downloadmirror.intel.com/11271/eng/PRORPL.exe
https://web.archive.org/web/20020505122044if_/http://aiedownload.intel.com:80/df-support/3046/eng/proboot.exe
https://web.archive.org/web/20030825022341if_/http://aiedownload.intel.com:80/df-support/3046/eng/proboot.exe
The smallest full ROM is in BA1250L2.FLB.
(Remove second FLB in the file, remove header.)
Unfortunately it’s still 1K over the limit of 56K.
http://toogam.com/software/archive/drivers/network/intelpro/PROBOOT.exe