Previous Next Table of Contents

2. Getting Your System up to Speed

This section provides information on adding any missing pieces your operating system may require in order to get it to properly function as a bootserver environment for your VAX. Of the several operating systems VAX bootserving has been set up on, only Linux and FreeBSD require any noteworthy additions. Both NetBSD and OpenBSD have all the components necessary for netbooting preloaded. If you're planning on using NetBSD or OpenBSD for your bootserver, you may move on to the Bootserver Configuration section of the HOWTO at this time.

2.1 Modifications for Linux

Unfortunately your ordinary distribution of Linux is somewhat short on utilities for adequately netbooting NetBSD on DEC VAX hardware. But thanks to the BSD people, all the necessary networking software resources are ready to hijack. In fact, all the needed software pieces have already been modified to run under Linux -- you just have to go out and gather them up.

Preparing Your Linux Kernel

There are a couple of things which need to be included your Linux kernel in order for netbooting to work properly.

RARP

First you need to make sure you've got RARP support compiled in. If the file /proc/net/rarp doesn't exist then you need to do one of two things: (1) It may be that RARP was compiled as a loadable module for your kernel. If this is the case then you'll need to `insmod' the /lib/modules/(linux version)/ipv4/rarp.o module. (2) If you don't already have RARP compiled into your kernel, you will need to reconfigure and recompile Linux with RARP support added. Since the RARP code is small, I recommend just compiling it directly into the kernel.

Multicast

In addition to RARP, it is also recommended that you compile in the IP multicast code for Linux.

Compiling in IP multicast was how I initially got my network interface to operate in promiscuous mode. There's an easier way to achieve the same effect and that is with the command `ifconfig eth0 allmulti' which according to the ifconfig man page does the following:

[-]allmulti
    Enable  or  disable  the  promiscuous  mode  of the
    interface.  This means that all incoming frames get
    sent  to  the  network  layer of the system kernel,
    allowing for networking monitoring.

Running the network interface in promiscuous mode is necessary for the MOP server software which will be discussed later in this guide.

There is some still some speculation (on my part at least) about the necessity of compiling in multicast support. I've found that I don't need it with the Linux driver for my NE2000 clone card. Other network card drivers may behave differently (more speculation on my part). I guess more research and knowledge is required.

Unless you know otherwise, go ahead and compile your Linux kernel with IP multicast support. There's no harm in doing it.

Obtaining Additional Software Needed by Linux

Before you begin, you'll need to grab all the necessary components to turn your Linux system into a lean mean netbooting machine.

The MOP Server

The MOP server that Linux uses is the same MOP server used by the BSDs, only it has some modifications to allow it to run under Linux. The MOP server is used by the VAX client to load the NetBSD/vax bootloader.

The MOP Server software for Linux is available from:

ftp://ftp.stacken.kth.se/pub/OS/NetBSD/mopd/mopd-linux-2.5.3.tar.gz

ftp://ftp.canberra.edu.au/pub/ise/linux-vax/tools/mopd/mopd-linux-2.5.3.tar.gz

Building The MOP Server

The MOP server software is contained in the file mopd-linux-2.3.5.tar.gz which you have hopefully grabbed already.

Extracting the files from this archive will create a ./mopd-linux directory which in turn contains a README, a common code directory, and directories for the various utilities of the mopd package. At this point we're only concerned with the mopd directory which contains the source code for the MOP server. The other directories contain the code for various MOP server debugging utilities.

Run `make' inside the ./mopd-linux/mopd directory. This will build the mopd MOP server daemon.

Installing The MOP Server

I choose to place the MOP server in the /usr/local/sbin directory on my Linux system. You may place them where ever it makes the most sense to you, but the examples in the remainder of the HOWTO will assume that the executables reside in /usr/local/sbin.

# mkdir -p /usr/local/sbin
# cp ./mopd-linux/mopd/mopd /usr/local/sbin

The bootparamd Server

If your Linux distribution didn't come with a bootparamd or an rpc.bootparamd daemon then you'll need to get one. The RedHat 5.0 Linux distribution comes with a bootparamd server, but my RedHat 4.0 installed system didn't have one. If you're running on a system which does have the daemon, then move on to the Bootserver Configuration section. It's likely that a number of other distributions are missing this server daemon. No problem though, you just need to pick up an old version of NetKit for Linux:

ftp://ftp.uk.linux.org/pub/linux/Networking/base/attic/NetKit-0.09.tar.gz

Building The bootparamd Server

The bootparamd server rpc.bootparamd is contained in the NetKit-0.09.tar.gz file.

Extracting the files from this archive will give you the ./NetKit-0.09 directory which in turn contains a number of other directories containing network servers and utils. We're only interested in two of the directories: rpcgen and rpc.bootparamd. The first, rpcgen, contains the source for a utility needed for the compilation of the rpc.bootparamd server. The second directory, rpc.bootparamd, appropriately contains the source for the bootparamd server.

Run `make' inside of ./NetKit-0.09/rpcgen and then run `make' inside of ./NetKit-0.09/rpc.bootparamd. This will build the bootparamd server daemon.

Installing The bootparamd Server

Copy the bootparamd server into /usr/local/sbin, or which ever location you are using to hold these non standard server daemons. The remainder of the HOWTO will assume that you've copied them to /usr/local/sbin.

# cp ./NetKit-0.09/rpc.bootparamd/bootparamd /usr/local/sbin

You may continue on to Bootserver Configuration

2.2 Modifications for FreeBSD (Contributed by Kevin McQuiggin)

Before you begin, you'll need to get a copy of the mopd MOP server daemon to allow your FreeBSD system to operate as a bootserver.

The MOP Server

The MOP server used is the standard MOP server used by the other BSD derived systems like NetBSD and OpenBSD. Depending on the version of FreeBSD you're running, modifications to the mopd source may be necessary. The MOP server is used by the VAX client to load the NetBSD/vax bootloader.

The MOP Server software is available from:

ftp://ftp.stacken.kth.se/pub/OS/NetBSD/mopd/mopd-2.5.3.tar.gz

Building The MOP Server

The MOP server software is contained in the file mopd-2.3.5.tar.gz which you have hopefully grabbed already.

Version 2.5.3 of mopd is configured for use with FreeBSD versions 2.1 and lower. If you are running FreeBSD 2.2 or later then you have to make some minor changes to one of mopd's source files. The next release of mopd will fix this, but for now here are the changes you must make.

The file that must be modified is put.c. It is in the mopd distribution's ./mopd-2.5.3/common directory. Add the following 3 lines to the #includes section at the start of the file:

#ifdef __FreeBSD__
#include <osreldate.h>
#endif

Next, there are 2 places within the file where the symbol __FreeBSD__ is checked to see if it is defined:

#if !defined(__FreeBSD__)

Change each of these lines to:

#if !defined(__FreeBSD__) || __FreeBSD_version >= 220000

Make the appropriate changes to the put.c if you're running a version of FreeBSD greater than 2.1. Then switch to the mopd daemon's directory and build the mopd daemon.

# cd ./mopd-2.5.3/mopd
# make

This will rebuild a usable copy of mopd for use with FreeBSD versions 2.2 and later.

Installing The MOP Server

Now that you've built your mopd server daemon, I suggest copying it into /usr/local/sbin. You may place the server where ever it makes the most sense to you, but the examples in the remainder of the HOWTO will assume that the mopd executable resides in /usr/local/sbin.

# mkdir -p /usr/local/sbin
# cp ./mopd-2.5.3/mopd/mopd /usr/local/sbin

You may continue on to Bootserver Configuration

2.3 Modifications for Solaris not completed

2.4 Modifications for IRIX not completed

2.5 Modifications for NeXTSTEP not completed


Previous Next Table of Contents