Linux Terminal Server Project (LTSP) “is a free and open source add-on package for Linux that allows many people to simultaneously use the same computer. Applications run on the server with a terminal known as a thin client (also known as an X terminal) handling input and output. Generally, terminals are low-powered, lack a hard disk and are quieter than desktop computers because they do not have any moving parts.” (Wikipedia).
How it works?
When configured for network booting (PXE is not the only way, there is some more like Etherboot or NetBoot) the client first requests an IP address from the LTSP Server (which has a DHCP server running).
Once the IP has been gotten, the Linux kernel is transfer to the client by TFTP protocol, which is another server running in the LTSP server.
Then, the client mounts its root filesystem, by the NFS server running in the LTSP Server. After that loads Linux and starts the X window system. The client connects to the XDMCP login manager on the LTSP server.
I installed ltsp version 5.1, so in this version (and any newer that 5) the client first builds an SSH tunnel to the LTSP server’s X environment, through which it will start the LDM login manager (on the LTSP server). From this point forward, all programs are started on the LTSP server, but displayed and operated from the client.
………………………………………………………………………………………………………………………………………………………………………………………………………………………
To try this package I used my Laptop which have Fedora 10, following the steps that the guys from “K12Linux” (LTSP for Fedora) recommend in their Install Guide.
So, I installed the ltsp-server package:
# yum install ltsp-server
And since I want to test the client in the same machine but I can’t use KVM (my Laptop does not support virtualization very well) I don’t need to install ltsp-lvclient, instead of that, I will use a virtual machine on VirtualBox.
- This entry should have to be added to /etc/exports file:
/opt/ltsp *(ro,async,no_root_squash)
That will mount the files within ‘/opt/ltsp’ (server) into the client root filesystem with read-only permissions.
- We need a interface for handle the LTSP as well, we can use the ifup command for that:
# ifup ltspbr0
- This will bring this new interface up, run ifconfig command and the new interface will be there:

if you want to have it even after rebooting, need to have networking running (chkconfig network on)
- We need to turn on and start (by using ‘chkconfig servicename on’ and ‘service servicename start’) the next services:
xinetd
ltsp-dhcpd
rpcbind
nfs
sshd
And then, put the next servers on:
ldminfod
nbdrootd
nbdswapd
tftp
- Now the next step will take time (believe me, better do something else meanwhile….), execute this command to build the client:
# ltsp-build-client
When that be finish, you will see the next message:

In my case I had some troubles with my machine so I had to do it twice, if that happen to you, you have to erase the content of /opt/ltsp/ file before try to build the client again, otherwise it won’t let you do it.
Now is time to test it, open you VirtualBox (I assume that you have already one machine on it). Select the machine’s settings (because we need to specify that the interface used by our vm is ltspbr0) and in the Network tab change the interface like this:

Specifying the interface for Virtual the machine.
Then, start the machine and press F12 to enable PXE (stand for Preboot eXecution Environment, also know as “pixie”). Through that we won’t let the system start the boot process from the local hard drive, but from the network interface.
If everything goes right, the authentication screen will appear:

So you can authenticate with any valid user name in your machine.
I found this project useful since I have an extra machine at home, kind of old, but which can be useful for this purpose, so if I’m using my desktop computer, somebody else could use the old pc to connect as client of it and both work at the same time, nice…!, don’t you think?