User manual

Etherboot User Manual
4.1. Making a boot image
Etherboot expects to download a boot image in either ELF or tagged (../devman/t1.html) format
containing the code to be executed. Briefly explained, a boot image has a wrapper around the pieces of
code or data that need to be put in various places in the computer’s memory. It contains a directory
telling how large the pieces are and where they go in memory. It also says where to start execution.
A boot image is created using a utility program. The utility program (../mknbi.html) is specific to the
kernel you want to load. The version for Linux is called mkelf-linux or mknbi-linux and that for DOS is
mknbi-dos. These utilities are distributed separately and can be obtained from Etherboot web site
(http://sourceforge.net/projects/etherboot/).
4.2. Compiling a custom kernel
The preferred method of running applications on the booted machine is to package an initial ramdisk
(initrd) along with the kernel. This initrd can either provide all the files necessary for running the
application (at a cost of using RAM to hold the files) or mount NFS filesystems to obtain other files.
Therefore you will need to compile ramdisk options in your kernel. For an example of how an initrd is
created and packaged, see the LTSP project sources.
After you have compiled the kernel, make the boot image, like this:
mkelf-linux --output=/tftpdir/xterm.nb zImage initrd.gz
This puts the image in where the tftp daemon expects to find it, in this example /tftpdir. Make sure it is
world-readable because typically the tftp daemon runs as an unprivileged user. It is recommended that
you set a path explicitly for tftpd instead of relying on any defaults. For example, for inetd, the entry in
/etc/inetd.conf looks like this (xinetd uses a different syntax, check the documentation):
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /tftpdir
4.3. Setting up a DHCP daemon
You need to set up a DHCP server to hand out an IP address and other configuration information to the
client.
The main requirement of the DHCP server is that it needs to send out suitable configuration information.
Prior to version 5.0.7, Etherboot accepted any DHCP offer (but see REQUIRE_VCI_ETHERBOOT
below for an exception). Since version 5.0.7 Etherboot will not accept any DHCP offer where the server
IP is empty (all zero) or the filename is empty. These offers are useless to Etherboot anyway so ignoring
these offers will give it a better chance of picking the right DHCP server.
If you already have a DHCP server on your network for providing Windows clients with IP addresses,
chances are that it is not a suitable DHCP server because it’s only tailored to the single purpose of
handing out client addresses. Suitable DHCP servers include the ISC DHCPD, available for most
Unix/Linux systems. You can run such a DHCP server in parallel with the Windows one, provided you
do not attempt to give Windows clients leases, in which case there would be a clash. You can exclude
Windows clients in two ways. One is to register the only the MAC addresses of the diskless clients in
6