Telestra 3 App Note

Setting up a Diskless Server for Telestra 3 / MBV Clients (#77)

Before getting started, install the following programs on the server:

  • TFTPD (Trivial FTP Daemon, tftpd-hpa program recommended)
  • PXELinux (version 3.11 recommended)
  • DHCP Server (ISC Dhcp recommended)

Sections of this application note:

Configuring TFTPD

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.:

  • <full path to tftpd binary> = /usr/sbin/in.tftpd
  • <server directory> = /var/ftpd

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.

Configuring PXELinux

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.

Example:

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.).

Configuring the DHCP Server

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;
        }
}

Additional Setup

ASTi System Image File

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:

  • initrd.gz
  • vmlinuz-x.y.z-asti_remote where x.y.z is the kernel version number

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
Client Options File

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
Components Package File

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.

The Hosts Directory

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:

  1. MBV Model file
  2. Telestra configuration file (if any, usually created through RMS)
  3. Install.conf
  4. Symlink to MBV model components package
  5. Symlink to client options file
  6. Empty subdirectory called 'upload'

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.

Final Directory Structure

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).