How LTSP Works
LTSP is a collection of software that turns a normal GNU/Linux installation into a terminal server. This allows low-powered, low-cost thin-clients (or legacy hardware you already own) to be used as terminals to the thin-client server. LTSP is unique from other thin-client systems in that it is considered by many as the easiest to maintain.
Other thin-client systems require each client to have software that boots the system to a point to be able to connect to the terminal server. This could be a full-blown operating system, or a minimal OS that simply provides an interface to connect to the server. Systems such as this generally require more maintenance and administration, as the local software that boots the thin-clients may become corrupt or contain bugs that require attention.
LTSP, on the other hand, requires no client-side software. It requires only a PXE capable network interface, which many thin-clients and PCs have built-in already. This means that you need absolutely no physical storage media (hard disk, compact-flash, etc.) for your thin-client to boot to LTSP. This significantly reduces the amount of administration required to keep your network running.
The process of booting a thin-client to an LTSP server is as follows:
- Thin-clients boot via a protocol called PXE (Pre-eXecution Environment)
- PXE requests an IP address from a local DHCP server.
- The DHCP server passes additional parameters to the thin-client and downloads a Linux initramfs filesystem image via TFTP into a RAM disk on the client itself.
- The thin-client then boots the downloaded Linux initramfs image, detects hardware, and connects to the LTSP server's X session (normally handled by ldm).
From here, all operations such as authenticating your username and password, launching applications, and viewing websites are actually handled on the LTSP server rather than the thin-client. The LTSP server transfers all graphical information to the thin-client over the network. This allows very low powered thin-clients to utilize the power of the server for all operations. It also allows for large client deployments with reduced overall resource utilization, as 50 thin-clients all running the popular LibreOffice suite under different sessions generally only require enough RAM for a single instance of LibreOffice (excluding per-user configuration which is minimal). The server shares memory between user sessions, so libraries for applications are only loaded once and referenced for each user session.
The LTSP chroot environment
In order to turn a computer into a thin client, we need to run a mini version of GNU/Linux on the workstation. It needs to boot this mini version of GNU/Linux over the network, since it probably won't have a hard drive on its own. This mini GNU/Linux installation needs to live somewhere, and the best place for it is on the server.
This scaled-down GNU/Linux installation, customized so that it's efficient to boot over the network, is called a chroot environment. You can have several of them, based upon several different CPU architectures.
They'll normally live under /opt/ltsp on the server, with sub directories for each of the architectures. For instance, if you have a lab full of old Power PC Macs, and older PC's, you'll have an /opt/ltsp/ppc and an /opt/ltsp/i386 directory on the server.
This is the LTSP project's preferred area to store the chroot, however, different distros that support LTSP are free to change this. Check with your distro's specific LTSP documentation to see where the LTSP chroot is stored.
The reason why it is called a chroot environment is that to install it, the GNU/Linux command chroot is called to actually set the installation root to /opt/ltsp/<arch>. From there, a scaled-down version of the distribution is installed. What this means is that for you to manage the chroot, performing such things as updates, all you need to do is use the ltsp-chroot command to change the root of your installation. Then you can use all your tools like you normally would.
There are two components of a network: hardware and software. This section will give an introduction to both.
Networking works by breaking files and other data into little packets of information. These packets are transferred over a network. The difference between various types of networks is how they transfer packets.
There are two types of networking hardware: wired and wireless.
An important fact to remember is that a network will be only as fast as the slowest part. Making sure that your network setup matches your intended use case is an important consideration in an LTSP network.
Wired networking transfers packets over a cable that resembles a telephone cord, but with more wires. Wired networks can transfer packets at one of three possible speeds: 10 Mbit/sec, 100 Mbit/sec, or (Gigabit) 1000 Mbit/sec.
A network is only useful if it can connect multiple computers. There are some pieces of hardware that allow multiple computers to be connected in a network. They look alike, but they function differently and, likewise, operate at different speeds.
A hub is the simplest way to connect multiple computers. A hub has a lot of ports in the front and usually has several small lights corresponding to each port. The hub takes a message it receives on one port and re-sends it to all the ports. As a result, only one port can talk at a time.
A switch looks a lot like a hub; it has a lot of ports in the front and usually has several small lights corresponding to each port. However, a switch is unlike a hub because it only makes a connection between the ports it needs to. A switch can have multiple connections at the same time. This allows a switch to be faster than a hub.
A router is used to make a connection between two networks. Routers are also commonly used to connect a LAN (local area network) to the Internet.
Some people may wish to try using LTSP in a wireless environment, for various reasons. This presents some challenges.
Wireless networks typically have more latency than wired networks, which generally makes interactive programs feel slow and unresponsive. As well, wireless adapters cannot directly PXE boot, as you need to set things such as ESSID, keys, etc., which wouldn't be there in a PXE capable card.
However, for those wishing to use LTSP wirelessly, it is still possible, but requires more hardware. Wireless bridge boxes are available, which contain both an ethernet and a wireless network connection. One can typically connect to them like a small Internet router box, and program them with the information pertinent to your network. You can then use a standard wired network card connected directly to the bridge, and the bridge itself will handle the wireless part.
This method has been used with success by users of LTSP in the past. The latency of wireless makes the experience slower, however, depending on the application you wish to use, you may find it acceptible.
The most common network infrastructure services include:
DHCP (Dynamic Host Configuration Protocol)
Each computer on a network needs a unique identifier called an IP address. The IP address allows packets to be directed to the computer, much like a street address allows mail to be delivered to the correct house. An IP address follows a specific form: four groups of digits forming a number from 0 to 255. For example, a local IP address might be 192.168.2.50.
For convenience, a computer's IP address can be given by a server running the Dynamic Host Configuration Protocol (DHCP) service. DHCP automatically provides network settings to the computers on the network. With DHCP, there is no need to keep track of each computer's IP address.
DNS (Domain Name System)
DNS is a service that runs on a server, and it is like a phone book for computers, except that it stores IP addresses instead of phone numbers. Your computer talks to a DNS server every time you refer to another computer system with a name instead of an IP address. For example: www.ltsp.org, wikipedia.org, and google.com are all DNS hostnames.
NTP (Network Time Protocol)
NTP is a service that runs on a server and allows other computers to synchronize their clocks. The server synchronizes with an extremely accurate atomic clock, and then the clients synchronize with the server.
A Web server answers queries using protocols such as HTTP, and sends content such as web pages back to clients. Your Web browser almost exclusively talks to Web servers.
A Web proxy is a service that runs on a server and accesses Web sites on behalf of the clients. A proxy can cache some data to allow faster repeated access to commonly accessed pages. This is not really needed in essence for ltsp thin clients, since nothing runs on them, it all runs on the server. But in order to allow for content filtering, a proxy is required. In the case of a mixed network, where some clients are independent from the the thin client network, a proxy server is useful. The most common and recommended proxy solution is called Squid, which can be easily installed through your distro's package manager.
Content Filter or Net Guardian
A typical network requires a filtering policy to be implemented, which can easily be done by software like dansguardian, squidguard or squid-filter. This allows an administrator to block and control unwanted traffic like:
- banner ads,
- user behaviour tracking via cookies,
- animated pictures,
Firewall & Port Blocker
A firewall is usually a service on the server, but often DSL routers have the basic functionality of a firewall too. A firewall can protect your server (and clients) by restricting or allowing computers on the Internet from initiating connections into your server or network. There are many programs available for different distros. On Ubuntu and Debian we recommend using gufw (uncomplicated firewall), while Fedora has Fedora Firewall GUI, and SuSE has Yast2 Firewall. If they are not already installed, you can simply install them with your distro's package manager.
Getting the thin client to boot over the network can be accomplished in a variety of ways, using a boot ROM or local media.
Depending on your network card, it may already contain a boot ROM, or you may be able to use an EPROM programmer to create your own. Check the hardware documentation for the network card in your thin client for details.
Etherboot is a very popular open-source bootrom project. It contains drivers for many common network cards, and works very well with LTSP. ROM images suitable for booting from floppy, CD-ROM, etc., can be obtained from http://www.rom-o-matic.org. Linux kernels must be tagged with the `mknbi-linux`, which will prepare the kernel for network booting, by prefixing the kernel with some additional code, and appending the initrd to the end of the kernel.
Part of the 'Wired for Management' specification from the late 1990's included a specification for a boot ROM technology known as the Preboot eXecution Environment, commonly abbreviated as PXE. It enables computers to boot from a network image and allows computers to function without local storage of any kind. It also enables system administrators to centrally configure how computers should boot. This is the default method that LTSP uses to boot thin and fat clients, although it is also possible to boot clients that do not support PXE from local media.
A PXE ROM is available in most wired network cards nowadays. You often have to change the settings in the BIOS of a computer to make network the first boot device. For onboard network cards you often seperately have to enable the PXE ROM in the BIOS. During succesful PXE boot, the network cards ROM requests a DHCP lease from the network. The DHCP server tells the client where on the network it can find an image to boot from, which the PXE environment then downloads to start the computer.
Wireless network cards generally do not support PXE.
If your network card in the thin client doesn't have a boot ROM built in, and you don't have access to an EPROM burner, have no fear! Chances are, that old machine has a floppy drive, or CD-ROM in it. If so, then you can use local media to boot the thin client.
Booting Etherboot from a floppy is an excellent way of booting an LTSP thin client that doesn't have a boot ROM. Etherboot is loaded in the boot sector of the floppy. Then, it will act just like a boot ROM. The boot code will be executed, the network card will be initialized, and the kernel will be loaded from the network server.
The hard disk can be used with LILO or GRUB, to load the Linux kernel and initrd. You can also load the Etherboot bootrom image from the hard disk, and it will act like a bootrom.
A bootable CD-ROM can be loaded either with a Linux kernel, or an Etherboot image.
USB Memory device
Just like a CD-ROM, Floppy disk and Hard disk, you can use a USB Memory device to boot an Etherboot module.