On a Debian 4.0 (Etch) or newer system:

1. If you have a DHCP server already up and running on your network:

apt-get install ltsp-server openssh-server  

Otherwise, if you want your LTSP server to function as the DHCP server:

apt-get install ltsp-server-standalone openssh-server 

2. Build the LTSP client environment:

ltsp-build-client

If you're installing a different debian distribution than what's on the server, you will need to specify the --dist xxx commandline option. where xxx is your Debian distribution (e.g. lenny, etch). See /usr/share/debootstrap/scripts/.

ltsp-build-client will download a complete Debian filesystem into /opt/ltsp/i386 (or specify an alternate location with '--base') and install the ltsp-client and ldm packages (the LTSP Display Manager). Typically, you will need a desktop environment like gnome or xfce, or a window manager such as icewm installed on the server (NOT in the chroot).

The 2 ltsp configuration files inside the client are /etc/lts.conf and /etc/default/ltsp-client-setup. See the examples in /usr/share/doc/ltsp-client*. Also see the Edubuntu wiki http://doc.ubuntu.com/edubuntu/edubuntu/handbook/C/customizing-thin-client.html (note: Debian LTSP still uses NFS by default).

Configure ldm by copying ldm-init from /usr/share/doc/ldm/examples/ to to /etc/ and update it according to the comments in the file.

If you change the IP data after you have done the initial setup, update the LDM_SERVER variable in ldm-init and run ltsp-update-sshkeys on the server.

The files the client will boot are installed on the server into/var/lib/tftpboot.

3. Configure /etc/dhcp3/dhcpd.conf:

See examples in /usr/share/doc/ltsp-server/examples/dhcpd.conf or /etc/ltsp/dhcpd.conf and adapt to your network.

etch is still affected by: http://bugs.debian.org/416868 so you need to add this line if the dhcp server and tftp server are the same:

next-server ip.address.of.server;

lenny also requires the next-server option, but is included in the example dhcpd.conf file.

Restart dhcp3-server:

invoke-rc.d dhcp3-server restart

Alternately, configure /etc/dnsmasq.conf:

See example in /usr/share/doc/ltsp-server/examples/dhcpd-dnsmasq and adapt to your network.

Restart dnsmasq:

invoke-rc.d dnsmasq restart

4. Configure /etc/exports:

/opt/ltsp *(ro,no_root_squash,no_subtree_check)

5. Start tftpd. By default, tftpd-hpa is started from inetd. you may need to restart inetd after installing tftpd-hpa.

invoke-rc.d openbsd-inetd restart

Alternately, edit /etc/default/tftpd-hpa to have tftpd-hpa start on it's own.

RUN_DAEMON="yes"

and restart tftpd-hpa

invoke-rc.d tftpd-hpa restart

6. Boot a PXE or Etherboot capable machine and enjoy. note that some older versions of etherboot do not support ELF images, and may not work without additional configuration.

Backported packages for etch

If you want to use newer LTSP related packages (with ltspfs and pulseaudio sound):

1. Add the key(s) for the repository to your keyring(after verifying that you trust them):

  1. wget http://pkg-ltsp.alioth.debian.org/debian/pkg-ltsp-keyring

  2. apt-key add pkg-ltsp-keyring

2. Add to /etc/apt/sources.list:

3. Update:

4. Install new packages:

5. When building a chroot, you'll need to tell it to use the backport sources:

 ltsp-build-client \   --extra-mirror "http://pkg-ltsp.alioth.debian.org/debian etch-ltsp-backports main" \   --apt-key /etc/apt/trusted.gpg

to get sound working with pulseaudio+alsa:

to get local devices working with ltspfs (usb sticks, cdrom, floppy):

1. echo fuse >> /etc/modules

2. modprobe fuse (or reboot your server)

3. adduser fuse USER

for some additional troubleshooting, try: http://wiki.ubuntu.com/DebugLocalDev

Known issues with backports(that do not appear in sid):

1. ldm: login screen shows white background (background image is hidden). no known workaround at this time.

2. ltspfs: mounts appear strange when running df. util-linux 2.13 fixed this bug, however it is still present in etch. workaround is to make /etc/mtab a symlink to /proc/mounts: mv /etc/mtab /etc/mtab.old ; ln -s /proc/mounts /etc/mtab

3. ltsp-client: hostname displays as (none). workaround set up dns on the thin-client network, or: echo ltsp > /opt/ltsp/i386/etc/hostname

if X doesn't automatically configure properly (it uses X.org's built-in configuration, which doesn't work as well on the version on X.org in etch), you may want to switch back to the slower but more reliable X configuration using xdebconfigurator:

1. chroot /opt/ltsp/i386 apt-get install xdebconfigurator

2. cp /opt/ltsp/i386/usr/share/doc/ltsp-client-core/examples/configure-x-xdebconfigurator.gz /opt/ltsp/i386/etc/

3. gunzip /opt/ltsp/i386/etc/configure-x-xdebconfigurator.gz

4. chmod +x /opt/ltsp/i386/etc/configure-x-xdebconfigurator

5. echo CONFIGURE_X_COMMAND=/etc/configure-x-xdebconfigurator >> /opt/ltsp/i386/etc/lts.conf

6. echo 'copy_dirs="$copy_dirs /var/cache/debconf"' >> /opt/ltsp/i386/etc/default/ltsp-client-setup

7. echo 'temp_copy_dirs=" "' >> /opt/ltsp/i386/etc/default/ltsp-client-setup