http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1.3-en.html#AEN788
K12Linux.org
[ K12LTSP.org | Downloads | Installation | Configuring Server | Configuring Clients | FAQ's & More ]

K12LTSP WIKI Documentation

Server Package Configuration:
[ Boot Process | NFS mount for /home | Printers ]

Your new K12LTSP server has packages from the Linux Terminal Server Project (www. ltsp.org ) and packages from the Fedora Core 4 Linux distribution. That means that in addition to using it as a terminal server you can run hundreds of packages for Red Hat and Fedora Linux.

We'll provide pointers to configuring some of these other packages but this page will focus on configuring the LTSP packages that are required for booting diskless workstations. See Fedora documentation for other packages.

Understanding the diskless boot process:  (More detailed description from www.ltsp.org docs... )

There are several ways diskless workstations can connect to your server. You can have bootp enabled boot roms on your ethernet card, bootp rom code that loads from a floppy or you can use the PXE boot protocol from a PXE enabled motherboard or floppy. In all of these the process is the same:

  1. The client boots and requests an IP number from the server.

  2. The server looks first in the /etc/dhcpd.conf file to see if there is a static address that matches the mac address of the client. If there is no match then an IP number is issued from within the ip range specified in the dhcpd.conf file. Note that the dynamic range starts at 192.168.0.100. This means that numbers under 100 are good choices for other servers, printers and workstations with static addresses.

    shared-network WORKSTATIONS {
      subnet 192.168.0.0 netmask 255.255.255.0 {
         range dynamic-bootp 192.168.0.100 192.168.0.253;
         use-host-decl-names       on;
         option log-servers        192.168.0.254;

         # trick from Peter Rundle <peter.rundle@au.interpath.net>
         if substring (option vendor-class-identifier, 0, 9) = "PXEClient"
         {
            filename      "/lts/pxe/pxelinux.bin";
              # NOTE: kernels are specified in /tftpboot/lts/pxe/pxelinux.cfg/
         }
         else
         {
            filename    "/lts/vmlinuz-2.4.9-ltsp";
         }
      }
    }


  3. The first step in trouble shooting is to make sure your client is getting an IP number. You can watch this process by tailing the messages file on the server while the client boots: tail -f /var/log/messages

    Once the client has an ip number it will then continue booting and ask for its operating system from the server. There are two protocols for doing this, bootp and PXE. The dhcpd.conf file is configured to answer both kinds of requests.

  4. The server gives out boot kernels through a program called tftpboot. All kernels are in the tftpboot dir. PXE booting is configured in a file called /tftpboot/lts/pxe/pxelinux.cfg/default . The actual PXE kernels are in /tftpboot/lts/pxe/
    /tftpboot/lts/pxe/vmlinuz-2.4.9-13-k12ltsp  
    << Default kernel...
    /tftpboot/lts/pxe/vmlinuz-2.4.9-1-kitchen-sink  
    << kernel with many options compiled in... Use this one if you're having trouble with the default kernel.

    We'll cover how to make boot floppies again when we discuss configuring clients. We do supply many floppy boot images in /tftpboot/lts/boot/bootroms. These boot images are handy for testing. Just put a formatted floppy disk in your computer and type cat /tftpboot/lts/boot/bootroms/eepro100.lzdsk > /dev/fd0 to create a boot floppy for any of the cards listed. We used the Intel eepro100 card in the example above.

  5. You can list specific clients in the dhcpd.conf file. This helps when some need a special kernel or workstation specific settings are required for different video drivers, mice or sound settings. Clients not specifically listed in dhcpd.conf will boot with default settings as supplied in the lts.conf . Examples are included in the default dhpcd.conf file. Note that the IP numbers here are below 192.168.0.100.

    host ws002 {
    hardware ethernet 00:D0:09:30:6A:1C;
    fixed-address 192.168.0.2;
    filename "/lts/vmlinuz-2.4.9-ltsp";
    }

    After adding an entry for the workstation in 
    dhpcd.conf
    you can add options in the lts.conf file found in /opt/ltsp/i386/etc/. This is an important file as it also contains the default settings for all your workstations. We've included a sample in the box below. 

    #
    # Config file for the Linux Terminal Server Project (www.ltsp.org)
    #

    [Default]
            SERVER             = 192.168.0.254
            XSERVER            = auto
            X_MOUSE_PROTOCOL   = "PS/2"
    #        X_MOUSE_PROTOCOL   = "IMPS/2"  << for wheel mice
            X_MOUSE_DEVICE     = "/dev/psaux"
            X_MOUSE_RESOLUTION = 400
            X_MOUSE_BUTTONS    = 3
            X_USBMOUSE_PROTOCOL= "PS/2"
            X_USBMOUSE_DEVICE  = "/dev/input/mice"
            X_USBMOUSE_RESOLUTION = 400
            X_USBMOUSE_BUTTONS = 3
            USE_XFS            = N
            LOCAL_APPS         = N
            RUNLEVEL           = 5

     
            # enable sound by default, set the default volume to 75
    SOUND = Y
    VOLUME = 75

    # ISA sound cards require you to manually load the proper module:
    # for example:
    #SMODULE_01 = sb io=0x220 irq=5 dma=1

    #------------------------------------------------------------------------------
    #
    # Example of specifying X settings for a workstation

    #[ws001]
    #        XSERVER            = auto
    #        LOCAL_APPS         = N
    #        USE_NFS_SWAP       = Y
    #        SWAPFILE_SIZE      = 48m
    #        RUNLEVEL           = 5


  6. If you're having trouble at this point a good resource is the LTSP documentation. They have a step by step description of the boot process and troubleshooting tips that are much more detailed than what we've provided here. If your client is getting its IP number and kernel image you should be up and running. 

NFS Mount for /home:  (more NFS info from the
Red Hat Customization Guide )
We have several LTSP servers in one building. All of them share the same /home directory via NFS. We have one server that acts as the home folder file server for the school. We sync the passwd, group and shadow files to each LTSP server from this server. This means that any user can sit down at any terminal regardless of the host LTSP server and still have access to his/her settings and files. Setting up NFS is very easy to do.
  1. Configure the /home folder server by adding a line to /etc/exports:
    /home   192.168.0.0/255.255.255.0 (rw)


  2. Make sure that /home is an empty directory on the LTSP server. We'll use it as the mount point for the NFS mount by adding one line to /etc/fstab:
    server:/home/     /home     nfs     defaults,rsize=8192,wsize=8192     0 0
    In this example we are mounting from a computer called "server." Make sure the NFS host and IP number are listed in your /etc/hosts file and adjust as needed for your network.

  3. We don't add users often so simply copying passwd, group and shadow files from the home server to /etc on the LTSP servers works well for us to keep user logins synched.  I'm sure there are better ways of doing it. Share yours with me and we'll put your howto's on this page!  ;-)

Printing:
There are two ways to add printers. Adding printers to the LTSP server makes them available to all the clients as well. This is the easiest way to do it. Just run the printtool utility and add printers as you would for any other Linux box. You will need to run the spadmin utility as root to configure printers for OpenOfice. This utility is copied to /root/OpenOffice when root runs OpenOffice for the first time. See the Red Hat Customization Guide for more printtool info.
NOTE: If you are having problems printing from OpenOffice, make sure you've set the paper size to letter.

You can also add printers to workstations. See the LTSP documentation for examples on this.