8.5.  Running ThinLinc on a Thinstation terminal

The Thinstation project is an opensource thin client Linux distribution that can be booted in many different ways, including entirely over the network on diskless machines and via a LiveCD.

A client package for ThinStation is shipped as part of the ThinLinc client distribution. In this section, we will document how to use and configure this package with Thinstation.

Note

To run the ThinLinc client in ThinStation, you need ThinStation version 2.2 or later. However, on ThinStation version 2.4 and later, the ThinLinc client will be downloaded automatically during the build process. Thus the download procedure is only needed for ThinStation 2.2. However, the configuration step is needed for both 2.2 and 2.4.

There are two alternative methods of getting a Thinstation image with the ThinLinc client included. The first one is to use one of the TS-O-Matic servers available. They allow you to build Thinstation images online, and should generally have the ThinLinc client available as an option. The TS-O-Matic servers are available from the Thinstation webpages. The second is to download the Thinstation distribution, add the ThinLinc client package and then configure and build a Thinstation image manually. This requires access to a Linux box.

Below, we will describe the second method

8.5.1.  Installing and Building the Package

Begin by downloading and unpacking the Thinstation main distribution available from the Thinstation webpages.

Enter the Thinstation directory created while unpacking, and unpack the ThinLinc Thinstation client package, found in the client-thinstation directory in the Client Bundle, into this directory:

$ tar zxvf tl-4.8.1-5456-client-thinstation.tar.gz

This will unpack files into the packages/thinlinc directory, as well as the file README.thinlinc which contains some summarized information on the package.

Edit the build.conf and add a line 'package thinlinc' in the Applications section.

Run the build script and wait for its completion.

If everything went well, there will now be Thinstation images available in the boot-images directory. Use the appropriate boot image for your preferred boot method.

8.5.2.  Configuring the ThinLinc client when running on a Thinstation Terminal

When running on a network-booted Thinstation terminal, the client is configured by adding statements to the configuration file that is downloaded at boot by Thinstation. The default name of this file is thinstation.conf.network, located in your tftproot. There can also be other filenames that configures specific terminals based on their IP or hardware (MAC) addresses.

8.5.2.1.  Basic Configuration

For the ThinLinc client to appear at all, a Thinstation "session" must be created. This is done by adding a few lines to the thinstation.conf.network file. Here's an example:

SESSION_0_TYPE=thinlinc
SESSION_0_THINLINC_SERVER=demo.thinlinc.com
SESSION_0_THINLINC_OPTIONS="-u user -c"
SESSION_0_THINLINC_CONFIG_NFS_SERVER_ENABLED=0

The above example will make the ThinLinc appear on the display of the client after boot. It will set the servername to demo.thinlinc.com, and it will reset the username field and enable the control panel. It will also disable export of local drives. See below for information on enabling local drives on Thinstation.

All standard client options can be added to the SESSION_0_THINLINC_OPTIONS variable. For example, to lock down the server field, add -l server.

8.5.2.2.  Configuration using the Client Configuration File

Some of the features of the ThinLinc client can't be configured via command line options. Instead, the configuration file must be altered. To allow features such as local drive and sound redirection to work when running on Thinstation, the ThinLinc client package for Thinstation has features for altering the configuration file on the client.

To alter the configuration file, add statements on the form SESSION_0_THINLINC_CONFIG_<configuration file variable name> = <value> to thinstation.conf.network. An example follows:

SESSION_0_THINLINC_CONFIG_NFS_SERVER_ENABLED=1
SESSION_0_THINLINC_CONFIG_SOUND_ENABLED=1

The above example will set the NFS_SERVER_ENABLED to 1 and the CONFIG_SOUND_ENABLED to 1, and so on.

8.5.2.3.  Enabling Sound and Local Drive Redirection

If the hardware running Thinstation has support for it and the correct sound and disk device modules has been loaded, the ThinLinc client will be able to support sound and local drive redirection. The following configuration lines in thinstation.conf.network will enable sound redirection and local drive redirection for USB storage devices:

SESSION_0_THINLINC_CONFIG_NFS_EXPORTS=/mnt/usbdevice,rw,/mnt/cdrom,ro
SESSION_0_THINLINC_CONFIG_NFS_SERVER_ENABLED=1
SESSION_0_THINLINC_CONFIG_SOUND_ENABLED=1
SESSION_0_THINLINC_CONFIG_NFS_ROOT_WARNING=0

8.5.2.4.  Avoiding Question about Server Host Key

When running on a device with non-volatile storage, such as a hard disk, the ThinLinc client stores the public part of the ssh host key of the ThinLinc client the first time it connects to the server after asking the user to verify the fingerprint of the key. At subsequent connects, this copy is used to verify that the client is connecting to the correct server.

When running on a diskless Thinstation host, the key can be stored only in volatile memory (on a RAM disk), so the client will ask the user to verify the fingerprint once each time the client has been rebooted. Since its normal behaviour to reboot a Thinstation terminal once a day, this will lead to a confusing situation for users, not to mention that it will decrease security.

To solve this problem, the ThinLinc client package for Thinstation tries to download a file name ssh_known_hosts from the tftproot. If it exists it will be used as database of known hostkeys on the client.

To create this file, login with the client to the ThinLinc server, using the same servername as the one that will be configured on the clients. Then copy the file ~/.thinlinc/known_hosts to <tftproot>/ssh_known_hosts.