Hello, reader!
I have been trying to netboot my VAXen with NetBSD for a while but always failed by BOOTP or DHCP.
At last I managed to do this way.
In short:
- provide a working boot.mop by MOP daemon
- provide address and parameters by DHCP
- serve a diskless client filesystem by NFS
- boot the VAX and finish client filesystem setup
This work is done for (and because of) my VAX 4000 model 300.
The VAX 4000 has a SHAC DSSI controller which is not supported by NetBSD.
To run something other than OpenVMS on it, I would like to boot NetBSD through the local network.
The network server providing boot files and parameters is running Debian GNU/Linux "Lenny" 5.0.
Now, the setup.
Step 1: provide a working boot.mop by MOP daemon
Install MOP daemon on the server.
# apt-get install mopd
Debian packaged mopd only serve files located in /tftpboot/mop
To serve files placed otherwise in the filesystem, you would probably have to recompile the package.
Get a working boot.mop.
A boot.mop that works is located at:
ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-archive/NetBSD-1.5.3/vax/installation/netboot/boot.mop
No matter that is for NetBSD 1.5.3, it is simply a bootloader and it works.
Place the boot.mop in /tftpboot/mop, and place a link in the same directory with the MAC address of the client VAX (lowercase numbers and letters only) and .SYS suffix (uppercase).
For example, my VAX has a MAC address of 08:00:2b:29:2a:4b.
# cp /home/gl/boot.bop /tftpboot/mop # cd /tftpboot/mop # ln -sf boot.mop 08002b292a4b.SYS
Start the MOP daemon, if not running yet.
# /etc/init.d/mopd start
Step 2: provide address and parameters by DHCP
This is simple.
Install dhcp3-server, if not already installed, and provide a stanza for the client VAX in /etc/dhcp3/dhcpd.conf
# apt-get install dhcp3-server
/etc/dhcp3/dhcpd.conf should contain at least:
[...] subnet 192.168.1.0 netmask 255.255.255.0 { [...] option domain-name "decadence"; next-server 192.168.1.90; allow bootp; allow booting; [...] } [...] host ramiel { hardware ethernet 08:00:2b:29:2a:4b; fixed-address 192.168.1.184; option root-path "/home/guestos/gl/ramiel"; } [...]
In this case, 192.168.1.0 is the base network address, and 192.168.1.90 is the IP address for the server that would serve booting files to the client.
Usually, they are the same server.
Option "root-path" refers to the NFS exported directory for the VAX client filesystem.
I usually place the guest filesystems for netbooted machine or Xen guests in /home/guestos/gl, change it accordingly to your setup.
You have to restart ISC DHCP3 server to reload the configuration changes.
# /etc/init.d/dhcp3-server
Step 3: serve a diskless client filesystem by NFS
Now make space and setup the client filesystem.
You need nfs-kernel-server or nfs-user-server.
I use the first one.
# apt-get install nfs-kernel-server
I mount the NetBSD/VAX ISO image as loopback filesystem, just to try to make less plastic waste.
Extract all of the binary sets (do you have enough space to extract all on the server, I hope)
Change filenames to reflect your setup.
# mkdir /home/guestos/gl/ramiel # chdir /home/guestos/gl/ramiel # mkdir cdrom # mount -o loop /home/gl/iso/vaxcd-5.0.2.iso # for file in /vax/binary/sets/*tgz ; do tar zxf $file ; done
Ok, well done.
Now specify that directory in /etc/exports as:
/home/guestos/gl/ramiel 192.168.1.0/255.255.255.0(rw,no_root_squash,subtree_check,async)
Reload NFS configuration
# /etc/init.d/nfs-kernel-server reload
Oh well, we have finished the server side setup!
Don't worry about how to send the kernel to the VAX, boot.mop would try to get it directly from NFS.
Step 4: boot the VAX and complete filesystem setup
Power up the VAX and enjoy.
This is the output for my VAX 4000 model 300 on the console port.
KA670-A V3.7, VMB 2.12 Performing normal system tests. 66..65..64..63..62..61..60..59..58..57..56..55..54..53..52..51.. 50..49..48..47..46..45..44..43..42..41..40..39..38..37..36..35.. 34..33..32..31..30..29..28..27..26..25..24..23..22..21..20..19.. 18..17..16..15..14..13..12..11..10..09..08..07..06..05..04..03.. Tests completed. Loading system software. No default boot device has been specified. Available devices. -DIA0 (RF72) -DIA1 (RF72) -DIA2 (RF72) -MUA0 (TK70) -EZA0 (08-00-2B-29-2A-4B) Device? [EZA0]: (BOOT/R5:0 EZA0) 2.. -EZA0 1..0.. >> NetBSD/vax boot [Jan 6 2002 22:13:30] << >> Press any key to abort autoboot 0 Trying BOOTP Using IP address: 192.168.1.184 myip: ramiel (192.168.1.184) root addr=192.168.1.90 path=/home/guestos/gl/ramiel open netbsd.vax: No such file or directory > boot netbsd 2388172+308476 [235+193664+183590]=0x2eeb54 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. NetBSD 5.0.2 (GENERIC) #0: Sat Feb 6 22:45:58 UTC 2010 builds@b8.netbsd.org:/home/builds/ab/netbsd-5-0-2-RELEASE/vax/2010020618 51Z-obj/home/builds/ab/netbsd-5-0-2-RELEASE/src/sys/arch/vax/compile/GENERIC VAX 4000/300 total memory = 32708 KB avail memory = 28428 KB mainbus0 (root) cpu0 at mainbus0: KA670, Rigel (ucode rev 17), 2KB L1 cache, 128KB L2 cache ze0 at mainbus0 ze0: hardware address 08:00:2b:29:2a:4b shac at mainbus0 not configured uba0 at mainbus0: Q22 dhu0 at uba0 csr 160440 vec 300 ipl 17 dhu0: rom(1) version 17 dhu0: rom(0) version 19 dhu0: DHV-11 mtc0 at uba0 csr 174500 vec 774 ipl 17 mscpbus0 at mtc0: version 4 model 14 mscpbus0: DMA burst size set to 4 mt0 at mscpbus0 drive 0: TK70 Kernelized RAIDframe activated boot device: ze0 root on ze0 nfs_boot: trying DHCP/BOOTP nfs_boot: DHCP next-server: 192.168.1.90 nfs_boot: my_name=ramiel nfs_boot: my_domain=decadence nfs_boot: my_addr=192.168.1.184 nfs_boot: my_mask=255.255.255.0 nfs_boot: gateway=192.168.1.1 root on 192.168.1.90:/home/guestos/gl/ramiel root file system type: nfs TODR stoppedWARNING: preposterous TOD clock time WARNING: using filesystem time WARNING: CHECK AND RESET THE DATE! warning: no /dev/console Created mfs /dev (610304 byte, 1120 inodes) /etc/rc.conf is not configured. Multiuser boot aborted. Enter pathname of shell or RETURN for /bin/sh: Terminal type? [unknown] vt100 Terminal type is vt100. We recommend creating a non-root account and using su(1) for root access. ramiel#
Simple.There is something still to configure, in particular you have to create all of /dev devices.
# cd /dev # /bin/sh MAKEDEV all
The you could go on with NetBSD configuration, starting with /etc/rc.conf and so on, please refer to NetBSD documentation.
Ok we are done.
Hope it helps.
Hope you enjoy!
Ciao!
gl