LTSPHowTo
[http://www.ltsp.org/ Linux Terminal Server Project], as described on the top of their website:
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: 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 http://www.ltsp.org/ltsp-4.1.html
First we download and install ltsp-utils. Head over here and grab the tarball: 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: 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: 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: 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