Introduction: Another Almost Free Computers Thin Client Set Up.

About: computoman.blogspot.com Bytesize articles instead of a trilogy in one post.
If your computer budget is too high, then you need to look at this instructable. Great way to save on costs. Older machines can be converted to thin clients therefore reducing the need to purchase new equipment. Linux is replacing proprietary systems everywhere.  Get on the bandwagon and save money! This project (the first time we used it), saved us over ten thousand dollars in licensing fees alone for just a small office. That could make the difference in the bottom line. Those savings do not even touch the amount we saved in hardware costs by not having to get all new equipment.  It's your wallet.

ltsp (Linux Terninal Server Project).LTSP allows you to have one computer to do the heavy lifting for several or many thin clients. It is cheaper to purchase thin clients than full desktops, therefore less computer hardware cost overall. Also you have only one computer to support software wise as you only have to update just one machine instead of many.  Ltsp has been around a long time and I think was started by Redhat, but picked up by the community. You can cluster ltsp together and build massive networks, It is also very good for small businesses and small schools such a day care center.

What's needed:
Basic knowledge of linux and networking (tcpip setup and usage). If not get a pro to help.
Internet connection for downloading and installing software.
Computer (min 300mhz, but the faster the better) with two nics (network interface cards). the nic that will be used for the thin clients must be set up as static (256 meg ram plus 64 - 128 meg ram for each thin client. (i'm using 512 meg ram and a 800mhz machine for demo purposes. 
Some pxe bootable x86 compatible thin clients (or pxe bootable x86 based diskless pc's) with 128 meg ram or better that are setup for getting dhcp dynamically based ip addresses. The more memory the better and no need to statically assign ip addresses of client systems.
Network cabling (as needed). (100mhz or better).
Network switches (as needed). (100mhz or better).

Note: www.rom-o-matic.org allows you to make cd/usb/floppy boot disks if your computer does not support pxeboot.
Later you can also add support for other architectures such as the intel atom or even the old ppc based macs. If you are using a 64bit server, you will need to load the support for the 32bit architecture to support the older x86 systems.
Original instructable: https://www.instructables.com/id/Using-Thin-Clients-a-quick-way-with-Debian-linux/

Future instructables:
Part II  LTSP Internet access and some safety net.  https://www.instructables.com/id/Another-almost-free-computers-thin-client-set-up-P/
Part III LTSP Maintenance. https://www.instructables.com/id/Part-III-LTSP-Maintenance/
Part IV LTSP Clustering (in progress)

Note: the original version of ltsp (v4) supported the old less than 128 mb thin cleints and computers. Some people say that they run both at the same time, but I have never tried it. Still do have a server with the old version of ltsp on it. Just to keep the old thin clients useful.

Setup a Raspberry Pi as an LTSP client: https://www.instructables.com/id/Raspberry-Pi-Jack-of-all-trades/#step7

Note: You can use an RDP client to access MSWindows servera and Vnc to access Apple based systems. So you are not locked out of access those worlds.

Step 1: Software Install (on Ubuntu)

Pretty straight forward.  Installs the server side software.

Open a terminal prompt and type:
$ sudo apt-get update
$ sudo apt-get  install ltsp-standalone-server openssh-server.

This may take a short while depending on your internet connection.


Note: you may want to add a lighter desktop to ease memory usage/

$ sudo apt-get update
$ sudo apt-get install lxde

Step 2: Update Dhcpd.conf.

Updating the configuration for the DHCP:

1. Edit the dhcpd.conf for the ltsp. You will need to change the domain name to your preference. You will also need to change the network to agree with the ipadress of the nic to the ltsp thin client network. in this case it should be 10.1.4.1for the one described below. I used 192.168.0.1 for the pictured config,  Nic should be set to boot to use static ip or otherwise dhcp and other needed services will not start.

$ sudo nano /etc/ltsp/dhcpd.conf

[code]
#
# Default LTSP dhcpd.conf config file.
#

authoritative;

subnet 10.1.4.0 netmask 255.255.255.0 {
    range 10.1.4.220 10.1.4.250;
    option domain-name "example.com";
    option domain-name-servers 10.1.2.34;
#    option netbios-name-servers 10.1.2.34;
    option broadcast-address 10.1.4.255;
#    option routers 10.1.4.254;
#    next-server 10.1.4.10;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }
}
[/code]

2. Make sure dhcpd is set to use the correct network interface.On mine it is eth1 or the second network interface.

$ sudo nano /etc/default/dhcp3-server:

[code]
INTERFACES="eth0"
[/code]

3. Make sure the main dhcpd config honors the ltsp dhcpd.conf configuration.

$ sudo nano /etc/dhcp3/dhcpd.conf

Add the following line near the top:

[code]
include "/etc/ltsp/dhcpd.conf";
[/code]


One last command to make sure the dhcpd server starts at boot up.

$ sudo chgrp dhcpd /etc/dhcp3/dhcpd.conf



Step 3: Set Up the Client Software.

The thin clients will boot their own system, so you are actually have two operating systems. one for your server and one for the thin clients. Almost like what is called a dual boot computer. This will take a while depending on the speed of the network and your server,

$ sudo ltsp-build-client
$ sudo ltsp-update-image

Note: I used a system with a 40 gig hard drive and only about 5 gig used.

Reboot the machine after this is all done, but not before then.

Once the server is back up, you can log in and set-up users. (System > Administration > Users and groups)

Start up one of the thin clients and watch the magic happen. You should be presented with a login screen.

This ends part 1. In part 2 (another instructable) we will be demonstrating how to do updates and tweaking the system as well as add- management packages. (In Progress)

Let me know if you have any questions.

Step 4: Other Screen Shots and Info.

Just some other shots I took for de-bugging purposes.

1st shot: what happens if your nic is not set to autostart the static ipaddress.

2nd and 3rd shot: restarting of the dhcpd server to make sure it is working.

4th shot: Make sure thin client is set to look for the dhcp address.

Might add a few more.

Other sources about LTSP:
www.ltsp.org
https://fedorahosted.org/k12linux/
https://help.ubuntu.com/community/UbuntuLTSP/
http://wiki.debian.org/LTSP

Step 5: Screenshots

Screenshot of a compaq amd64 accessing the server as a pxeoot remote client with lxde desktop. Video and sound work quite well.

Screeenshot of another system accessing the system via rdp (xrdp must be installed on the server.) Using gnome desktop for normal login.

Step 6: Other Thin Clients Work With Ltsp Also.

Diskless Pentium 1 - 233mhz
Standard thin client that supports pxebooting/ (we use Compaq t32/30 clones) most any decent x86 pxebootable system should work.
Also booted Apple "new world" G3's into ltsp via netboot. The latest ltsp no longer supports the PPC  framework, but it could be installed later.
You could also add the arm architecture to the mix.There is also an image that will let the Raspbeyy Pi as as a thin client for Ltsp. Tried it and it works. Information about the Beaglebone can be found at: http://elinux.org/BeagleBoardUbuntu