Plume with PXE
PXE is a protocol meant to replace and supersede DHCP/BOOTP + TFTP + Etherboot. Many, many PCI network cards nowadays embed a PXE firmware [1], leveraging us from using Etherboot on ROMs or boot floppies.
PXE uses a particular extension to the TFTP protocol, called tsize which requires TFTP servers which supports it. tftp-hpa is one of those, the package name for the server part is tftpd-hpa.
Let's see how to configure this for Plume [2]:
- modify /etc/inetd.conf [3] to let the TFTP daemon start as root and change by himself to user nobody afterwards (-s option of tftpd-hpa) [4]
- install package syslinux
- copy /usr/lib/syslinux/pxelinux.0 to your tftpd-shared directory (by default /var/lib/tftpboot) and create the directory pxelinux.cfg in it [5]
- create a config file for PXELinux with the good filename (the hexadecimal representation of the common part of the IP addresses of your clients, use the gethostip utility shipped with syslinux to help you find the name of the file)
- modify adequately your /etc/dhcpd.conf
Note: We run into problems with old Intel EtherExpress Pro 100 NIC because of the old PXE version which didn't work as expected. Intel provides DOS utilities to update the flash on those NIC. You can find a Intel Boot Agent Utilities diskette image there.
[1] avoid RPL or MBA (3Com) technologies, as they are not free and need a special server to use
[2] see http://syslinux.zytor.com/pxe.php for details
[3] or the adequate script if you decided to use xinetd
[4] the line should now look like this tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd -s /var/lib/tftpd
[5] /var/lib/tftpboot/pxelinux.cfg