Revision 21 as of 2005-10-21 09:23:06

Clear message

Thin Client How-To


You will need:

  • An Ubuntu 5.10 system to be the server
  • At least one PXE-bootable system to be a client
  • A bunch of disk space
  • A fast network connection, or a local Breezy mirror, or some patience
  • A DHCP server which is capable of supporting PXE clients, or a separate network segment where you can run a dedicated DHCP server
  • Command-line familiarity
  • A sense of adventure
  • A burning desire to send feedback to [ ubuntu-devel]

Getting Started

NOTE: If you plan to use the server as gateway/nat/firewall machine, it is strongly suggested to configure all the network interfaces before proceeding with the following steps.

  1. Set up the DHCP server
    • If you have an existing DHCP server which can support PXE clients:
      • Configure it to pass a boot filename of /ltsp/pxelinux.0 and a root path of /opt/ltsp/i386

      • For ISC DHCPD, use the following options:

        filename "/ltsp/pxelinux.0";
        option root-path "/opt/ltsp/i386";
      • Install ltsp-server on the server: {{{sudo apt-get install ltsp-server


  • If you want to run a dedicated DHCP server on the thin client server:
    1. Install ltsp-server-standalone on the server: {{{sudo apt-get install ltsp-server-standalone


  1. If necessary, customize /etc/ltsp/dhcpd.conf (by default it's configured for a server at serving PXE clients)

  2. If you are running a firewall on the server, you'll need to open TFTP and NFS (and DHCP if you're running the standalone server). Also, make sure portmap isn't limited to the loopback interface in /etc/default/portmap (comment out the line with "-i"). The before mentioned -i does not exist in a clean installed breezy. You also may want to edit `/etc/hosts.allow' and limit access for portmap, rpc.mountd, rpc.statd, and in.tftpd to the local network: {{{portmap:

rpc.mountd: rpc.statd: in.tftpd:}}}

  1. Restart the nfs subsystem: {{{sudo invoke-rc.d nfs-kernel-server restart

sudo invoke-rc.d nfs-common restart sudo invoke-rc.d portmap restart}}}

  1. Build the thin client runtime environment: {{{sudo ltsp-build-client


  • This script is hardcoded to use a particular Ubuntu mirror, so you may wish to edit it if you have a nearby mirror
  • If you changed your aptitude dependency-settings not to select recommended packages automatically, not all required packages will be downloaded and installed by this script. Then no login with sdm is possible for example because some parts of the x-server are missing
  1. Check /opt/ltsp/i386/etc/ssh/ssh_known_hosts and ensure that your host key is associated with your host's IP address. Depending on your /etc/hosts configuration, this may not always be correct automatically (yet). If it looks like this:

    servername ssh-rsa AAAAB3NzaC1yc2EAAAABI...

    then add the IP address like this:

    servername, ssh-rsa AAAAB3NzaC1yc2EAAAABI...

    AND file a bug in [ Bugzilla]. THIS SHOULD NOT HAPPEN.

  2. Optionally, create /opt/ltsp/i386/etc/lts.conf. If you don't create one, reasonable defaults and auto-detected values will be used.

  3. PXE boot the client and see what happens. If all goes well, you should see a graphical login dialog.
  4. If your client doesn't have PXE on the network card, you can generate a custom boot CD or floppy at []. Burn the iso or floppy image and boot from that.

  5. Log in, with any user authorized to login remotely via ssh, and see what happens. If all goes well, you should get a working desktop session on the server.
  6. Send mail to [ ubuntu-devel] with your findings


  1. ["ThinClientHowtoNAT"]