Previous | Next | Table of Contents

Setting up the bootpd server, Diskless NetBSD HOW-TO

The Internet Bootstrap Protocol is used by the boot ROM in some workstations to request IP addresses and boot loader filenames. bootpd can run as an inetd service, or in standalone mode (i.e. launched from /etc/rc.local or equivalent). This page only covers how to set it up as an inetd service.

Many DHCP servers will handle BOOTP requests. If you find your bootpd is causing trouble, try following the directions on the dhcpd page to set up a dhcp daemon. If you plan to use bootpd, make sure your system is not currently running dhcpd as it will prevent bootpd from running.

Many bootp implementations come with a test utility (such as bootptest or bootpquery) which will query a bootp server and print its responses. If you're having troubles, try using one of these programs from another unix machine (you'll have to change the client ethernet address and IP address in the /etc/bootptab file).

The /etc/bootptab file has a standard format across all platforms. There is one entry per client. Create it with (or add to it) the following entry (replace boot.netbsd with the appropriate file for your platform):

#/etc/bootptab
client.test.net:\
        :ht=ether:\
        :ha=CCCCCCCCCCCC:\
        :sm=255.255.255.0:\
        :lg=192.168.1.5:\
        :ip=192.168.1.10:\
        :hn:\
        :bf=[/tftpboot/]boot.netbsd:\   # see note below
	:bs=auto:\
        :rp=/export/client/root/:\
        :vm=auto:                       # see note below for next hardware
        :vm=rfc1048:                    # see note below for alpha hardware

Note that some tftp daemons do not run chroot'ed, and you will need to list the complete path to the boot file. This is something you should test with a command-line tftp client to save yourself from much frustration later.

NeXT: Note that the vm=auto line is necessary for NeXT clients, as they require this "vendor magic" tag be set to "auto".

alpha: Note that alphas with SRM 7.0 require the "vendor magic" tag to be set to "rfc1048".

vax: Note that the Vax only requires the following parameters: ht, ha, ip, bf, rp.

Setting up bootpd, NetBSD
Setting up bootpd, OpenBSD
Setting up bootpd, FreeBSD
Setting up bootpd, MacOS X and Darwin
Setting up bootpd, Linux
Setting up bootpd, SunOS
Setting up bootpd, Solaris
Setting up bootpd, NEWS-OS
Setting up bootpd, NEXTSTEP (couldn't get it to work)
Setting up bootpd, HP-UX

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

If your OS isn't listed here, you can try compiling bootpd from the source: bootp-DD2.4.3.tar.gz. Also, the ISC dhcpd compiles on many platforms and will serve bootp clients.


NetBSD and OpenBSD

  1. Edit /etc/inetd.conf and remove the # from the following line:
    bootps          dgram   udp     wait    root    /usr/sbin/bootpd        bootpd

  2. # ps -aux | grep inetd
    kill -HUP that process to force it to reread /etc/inetd.conf.

Continue on to setting up tftpd.


FreeBSD

FreeBSD has a bootpd. See the man page for more information.

Continue on to setting up tftpd.


MacOS X and Darwin

MacOS X and Darwin use NetInfo to configure bootpd. Unfortunately, it doesn't seem to provide enough information for NetBSD clients to netboot (in particular the root path). The man page says it's able to read a normal configuration file, but that is incorrect. Please send us feedback and let us know if you figure out how to set this up properly.

You can compile the ISC dhcpd which should work for bootp clients. dhcpd may conflict with bootpd, if you are using your system to netboot other MacOS X or Darwin clients.

Back to the top


Linux

Linux may have /usr/sbin/in.bootpd or /usr/sbin/bootpd. Check this, as it changes what you need to put into your /etc/inetd.conf.

  1. Edit /etc/inetd.conf and remove the # from the following line:
    bootps dgram   udp     wait    root    /usr/sbin/bootpd        bootpd

  2. # ps aux | grep inetd
    kill -HUP that process to force it to reread /etc/inetd.conf.

Continue on to setting up tftpd.


SunOS

For SunOS, you'll need to compile bootpd or dhcpd from sources.

  1. Download and extract bootp-DD2.4.3.tar.gz

  2. # make sunos4

  3. # make install

  4. Add the following two lines to /etc/services:
            bootps          67/udp          bootp           # BOOTP Server
            bootpc          68/udp                          # BOOTP Client

  5. Add the following line to your /etc/inetd.conf:
    bootps dgram udp wait root /usr/etc/bootpd bootpd -i

  6. # ps aux | grep inetd
    kill -HUP that process to force it to reread /etc/inetd.conf.

Continue on to setting up tftpd.


Solaris

Solaris 2.6 and later have a native dhcpd. For earlier versions, you'll need to compile bootpd or dhcpd from sources.

  1. Download and extract bootp-DD2.4.3.tar.gz

  2. # make sunos5

  3. # make install

  4. Add the following two lines to /etc/services:
            bootps          67/udp          bootp           # BOOTP Server
            bootpc          68/udp                          # BOOTP Client

  5. Add the following line to your /etc/inetd.conf:
    bootps dgram udp wait root /usr/etc/bootpd bootpd -i

  6. # ps -ef | grep inetd
    kill -HUP that process to force it to reread /etc/inetd.conf.

Continue on to setting up tftpd.


NEWS-OS

  1. Edit /etc/inetd.conf and remove the # from the line beginning with bootps. The path to bootpd is /usr/etc/bootpd

  2. # ps -aux | grep inetd
    kill -HUP that process to force it to reread /etc/inetd.conf.

Continue on to setting up tftpd.


NEXTSTEP

NEXTSTEP uses a non-standard bootptab and runs the bootpd standalone. The 'nidump' utility can be used to load and extract the netinfo database that NEXTSTEP uses. Please send us feedback and let us know how to set this up properly.

Note, there are pre-compiled versions of the ISC dhcpd which should work for bootp clients. See the Peanuts archive.

  1. # ps -aux | grep bootpd
    If it's running, kill -HUP that process to force it to reread /etc/bootptab.
    If it's not running, then you need to run it:
    # /usr/etc/bootpd

Back to the top


HP-UX

The native bootpd in HP-UX 9 and earlier doesn't fully support NetBSD clients, as it doesn't support the rp tag which sets the root NFS path. I also couldn't get the bootpd or dhcpd sources to compile properly under HP-UX 9.

HP-UX 10 comes with a decent bootp server.

  1. Edit /etc/inetd.conf and remove the # from the following line:
    bootps      dgram  udp wait   root /usr/lbin/bootpd      bootpd

  2. # ps -ef | grep inetd
    kill -HUP that process to force it to reread /etc/inetd.conf.

Continue on to setting up tftpd.


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

(Contact us) $NetBSD: bootpd.html,v 1.25 2004/10/30 22:33:30 jschauma Exp $
Copyright © 1998-2004 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.