Novell is now a part of Micro Focus

Setting up LTSP (Linux Terminal Server Project) and SUSE Linux Enterprise 9 for PXE Support

Novell Cool Solutions: Feature
By Michel Bluteau

Digg This - Slashdot This

Posted: 10 Sep 2004

This document is a quick step-by-step setup guide for the installation of LTSP on top of the latest distro release of Novell's SUSE Linux Enterprise Server, SLES 9, which is leveraging kernel 2.6. The steps are pretty much in line with the steps described in the documentation available from for LTSP 4.1, except for a few things. So this document complements the official documentation, and also demonstrates the feasibility, without too many hurdles, of setting up a LTSP server over SLES 9 for supporting PXE.

My overall experience with LTSP has been very positive. Within half a day after downloading LTSP for the first time ever, I was up and running on top of SLES 9.

The first step is to obtain SLES 9 from Novell. As of September 2004, it is possible to download the distro for free from and obtain a 30-day access code for support and downloading updates. After 30 days, support must be purchased. See for details. The procedure for SLES 8 should be fairly similar if not identical.

After you have successfully installed SLES 9, with default options, it is a good idea to assign a static IP address and change the host name to something meaningful like ltspserver.

Once SLES 9 is up and running, you can download the LTSP installer from for release 4.1. You have the choice between a RPM or tarball/TGZ version. My preference goes for the RPM version.

Figure 1: LTSP 4.1 installer download web page.

Once you have completed the download for the installer, install it with the rpm utility.

Figure 2: rpm command to install the ltsp installer.

Figure 3: Result from the installation for the LTSP installer in rpm format.

Once the installer is available, type ltspadmin from a shell.

Figure 4: How to access the ltspadmin utility.

If you performed a default installation of SLES 9, you will get an error when executing ltspadmin, referring to a missing perl module.

Figure 5: Error message about missing perl module.

The modules can be installed through YaST.

Figure 6: Using YaST for installing missing required perl module and dependencies.

Once the perl module is installed, you can re-execute ltspadmin and get to the main menu.

Figure 7: Main menu for ltspadmin.

If you select the first menu item, Install/Update LTSP Packages, you will be presented with the configuration wizard for the installation utility.

Figure 8: First time installation for LTSP Packages.

Figure 9: Accept default site for packages download.

Figure 10: Select location for the LTSP client tree.

Figure 11: Select HTTP/FTP proxy if any.

Figure 12: Confirm choices and proceed.

Figure 13: Download process for LTSP packages.

If the download attempt fails, wait some time and try again. The site may be busy and the process is probably timing out.

Figure 14: Failed attempt to download packages.

Figure 15: Initial step for download, packages selection.

Figure 16: Recommended selection of all the packages.

Figure 17: Start the download and installation for selected packages.

Figure 18: Download phase for selected packages.

Figure 19: Installation phase for selected packages.

Figure 20: Download and installation phases completed successfully.

Figure 21: Select Configure LTSP from main menu.

Figure 22: Configure option first check services status.

Figure 23: Select S to verify services status.

Figure 24: Services status.

Figure 24 shows that the tftp module is not installed. Since this module is required but not installed by default for SLES (atftp is installed instead), YaST must be used to install tftp.


Figure 25: YaST utility to install tftp.

Figure 26: Conflict resolution between tftp and atftp. Remove atftp

Figure 27: Select S to see if tftp is now being recognized by ltspadmin.

Figure 28: tftp is now recognized by ltspadmin.

Figure 29: Select C to configure services manually.

Figure 30: Main menu for configuring services.

Figure 31: Runlevel selection, default is 5 for X-Windows.

Figure 32: Network interface configuration.

Figure 33: Configuration for the dhcp daemon.

Figure 34: Result of building a sample dhcpd.conf file.

Figure 35: Resulting dhcpd.conf.sample file.

One can use a combination of YaST and manual editing of the dhcpd.conf file based on the example. The following dhcpd.conf file is an example leveraging PXE:

## - - - - - Beginning of dhcpd.conf example for PXE - - - - -

option domain-name "ltsp";
option domain-name-servers,;
option routers;
option root-path "";
option option-128 code 128 = string;
option option-129 code 129 = text;
default-lease-time 86400;
ddns-update-style none;
subnet netmask {
  option log-servers;
  use-host-decl-names on;
## If you want to use static IP address for your workstations, then un-comment
## the following section and modify to suit your network.
## Then, duplicate this section for each workstation that needs a static
## IP address.
  host ws150 {
    hardware ethernet    00:0C:29:74:70:C1;
    filename             "/lts/2.4.26-ltsp-2/pxelinux.0";
## If you want to use a dynamic pool of addresses, then un-comment the following
## lines and modify to match your network.

## - - - - - End of dhcpd.conf example for PXE - - - - -

Figure 36: Configuration of tftpd through ltspadmin.

Figure 37: Configuration for the portmap daemon.

Figure 38: Configuration for the nfs daemon.

Figure 39: The configuration utility for the nfs daemon cannot complete the operation.

Figure 40: YaST must be used to complete the nfs daemon configuration.

Figure 41: YaST configuration for nfs with defaults (no exported directories).

After configuring nfs through YaST, you will likely need to reboot the server in order for the nfs daemon to start. Then you can go back to ltspadmin to resume the configuration.

Figure 42: Configuration for the Xdmcp protocol.

Figure 43: Configuration for the /etc/hosts file.

Figure 44: Resulting /etc/hosts file.

Figure 45: Configuration for the /etc/hosts.allow file.

Figure 46: Configuration for the /etc/exports file for nfs shares.

Figure 47: Resulting entries in the /etc/exports file for nfs shares.

Figure 48: Resulting nfs shares seen through YaST.

Figure 49: Creation of the default lts.conf file.

Figure 50: Status services after the manual configuration of services.

Figure 51: Test workstation for PXE using a VMware virtual machine with no OS.

N.B. Note the MAC address for your workstation and edit /etc/dhcpd.conf accordingly.

Now that you have configured all the required server sides services for LTSP, and that you have determined the MAC address for a test workstation that supports PXE (I am using VMware in my example for the diskless workstation), you are ready to give it a shot. The two following screen shots illustrate the boot process and the resulting X-Windows session for the diskless workstation obtained through PXE.

Figure 52: Diskless workstation loading kernel through PXE.

Figure 53: Resulting X-Windows session loaded through PXE for the diskless workstation.

Conclusion: Hopefully this example configuration with detailed steps for LTSP 4.1 on SLES 9 has been or will be helpful to you. You can send feedback and comments back to me at Remember to get rid of the TAKETHISOUT part, which is just a trick to fool those spambots roaming on the net.

Thank you for taking the time to read this document.

Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions.

© Copyright Micro Focus or one of its affiliates