Downloading and Installing LTSP, version 3.0

Updated: Feb 03 2004 - James McQuillan


NOTE: This document is intended for LTSP-3
If you are using LTSP-4, please take a look at this document for information on installing it.



There are several packages that make up the LTSP. Knowing the purpose of each package will help to ensure that you will only be downloading the pieces that you need.

There are 4 major groups of packages for LTSP. They are: Core, Linux Kernel, X Windows and Local apps. We broke the packages into groups, because of functionality. Some people wanted to install LTSP and just run character based apps. So, we pulled X windows out of the core. And local apps is an optional feature. Not everybody has workstations that are powerful enough to run apps locally. So, we figured that we'd make the local apps support an optional package.

In addition to the major packages described above, there are also some other packages, adding additional features to the LTSP system.


Most of the LTSP packages are available in RPM, TGZ and DEB formats, giving you freedom to choose your installation method. For the RPM and DEB package formats, it's a simple matter of running the RPM or DEB install utility. For the TGZ files, there are a few more steps.


Installing the RPM packages is fairly straight forward.

  rpm -ivh ltsp_core-3.0.9-0.i386.rpm


There are two possible ways to install the DEB packages: By hand or with apt-get. You can install the packages by hand with

  dpkg -i ltsp-core-i386_3.0.7-3_all.deb
Using apt-get requires three steps. First, add the line

  deb stable main non-free
to /etc/apt/sources.list. Then, fetch the list of available packages with

  apt-get update
and install the package with

  apt-get install ltsp-core-i386
Note that you do not need to download the package when using this method, apt-get will do that for you. Please read the Apt Howto if you need more details.


Each of the packages include an INSTALL or README file, describing how to install. Basically, just put the packages in the /tmp directory, and un-tar them.

  cd /tmp
  tar xvzf ltsp_core-3.0.9-i386.tgz
  cd ltsp_core

The ltsp_core package has an additional step of running ltsp_initialize to enable the services required for a remote workstation to connect to the server.

The ltsp_core package MUST be the first package installed.

Package Size File
ltsp_core-3.0.9 1.45mb   RPM DEB TGZ
ltsp_kernel-3.0.15 5.5mb   RPM DEB TGZ

ltsp_x_core-3.0.4 11.0mb   RPM DEB TGZ
ltsp_x_fonts-3.0.0 8.9mb   RPM DEB TGZ

ltsp_x336_3dlabs-3.0.0 970kb   RPM DEB TGZ
ltsp_x336_8514-3.0.0 777kb   RPM DEB TGZ
ltsp_x336_agx-3.0.0 857kb   RPM DEB TGZ
ltsp_x336_fbdev-3.0.0 895kb   RPM DEB TGZ
ltsp_x336_i128-3.0.0 959kb   RPM DEB TGZ
ltsp_x336_mach32-3.0.0 844kb   RPM DEB TGZ
ltsp_x336_mach64-3.0.0 896kb   RPM DEB TGZ
ltsp_x336_mach8-3.0.0 781kb   RPM DEB TGZ
ltsp_x336_mono-3.0.0 867kb   RPM DEB TGZ
ltsp_x336_p9000-3.0.0 866kb   RPM DEB TGZ
ltsp_x336_s3-3.0.0 1.07mb   RPM DEB TGZ
ltsp_x336_s3v-3.0.0 955kb   RPM DEB TGZ
ltsp_x336_svga-3.0.0 1.5mb   RPM DEB TGZ
ltsp_x336_vga16-3.0.0 869kb   RPM DEB TGZ
ltsp_x336_w32-3.0.0 796kb   RPM DEB TGZ
  XFree86 3.3.6 - only needed if XFree86 4.1
  does not support your video chipset

ltsp_local_apps-3.0.0 1.0mb   RPM DEB TGZ
ltsp_local_netscape-3.0.0 13.0mb   RPM   TGZ
  Only needed if you want to run apps locally

ltsp_initrd_kit-3.0.13 2.4mb       TGZ
ltsp_util_src-3.0.0 246kb       TGZ
  Useful for building custom
  kernels and LTSP utilities

Contributed stuff
ltspwebcam-0.2 508kb       TGZ
346kb       TGZ
lts_scanner-0.01 950kb       TGZ

Wireless and PXE
wireless_ltsp-3.0.5 2.8mb       TGZ
pxestuff-3.0.5 1.4mb       TGZ

Core packages

At a very minimum, you will need to download the ltsp_core and ltsp_kernel packages. This will give you enough to boot the workstation and run a character based Telnet to the server. Basically, a good replacement for a dumb terminal connected via Ethernet.
ltsp_core-3.0.9-i386.tgz (1.45mb) The "Core" package of LTSP. This package is required

Linux Kernel package

The standard ltsp kernel package contains an initial ramdisk (initrd). Inside the initrd, we include all of the network driver modules and a userspace dhcp client called dhclient. By calling dhcp in userspace instead of in kernel space, we can allow the NFS server to be different from the TFTP server. Also, we can compile the network drivers as modules, and automatically determine the correct NIC module to load. (PCI network cards only).

ltsp_kernel-3.0.15-i386.tgz (5.5mb) The kernel package that will be downloaded to the workstation
The kernel is called:
vmlinuz-2.4.21-ltsp-1 Kernel without LPP

The LPP kernel really looks great during the workstation boot, but if the workstation has a problem booting, it may be difficult to see why.
So, PLEASE try the NON-lpp kernel first. Until you know that everything is working.

Workstation booting with
Linux Progress Patch

X Windows packages

If you want to run X Windows (A very good GUI), then you will need to download the X core package. That will give you all of the drivers for XFree86 4.1.0.

It is recommended that you also download the X Fonts package. This package has been separated from the X Core package, because some people choose to use an X Font server. A Font server requires some additional configuration on the server, to enable it to serve fonts to a workstation. So, unless you really know what you are doing with X Font Servers, you should probably download the X Fonts package.

ltsp_x_core-3.0.4-i386.tgz (11.0mb) The The basic X Windows components (including the XFree86 4.1.0 drivers)
ltsp_x_fonts-3.0.0-i386.tgz (8.9mb) The X fonts package.

Support for older video chipsets
There are still some video chipsets that are not supported by XFree86 4.1.0. For those, we have also made the older XFree 3.3.6 Xservers available. The S3 chipset is a good example of a need for the 3.3.6 Xservers.

If you need one of the XFree86 3.3.6 Xservers, then choose the package you need and download that.

ltsp_x336_3dlabs-3.0.0-i386.tgz (970kb) The XFree86 3.3.6 Xserver for 3dlabs chipsets
ltsp_x336_8514-3.0.0-i386.tgz (777kb) The XFree86 3.3.6 Xserver for 8514 chipsets
ltsp_x336_agx-3.0.0-i386.tgz (857kb) The XFree86 3.3.6 Xserver for agx chipsets
ltsp_x336_fbdev-3.0.0-i386.tgz (895kb) The XFree86 3.3.6 Xserver for FrameBuffer device
ltsp_x336_i128-3.0.0-i386.tgz (959kb) The XFree86 3.3.6 Xserver for i128 chipsets
ltsp_x336_mach32-3.0.0-i386.tgz (844kb) The XFree86 3.3.6 Xserver for Mach32 chipsets
ltsp_x336_mach64-3.0.0-i386.tgz (896kb) The XFree86 3.3.6 Xserver for Mach64 chipsets
ltsp_x336_mach8-3.0.0-i386.tgz (781kb) The XFree86 3.3.6 Xserver for Mach8 chipsets
ltsp_x336_mono-3.0.0-i386.tgz (867kb) The XFree86 3.3.6 Xserver for mono chipsets
ltsp_x336_p9000-3.0.0-i386.tgz (866kb) The XFree86 3.3.6 Xserver for P9000 chipsets
ltsp_x336_s3-3.0.0-i386.tgz (1.07mb) The XFree86 3.3.6 Xserver for S3 chipsets
ltsp_x336_s3v-3.0.0-i386.tgz (955kb) The XFree86 3.3.6 Xserver for S3Virge chipsets
ltsp_x336_svga-3.0.0-i386.tgz (1.47mb) The XFree86 3.3.6 Xserver for Many video chipsets
ltsp_x336_vga16-3.0.0-i386.tgz (869kb) The XFree86 3.3.6 Xserver for vga16 compatible cards
ltsp_x336_w32-3.0.0-i386.tgz (796kb) The XFree86 3.3.6 Xserver for w32 chipsets

Local Apps Packages

If you have a workstation with a bit of horsepower, you can utilize some of that power by running applications locally, on the workstation. A small Pentium, PII, or Celeron based workstation with at least 64mb of ram is a pretty good candidate for running local apps.

To run local apps, you will also need to setup NIS (Network Information Services) on the server. You will need that so that when you use rsh to execute the application on the workstation, it will be able to authenticate the user.

Currently, the only application package that we have is Netscape. Additional packages are planned in the future, as well as documentation describing how to build local app packages.

ltsp_local_apps-3.0.0-i386.tgz (1.0mb) Local apps support. This package contains the pieces that make local applications possible
ltsp_local_netscape-3.0.0-i386.tgz (13.0mb) Netscape 2.78 pre-configured for installation as a local application
Once the Netscape local app package has been installed, you can run it by getting a shell session on the server and running this:

    HOST=`echo $DISPLAY | awk -F: '{ print $1 }'`
    rsh ${HOST} MOZILLA_HOME=/usr/local/netscape \
                /usr/local/netscape/netscape     \
		-display ${DISPLAY}

Miscellaneous Packages

If you are going to be building your own custom kernels for the workstations, then you will need the ltsp_initrd_kit package. This package contains the scripts and root filesystem hierarchy that makes up the initial ram disk (initrd) that is downloaded along with the kernel, when the workstation boots.
ltsp_initrd_kit-3.0.13-i386.tgz (5.5mb) The scripts and files needed to build the Initial Ram Disk (initrd) for the kernel
There are several utility programs that were written for LTSP, including getltscfg, ltsprtd, pci_scan, prep_swap and startsess. The ltsp_util_src package contains the source code for those utilities.
ltsp_util_src-3.0.0-i386.tgz (245kb) The source code for the utilities that were written specifically for LTSP

Contributed Packages

Webcam package

The webcam package was created by Andrew Williams. He put together all of the pieces you need, including documentation to connect a Web cam to your workstation and serve up pictures.
ltspwebcam-0.1.tgz (428kb) The scripts and files needed to support a web cam on an LTSP workstation.
The ltspsound package was originally created by Boris Reisig, then modified by Andrew Williams to work with the 2.09 series of LTSP.


ltspsound-0.1c.tgz (215kb) The scripts and files needed to support a sound card on an LTSP workstation.
The lts_scanner package was developed by Robert Stanford, to allow you to connect a Scanner to a workstation and scan in documents.
lts_scanner-0.01.tgz (135kb) The scripts and files needed to support a scanner on an LTSP workstation.

DHCP setup

During the installation of the LTSP core package, a samle dhcpd.conf file is installed. It is called /etc/dhcpd.conf.example.

If you don't already have a dhcpd.conf file, this sample file can be copied into /etc/dhcpd.conf.

Certainly, some modifications will be needed, to make dhcpd work in your environment. Particulary, the MAC address will need to be set, to match that of the workstations.

Following is an example dhcpd.conf file:

default-lease-time            21600;
max-lease-time                21600;

option subnet-mask  ;
option broadcast-address;
option routers      ;
option domain-name-servers;
option domain-name            "";
option root-path              "";

shared-network WORKSTATIONS {
    subnet netmask {

group   {
    use-host-decl-names       on;
    option log-servers;

    host ws001 {
        hardware ethernet     00:E0:06:E8:00:84;
        filename              "/lts/vmlinuz-2.4.18-ltsp-1";

ISC DHCP v3.0 or newer (Mandrake)

If you are using a version of DHCP from ISC, version 3.0 or newer, then you will need an additional line in the /etc/dhcpd.conf file.

The first line of the dhcpd.conf file should be this:

ddns-update-style             none;

ISA Network cards

The LTSP kernels can automatically detect the network card, if it is a PCI card. If it is not, then you have to specify which network card driver to load. And, some ISA network cards also require an IO option to be passed to the module.

You can specify the NIC driver and IO address by adding an entry to the individual host section of the dhcpd.conf file. Here's an example for a workstation with an NE2000 network card:

    host ws001 {
        hardware ethernet     00:E0:06:E8:00:84;
        filename              "/lts/vmlinuz-2.4.18-ltsp-1";
        option option-128     e4:45:74:68:00:00;
        option option-129     "NIC=ne IO=0x300";

There is a very important thing to notice about the example above. The value specified for option-128 is NOT a mac address. The value e4:45:74:68:00:00 is a special value that Etherboot requires. If it is not there, or is something other than the value above, then all of the other extended options will be ignored by Etherboot.

Also, if you are using ISC dhcp, version 3.0 or above, then you need to add a few more lines near the top of the dhcpd.conf file, to define the types of values that will be specified with option 128 and 129. The last 2 lines of the following fragment show how they should be specified:

option domain-name-servers;
option domain-name            "";
option root-path              "";
option option-128 code 128 = string;
option option-129 code 129 = text;