Booting a Network Computer
Introduction
Acorn Network Computers (NCs) are discless machines designed to boot from a telephone or ethernet network. They have NCOS in ROM or flash, but rely on the network for applications other than the basic browser and wordprocessor that might be supplied.
As NCs were under development for much of the time they were available, there are many different versions of NC hardware and software available. The following is mostly based on NCOS 0.1 but will probably apply to other versions too. I'm assuming you're booting from some kind of Unix machine, though you could probably boot from Windows or RISC OS with the right software.
Network config
Ethernet NCs expect to find an IP address using BOOTP. You can cancel this on boot by holding down both Alt keys which may leave you in a configuration menu (in NCOS 0.1 it just dumps you into the browser with no network active).
To boot you'll need a BOOTP server on your network. This can either be standalone bootpd, or some DHCP servers (notably ISC dhcpd) also provide BOOTP. For the root directory you'll also need an NFS server. Note these don't have to be the same machine.
bootpd configuration
Here's a sample /etc/bootptab configuration:
.default:\ # domain name :hn:dn="mydomain.example.com":\ # TFTP boot directory :td=/tftpboot:\ # name servers :ds=192.168.1.2:\ :to=auto:\ :ns="192.168.1.2" # Next, we can define different master entries for each subnet. . . .subnet115:\ # use default template we've just defined :tc=.default:\ # subnet mask :sm=255.255.255.0:\ # gateway :gw=192.168.1.2:\ # NFS boot server address :sa=192.168.1.4: # entry for NC - 'ournc' is in the DNS and resolves to the IP address we want to give it ournc: tc=.subnet115:\ # MAC address of NC - printed by NC on boot ha=00.11.22.33.44.55:\ # NFS mountpoint on server 192.168.1.4 to boot from bf=/nc # we could also do ip=192.168.1.99 to set the IP address explicitly
Typing 'man 5 bootptab' should explain all the two-letter codes. Remember to separate each statement with colons and, if an entry spills onto more than one line, add backslashes at the end of lines.
This will give the NC an IP address and tell it which NFS share on which server to mount as its root directory.
dhcpd configuration
ISC's /etc/dhcpd.conf is a little less terse:
allow booting; allow bootp; # option definitions common to all supported networks... option domain-name "mydomain.example.com"; option domain-name-servers 192.168.1.2; option subnet-mask 255.255.255.0; option routers 192.168.1.1; option broadcast-address 192.168.1.255; default-lease-time 600; max-lease-time 7200; # Acorn NC host ournc { hardware ethernet 00:11:22:33:44:55; fixed-address 192.168.1.99; option host-name "ournc"; #stage 1: kernel to fetch by TFTP (Acorn NC can't do this but other NC-like devices can) #filename "kernel.bin"; #stage 2: NFS root next-server 192.168.1.4; option root-path "/nc"; }
You can also add sections to this to issue IP addresses by DHCP to other parts of your network, but I'll ignore this for now.