LTSP is an add-on package for Linux that allows you to connect lots of low-powered thin client terminals to a Linux server. Applications typically run on the server, and accept input and display their output on the thin client display.
I'm writing this by installing LTSP on a clean box, and attempting to document every thing I do. Hopefully, that will make this how-to as complete as possible.
Ubuntu Installation
The first step, of course, is to install Ubuntu! I'm using the 4.10 stable WartyWarthog release, and only the Main repository. A typical desktop install is used, instead of Custom/Minimal: even though this will be a server, you'll want the complete set of desktop applications and X itself.
See also ThinClientHowto for info on how to install LTSP on more recent versions of Ubuntu.
Highly recomended, install SSH: SSHHowto
Since this is a server, you'll want a static network address.
sudo gedit /etc/network/interfaces
For help editing /etc/network/interfaces, check out man 5 interfaces
# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
Obviously the above is just an example. Adjust to fit your own network. Restart networking to adopt your new IP!
sudo /etc/init.d/networking restart
Installing dhcpd, tftpd, nfs
LTSP is a combination of existing protocols used together to boot diskless clients: dhcp, tftp, nfs, xdmcp. These do not all have to be run on the same server, it's quite possible to spead them out across many servers in a large deployment. I highly recomend reading the offical documentation to understand how the boot process works: [WWW] http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1.3-en.html#AEN53
To keep this simple, we'll install everything on one Ubuntu server:
sudo apt-get install dhcp3-server tftpd-hpa nfs-kernel-server
Opening up portmap
For desktop security, Ubuntu's portmapper is set to only listen to localhost by default. However, that would prevent LTSP clients from connecting to our nfs-server.
sudo gedit /etc/default/portmap
Comment out the second line:
# By default, listen only on the loopback interface
# ARGS="-i 127.0.0.1"
Installing ltsp-utils
These instructions are based off of [WWW] http://www.ltsp.org/ltsp-4.1.html
First we download and install ltsp-utils. Head over here and grab the tarball: [WWW] http://www.ltsp.org/ltsp-utils-0.10.tgz
tar xzvf ltsp-utils-0.10.tgz
cd ltsp-utils
sudo ./install.sh
However, ltspadmin won't run yet, it complains about needing the LWP Perl module. Luckly, this is right in Main, although it will take a few dependencies along for the ride.
sudo apt-get install libwww-perl
Now ltspadmin will run. You may want to download the packages first though.
Optional: Download LTSP Package ISO
Note that there are currently no up to date (ltsp-4.1) packages for Debian that I can find. Debian packages of LTSP would be a huge asset, much simplifying installation, maintance, and upgrading. I believe that creating Debian packages would be a very valuable way that Ubuntu could contribute back; given sufficient free time, I'm interested in learning how to create .debs for LTSP. Help welcome. -JoeZicarelli
There are two ways you can download the LTSP packages: Download a 100M ISO image, or, let the ltspadmin utility download packages from online. I highly recomend the .iso, as recently the download servers have been very slow, having a local copy of the packages may save future pain. Grab it here from your favorite mirror: [WWW] http://prdownloads.sourceforge.net/ltsp/ltsp-4.1-0.iso
You can either burn the ISO and mount it, or simply mount it with the loopback device:
sudo modprobe loop
sudo mkdir /mnt/ltsp
sudo mount -o loop ltsp-4.1-0.iso /mnt/ltsp/
Installing LTSP
Now run ltspadmin:
sudo ltspadmin
If you downloaded the ISO of packages as described above: select Configure the installer options. At the prompt Where to retrieve packages from?, enter in the path to the mounted packages: [WWW] file:///mnt/ltsp
To install, select Install/Update LTSP Packages. This brings up a package-selection menu: you can hit A to select everything, and then Q to leave the menu. It'll ask you if your sure; y to actually install.
Now run through Configure LTSP and configure everything!
Moving LTSP's tftpboot
Ubuntu expects files benig served by tftp to be in /var/lib/tftpboot/, while LTSP put them in /tftpboot/, so we'll just move them and delete the empty /tftboot/:
sudo mv /tftpboot/lts /var/lib/tftpboot/
sudo rmdir /tftpboot
Client Configuration
The individual clients need to be configured, this is done in the following files:
*
/etc/dhcp3/dhcp.conf
*
/etc/hosts
*
/opt/ltsp/i386/etc/lts.conf
Refer to the offical docs for help: [WWW] http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1.3-en.html#AEN524
XKB Error
LTSP 4.1 runs xorg, while Ubuntu 4.10 WartyWarthog runs xfree. This generates an XKB Error when logging remotly with XDMCP. Something like:
Error activating XKB configuration.
Probably internal X server proublem.
X server version data:
The X.Org Foundation
60801099
If you report this situation as a bug, please include:
- The result of xprop -root | grep XKB
- The result of gconftool-2 -R /desktop/gnome/peripherals/keyboard/xkb
This can be fixed with two symbolic links:
sudo ln -s /etc/X11/xkb/rules/xfree86 /etc/X11/xkb/rules/xorg
sudo ln -s /etc/X11/xkb/rules/xfree86.lst /etc/X11/xkb/rules/xorg.lst
I don't believe this will be an issue for Ubuntu HoaryHedgehog, as xfree is no longer used.
Test a Workstation!
Hopefuly it'll work!
Moving Forward.
To get a working 2.6.x Kernel working with LTSP or get HAL and D-Bus to work in 2.4.x