Thanks for many helpful hints from Corrado Santoro.
Etherboot 4.0 downloads a boot image using the TFTP protocol. A TFTP service must be running on at least one machine on your network. Etherboot 4.0 is part of the non-Java development tools for JJOS/decaf.
What is the connection between Linux and JJOS? JJOS is compiled with the Linux compiler. The JJOS/decaf boot image is jjos-nbi
and is installed in /tftpboot.
On a JOS machine, the jjos-nbi
boot image is typically downloaded across the network from a TFTP service running on that Linux machine.
Before booting your first JOS machine, make sure the TFTP service is running. You should test the TFTP service, like this:
prompt# cd /home/<EM>user</EM> prompt# tftp tftp> connect localhost tftp> binary tftp> get jjos-nbi : tftp> quit prompt#
If you get a transfer time out message, your machine is not running the TFTP service. You will need to configure it for TFTP.
When a TFTP request is made at port 69/udp, the inetd program runs the tpcd program. In turn, the tcpd program runs the in.tftp program. In turn, the in.tftp program runs the real in.tftp program.
The real in.tftp program provides the TFTP service. The tcpd program provides additional security for TCP/UDP services, like TFTP. Your Linux machine should use the inetd daemon to start TFTP automatically when it is used.
Inside your /etc/inetd.conf file, your TFTP service is typically disabled, like this:
#tftp dgram udp wait nobody /usr/sbin/tcpd in.tftp
To enable TFTP,
Remove the comment character (#) from the beginning of this line. It should look like this:
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftp
or this:
tftp dgram udp wait root /usr/sbin/tcpd in.tftp
Restart your inetd service.
This step is important for your configuration changes to go into effect.
By default, the in.tftp program reads files from the /tftpboot directory.
To create the /tftpboot directory,
Log in as root.
Create the directory with something like
mkdir /tftpboot
Change permissions on /tftpboot directory to -rwxr-xr-x with something like
chmod ugo+rx /tftpboot
Log out as root.