Previous | Next | Table of Contents

Setting up the mop server, Diskless NetBSD HOW-TO

DEC's proprietary MOP (Maintenance Operations Protocol) was used to handle various networking tasks. MOP is included the bootroms of many VAX workstations and can be used to load a kernel from a diskless server. Since MOP is not TCP/IP, it cannot be passed through a router (thus the stipulation that your client and the server(s) must be on the same subnet). It also means that your server must have device drivers that are able to send unspecified data to the ethernet.

First, you need to get a copy of the bootloader. This can be found in the NetBSD distribution as: installation/netboot/boot

All of the mop implementations assume that the bootloader to send is located in the /tftpboot/mop/ directory.

# mkdir -p /tftpboot/mop
# gunzip boot.mop.gz
# cp boot.mop /tftpboot/mop/MOPBOOT.SYS
Setting up mopd, NetBSD
Setting up mopd, OpenBSD
Setting up mopd, FreeBSD
Setting up mopd, Linux

[If you have details for any other platform, please let us know]


NetBSD and OpenBSD

NetBSD and OpenBSD ship with the mop server on all supported platforms.

  1. # mopd -a -d

This will start mopd in debugging mode. When the mopd server gets a request, it will print diagnostic information to the terminal it was launched from.

If your mopd is working properly, your client will print something like:

>> NetBSD/vax boot [980110 22:29] <<
: /netbsd

You might take this opportunity to link the MOPBOOT.SYS file to something that the vax client will find without prompting:

# cd /tftpboot/mop
# ln -s MOPBOOT.SYS cccccccccccc.SYS
Where cccccccccccc is the hex ethernet address of your vax client. Make sure that SYS is capitalized and that any hex digits in the ethernet address are lower case. If you don't do this, then the vax client will not find the correct file.

Continue on to setting up bootpd


FreeBSD

There is now a mopd package for FreeBSD, although I have no further information on how to install or configure it. Feel free to try it out, http://www.freebsd.org/cgi/url.cgi?ports/net/mopd/pkg-descr. The instructions listed below are for an older version that is known to work.

  1. Get the source code for mopd from this site:
    ftp://ftp.stacken.kth.se/pub/OS/NetBSD/mopd/mopd-2.5.3.tar.gz

  2. Untar the source code.

  3. If you are running FreeBSD 2.2 or later, then you will need to edit one of the source files before compiling it. Edit mopd-2.5.3/common/put.c and add the following three lines to the #includes section at the start of the file:
    #ifdef __FreeBSD__
    #include <osreldate.h>
    #endif

    There are also two places within that file where the symbol __FreeBSD__ is checked. Replace all occurrences of:

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

  4. # cd mopd-2.5.3/mopd/
    # make

  5. Install the binary:
    # cp mopd /usr/local/sbin/

  6. # /usr/local/sbin/mopd -a -d

This will start mopd in debugging mode. When the mopd server gets a request, it will print diagnostic information to the terminal it was launched from.

If your mopd is working properly, your client will print something like:

>> NetBSD/vax boot [980110 22:29] <<
: /netbsd

You might take this opportunity to link the MOPBOOT.SYS file to something that the vax client will find without prompting:

# cd /tftpboot/mop
# ln -s MOPBOOT.SYS cccccccccccc.SYS
Where cccccccccccc is the hex ethernet address of your vax client. Make sure that SYS is capitalized and that any hex digits in the ethernet address are lower case. If you don't do this, then the vax client will not find the correct file.

Continue on to setting up bootpd


Linux

You may need to compile MULTICAST into your kernel to allow for setting your ethernet to promiscuous mode (required for mop to operate properly). You may alternatively use ifconfig with the allmulti flag to enable promiscuous mode (e.g. ifconfig eth0 allmulti).

  1. Get the source code for mopd from this site:
    ftp://ftp.stacken.kth.se/pub/OS/NetBSD/mopd/mopd-linux-2.5.3.tar.gz

  2. Untar this file and make the mopd:
    # cd /mopd-linux/mopd
    # make

  3. Install the binary:
    # cp mopd /usr/local/sbin/

  4. # /usr/local/sbin/mopd -a -d

This will start mopd in debugging mode. When the mopd server gets a request, it will print diagnostic information to the terminal it was launched from.

If your mopd is working properly, your client will print something like:

>> NetBSD/vax boot [980110 22:29] <<
: /netbsd

You might take this opportunity to link the MOPBOOT.SYS file to something that the vax client will find without prompting:

# cd /tftpboot/mop
# ln -s MOPBOOT.SYS cccccccccccc.SYS
Where cccccccccccc is the hex ethernet address of your vax client. Make sure that SYS is capitalized and that any hex digits in the ethernet address are lower case. If you don't do this, then the vax client will not find the correct file.

Continue on to setting up bootpd


Previous | Next | Table of Contents
NetBSD Home Page
NetBSD Documentation top level

(Contact us) $NetBSD: mop.html,v 1.3 2007/08/01 15:36:02 kano Exp $
Copyright © 1998-2004 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.