8.7. Thin Client Setup

Each thin client has a wide range of options that can be changed on an individual thin client basis.

All these options are specified in the file /opt/ltsp/i386/etc/lts.conf, but you need to assign each thin client a static IP address. You do this by adding the MAC address of the network card in your thin client, all done in the file /etc/dhcp3/dhcpd.conf There is also a Webmin module for this operation, https://tjener.intern:10000/dhcpd3/index.cgi

8.7.1. Assigning a thinclient a Static IP address

8.7.2. Creating Etherboot ROM Images for Ordinary (non-PXE) network cards.

I strongly advise you to use PXE cards, which eliminate the need for the use of failure-prone media such as floppy disks. But if you have to use floppy disks to boot your thin clients, then there are some small tricks to learn. The floppy disks you need, are ready and available for download at rom-o-matic.com. The latest stable version that is known to work well with Skolelinux/Debian-edu is 5.0.11, which is the recommended one.

There are two things you need to do::

8.7.3. Special Floppy Disk with Support for 30 network cards

This floppy disk image contains the ROM for the 30 most popular and widely-used network cards, which means that there is a big chance that you don't need to fiddle around trying to figure out what kind of network card you have.

This floppy disk is a part of the project Thinstation, from there you download "Universal boot floppy". The file you have downloaded should be BootDisk522b.zip. In Windows you use a zip program to unpack it. In Skolelinux/Debian-edu you unpack it with unzip BootDisk522b.zip, (you may need to install unzip, apt-get install unzip). While unzipping the file you should see something like this:


tjener:~# BootDisk522b.zipunzip BootDisk522b.zip
Archive:  BootDisk522b.zip
  inflating: rawrite2.exe
  inflating: ebnet522.dsk
  inflating: Readme.txt
	  
In the file Readme.txtyou will find detailed information about how the universal boot floppy is made, together with how you can make one yourself. As root, you can make one with the command

cp ebnet522.dsk /dev/fd0

8.7.4. Using the MAC Address to Assign a Fixed IP Number to a Thin Client

In order to be able to specially customize your various thin clients, you have to be able to identify each of them separately. You can do this with the help of each thin client's network card and its unique MAC address (which every network card has).

Most (but not all) network cards have their respective MAC addresses printed on them somewhere. It often looks something like 0000864A585A, or 00-00-86-4A-58-5A, or 00:00:86:4A:58:5A, which are numbers given in the hexadecimal system. If you don't see anything like that printed on the card, then you can have a look at the file /var/log/syslog, where the thin client's MAC address is registered when it tries to start up. To see what is being logged at the time the thin client starts up, use the command

tail -f /var/log/syslog

then you will see something like

Jan  4 19:04:44 tjener dhcpd-2.2.x: DHCPDISCOVER from 00:00:86:4a:58:5a via eth1
Jan  4 19:04:44 tjener dhcpd-2.2.x: DHCPOFFER on 192.168.0.201 to 00:00:86:4a:58:5a via eth1
Jan  4 19:04:45 tjener dhcpd-2.2.x: DHCPREQUEST for 192.168.0.201 from 00:00:86:4a:58:5a via eth1
Jan  4 19:04:45 tjener dhcpd-2.2.x: DHCPACK on 192.168.0.201 to 00:00:86:4a:58:5a via eth1
Here you can see the MAC address, together with the IP number given to each thin client.

If you have enabled a shell on the thinclient, you can use the command ifconfig directly on the thinclient to see that MAC-address it have. To enable a shell on the thinclient, you must have this line in your /opt/ltsp/i386/etc/ltsp.conf put it under the section [Default]


        SCREEN_02          = shell

After you have added this line to /opt/ltsp/i386/etc/ltsp.conf you must reboot the thinclient. Then you access the shell directly on the thinclient with the keyboard combination ALT-F2 and use ALT-F1 to return. Once in the shell directly on the thinclient, use the command ifconfig, look for something similar to


HWaddr 00:00:86:4A:58:5A

Now that you know the MAC address, you can type it in the file /etc/dhcp3/dhcpd.conf for example

host ltsp010 {
        hardware ethernet     00:00:86:4a:58:5a;
        fixed-address         192.168.0.10;
	#filename              "/tftpboot/lts/vmlinuz-2.4.19-ltsp-1";
        filename              "/tftpboot/lts/pxelinux.0";
        #option option-128     e4:45:74:68:00:00;
        #option option-129     "NIC=3c509";
    }

After you have typed in the MAC address, then you must restart the DHCP server, which is done with the command

/etc/init.d/dhcp3-server restart

In this case I have decided that the thin client with the MAC address 00:00:86:4a:58:5a should be named ltsp010 and be given the IP number 192.168.0.10. The names ltspXXX cannot be changed to something else,
[1] for example room203. It won't work.

Remember that a hash-mark ( # ) before a line in a file /etc/dhcp3/dhcpd.conf is used as a comment symbol, which means that this line is just a comment. In this case I have put a comment symbol at the start of the line

#filename              "/tftpboot/lts/vmlinuz-2.4.26-ltsp-2";
while at the start of the line
filename              "/tftpboot/lts/pxelinux.0";
there is no comment symbol. This means that this thin client has a network card of the type PXE, so it must have an image when it starts up pxelinux.0. If it didn't have a PXE-network card, but instead a normal card that needs an Etherboot floppy, see Section 2.4, then it would need the start up image vmlinuz-2.4.26-ltsp-2

Another choice you can make for each single thin client in this file is to activate (that is, remove the comment symbol) at the beginning of


option option-128     e4:45:74:68:00:00;
option option-129     "NIC=3c509";
	  
if and only if you have a 3com509 ISA network card in your thin client.

8.7.5. Customising Thin Clients

In the file /opt/ltsp/i386/etc/lts.conf you have the possibility to specially customize each individual thin client. You can also make adaptations that cover all of the clients at once.

Here I want you to note that there is already a large document which describes how to set up thin clients ltsp.org Look in the documentation menu.

I have only mentioned the most important changes you can make in /opt/ltsp/i386/etc/lts.conf. I recommend that everyone should read the documentation that is found at http://www.ltsp.org

8.7.5.7. Using the package ltps-utils

The package ltsp-utils is a great tool when it comes to administrating the thinclients without to much footjob. With it you can reboot/shutdown the clients, and query the contents of their /proc filesystem, which contains plenty of useful stuff. First you must activate it, you have the choice of activating the reading of /proc and the possibility to reboot/shutdown. It's configured in the file /opt/ltsp/i386/etc/lts.conf, placed it under the section [Default]


        ALLOW_SHUTDOWN     = Y
        ALLOW_PROCREAD     = Y

With ALLOW_SHUTDOWN = Y you may reboot/shutdown your thinclients using the commands

ltspinfo --reboot -h ltsp040
ltspinfo --shutdown -h ltsp040

If you have ALLOW_PROCREAD = Y you may query the /proc filesystem on the thinclients, like this:

tjener:~# ltspinfo --proc=meminfo -h ltsp040
        total:    used:    free:  shared: buffers:  cached:
Mem:  130322432 20234240 110088192        0    65536 11264000
Swap: 33550336        0 33550336

tjener:~# ltspinfo --proc=cpuinfo -h ltsp040
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 6
model name      : Celeron (Mendocino)
stepping        : 0
cpu MHz         : 332.901


tjener:~# ltspinfo --cfg=ALL -h ltsp040
export LTSP_LOCAL_APPS="N"
export LTSP_USE_NFS_SWAP="Y"
export LTSP_HOSTNAME="ltsp040"
export LTSP_DEFAULT_SERVER="192.168.0.254"
export LTSP_KERNEL_VERSION="2.4.26-ltsp-2"
export LTSP_TYPE_0=""
export LTSP_TYPE_1=""
export LTSP_TYPE_2=""
export LTSP_DNS_SERVER="192.168.0.254"
export LTSP_NFS_SERVER="192.168.0.254"
export LTSP_SWAPFILE_SIZE="32m"
export LTSP_SYSLOG_HOST="192.168.0.254"
export LTSP_SNMPD=""
export LTSP_SOUND=""
export LTSP_XDM_SERVER="192.168.0.254"
export LTSP_XSERVER="mga"
export LTSP_DISABLE_ACCESS_CONTROL="N"

tjener:~# ltspinfo --proc=modules -h ltsp040
usbkbd                  3256   0 (unused)
hid                    14184   0 (unused)
usbmouse                1912   0 (unused)
mousedev                3924   1
keybdev                 1952   0 (unused)
input                   2976   0 [usbkbd hid usbmouse mousedev keybdev]
usb-uhci               20844   0 (unused)
usbcore                55520   0 [usbkbd hid usbmouse usb-uhci]
nfsswap                 2524   1
8139too                13256   1
mii                     2112   0 [8139too]
crc32                   2848   0 [8139too]

tjener:~# ltspinfo --proc=bus/pci/devices -h ltsp040 |cut -c6-13
80867180
80867181
80867110
80867111
80867112
80867113
10ec8139
102b1001

All these is useful commands for diagnostic purposes and for finetuning your thinclients.

Warning

Be very careful when using ALLOW_SHUTDOWN = Y, because everybody on your system can then reboot/shutdown a thinclient, regardless if someone is logged in at that thinclient.

If you just need this feature for testing on a particular thinclient, then place the lines under [ltspXXX] instead of under [Default]

Notes

[1]

Unless you also make the corresponding changes to bind and DNS