Before getting started, install the following programs on the server:
Sections of this application note:
Once installed, edit the tftpd configuration file (usually /etc/xinetd.d/tftdp if xinetd is installed) as follows:
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = <full path to tftpd binary (see below)> server_args = -v -p -c -U 002 -s <server directory (see below)> disable = no }
Paths will vary from one distribution to another. E.g.:
The files associated with the Diskless client (system image, models, and components, etc.) are downloaded from the server directory.
Note: The Telestra clients require the server directory to be /var/ftpd, and will not operate otherwise. If you wish to use a different server directory, create a symlink to that location in the /var directory named ftpd. See the Additional Setup section in this application note for more information about links.
Copy the "pxelinux.0" binary file with executable permissions (chmod +x) and root ownership (chown root) to the tftpd server directory (/var/ftpd). The original location of the "pxelinux.0" file will depend upon how PXELinux was installed.
Create a new directory inside /var/ftpd named pxelinux.cfg. Inside that new directory, create a new text file for each ASTi Diskless client. The following convention must be used for the file names:
01-xx-xx-xx-xx-xx-xx
... where the xx's represent the octets of the Telestra Diskless client MAC address. The file names are also case-sensitive; use lowercase for any letters in the MAC address. Use only the MAC address for the Telestra client's eth0 ethernet interface; network booting is not supported for eth1 or eth2.
A client with an eth0 MAC address of "00:03:47:28:66:DC" should have a corresponding text file at:
/var/ftpd/pxelinux.cfg/01-00-03-47-28-66-dc
The basic content of the files is as follows:
default remote-linux label remote-linux kernel remote-linux append initrd=initrd.gz ramdisk_size=470923 root=/dev/raminitrd read-write HOSTNAME=<client name> ipappend 1
In the above example, <client name> should be a unique, descriptive host name that follows the convention for Linux hosts (no spaces, no non-alphanumeric characters, etc.).
The following is a sample /etc/dhcpd.conf file which allows ASTi clients to boot remotely via PXELinux. Keep in mind that this is an example configuration, and the user is free to adapt their own configuration to allow for the Telestra clients. See the inline comments below.
# ASTi DHCPD config file for Diskless clients # the following two options are necessary: allow booting; allow bootp; # the following three options can be determined by # the network administrator: option subnet-mask 255.255.255.0; default-lease-time 86400; max-lease-time 86400; # Define ASTi clients group group { # Full path to pxelinux.0 on the server system # (PXELinux setup section above) filename "/var/ftpd/pxelinux.0"; # The following subnet definition must be created for # the ethernet port on the Telestra which will be used # to network boot. # It is up to the network administrator to decide # the correct subnet number and IP ranges. # It is recommended that the diskless clients and # Dhcp/Diskless server be on the same subnet since # clients need remote shell access to the server # in later stages of the boot process. subnet 10.2.0.0 netmask 255.255.0.0 { range 10.2.0.2 10.2.0.254; option broadcast-address 10.2.255.255; } # The following sections must be created for # each diskless client. The host name must # correspond with the HOSTNAME option mentioned # in the PXELinux host file (see above). The MAC addresses # must be for whichever port the client will # use to perform network boot. host asti_client1 { hardware ethernet 00:03:47:28:66:dc; } host asti_client2 { hardware ethernet 00:11:11:47:6a:aa; } host asti_client3 { hardware ethernet 00:11:11:1e:5b:6f; } }
Extract the ASTi System image file (tar -xf <filename>) in the tftpd server directory (in the samples above, that is /var/ftpd). The image file is on the software CD provided by ASTi. The file is usually named asti-system-image-x.y-z.tar where x.y-z is the ASTi system software version number, e.g.: "asti-system-image-3.33-1.tar".
Two files are extracted from the .tar file:
Create a symlink to vmlinuz-x.y.z-asti_remote called remote-linux with the command:
ln -snf /var/ftpd/vmlinuz-x.y.z-asti_remote /var/ftpd/remote-linux
Note: In creating this and other symlinks, specify the full system path to the target, because various programs will not understand the relative file paths that read these links. I.e., the following command will not function properly:
ln -snf ./vmlinuz-x.y.z-asti_remote ./remote-linux
Place the Telestra options file in the tftpd server directory. To do this, create a symlink named options pointing to the original options file using the ln command as shown above. Example:
ln -snf /var/ftpd/ASTI2-03.tgz /var/ftpd/options
Place the debian package file containing the ASTi model components in the tftpd server directory and create a symlink to it named asti-components-binary.deb. Example:
ln -snf /var/ftpd/asti-components-binary-us_0.6-10_i386.deb /var/ftpd/asti-components-binary.deb
Note that 0.6-10 above is an example number which may vary depending upon software version. Remember to use the full path name in all instances.
In the tftpd server directory, create a subdirectory named hosts. This directory is used to store client-specific configuration, model, and other files. This directory is further organized into subdirectories, with one for each client. The directory names are case-sensitive and must exactly match the host names specified elsewhere. The example below follows the example clients created in the Configuring the DHCP Server section above.
Inside each client subdirectory, the following files and links must be present:
Inside each client subdirectory, place the model 'tgz' file, client configuration 'tgz' file (if any), and create symlinks to the components debian package and options file. Name the symlinks appropriately (as detailed above), then create a new text file named install.conf in the client subdirectory. This file contains meta information about all the files that the client must download from the server, all of which are contained in the client's subdirectory.
Example install.conf in asti_client1 subdirectory:
model:F18E_2042.tgz config:telestraConfig20070613-2217.tgz options:ASTI2-03.tgz components:asti-components-binary-us_0.6-10_i386.deb
This install.conf file and the files mentioned within are downloaded by the Diskless client(s) from the server during boot-up via multiple tftp transfer sessions.
If everything is setup correctly, the tftp server directory structure serving three clients (asti_client1, asti_client2, asti_client3) will list as shown in this text file (all option, model, components, and configuration file names are examples).