In order to simplify the conversion from "fat" workstations to thin clients running ThinLinc, Cendio AB has created a small Linux distribution named "ThinLinc Client Operating System", abbreviated TLCOS. It is based on Fedora, version 8. The distribution can be installed in a variety of ways and includes the ThinLinc client. After the installation, the operating system will reboot and start the ThinLinc client every time it's booted. This chapter will describe how to install and configure the TLCOS distribution.
Best practice for installing TLCOS is to use PXE-based installation as described in Section 8.6.4.3, “ Booting via PXE, Installing From the Network ”. The PXE-based installation allows for centralized deployment of large amounts of clients, as well as easy reinstallation when there is a need to upgrade TLCOS.
The TLCOS distribution is available as an ISO image from http://www.cendio.com. Use a CD burner to create a CD from the ISO file. It's also possible to loopback-mount the ISO file under Linux, for example using the following command:
[root@any-machine root] mount -o loop TLCOS-2.1.0.iso /mnt
After executing the above command, the contents of the CD is available under /mnt.
The TLCOS installation process is controlled by the configuration file ks.cfg. When using a CD-ROM, or floppy disk, the file is located in the top level directory of the disk. When fetching the file from a web server, the file is normally http://tlinstallhost/TLCOS/images/pxeboot/ks.cfg. When working with Kickstart files, please note:
The Kickstart file must have UNIX line breaks (LF). This means that you cannot edit the file using programs such as MS Wordpad. If you want to edit ks.cfg from Windows, we recommend that you use the editor Metapad, which is available on the TLCOS CD.
If you have updated ks.cfg and would like to create a new CD with the updated file, you can modify the .ISO file by using UltraISO, which is available from http://www.ezbsystems.com/ultraiso.
Kickstart files are generally compatible between different TLCOS versions. For example, you should be able to use a customized ks.cfg from TLCOS version 1.5.0 with TLCOS version 1.6.0. When migrating from earlier versions to 2.0.0, however, the mouse keyword must be removed. Additionally, the Swedish keymap has been renamed from se-latin1 to sv-latin1.
During the installation, you need to choose a root password. This step can be eliminated by editing the kickstart configuration file.
More information about Kickstart options is available at http://fedoraproject.org/wiki/Anaconda/Kickstart.
There are several ways of installing TLCOS. The installation can be started (booted) from a CD-ROM, USB disk, or a PXE agent in the network card. The Kickstart file can be located on a CD-ROM, web server, or floppy disk. The actual installation source can be a CD-ROM or a web server. In total, this means that there are 18 different combinations of boot media, kickstart location and installation source. In the following sections, we will describe three typical cases in detail.
If the computer that is to be installed is able to boot from its CD-ROM player, installation of TLCOS is easy. Just boot the TLCOS CD and wait for a text-based menu welcoming you to TLCOS. Select the CD-ROM option and press the Enter key, and installation should start. When installation is completed, an information screen appears and the computer waits for you to press enter. When you press enter, the CD-ROM is ejected and the computer reboots.
It is possible to boot the installation from a USB disk. The Kickstart file and actual installation source cannot be placed on the USB disk, however: instead a web server is required. See below for more information.
Use the disk image images/diskboot.img. To transfer it to a USB disk, use a command such as:
[root@any-machine root] dd if=images/diskboot.img of=/dev/sdX
where /dev/sdX is the device of your USB disk. Optionally, modify the file syslinux.cfg in the root of the disk and change the URL of the web server.
The default Kickstart file is default configured to read all packages from the URL http://tlinstallhost/TLCOS. This means that if your DNS server has an entry named tlinstallhost pointing to a machine with a web server exporting the contents of the TLCOS CD on /TLCOS, no modification of the disk image is needed.
Boot from the USB disk and select the network option in the menu to start the installation. When the installation is done, an information message will appear and you will have to press the enter key for the machine to reboot.
Booting from an USB disk is dependent on your BIOS supporting this.
Instead of having to walk around to all machines with a CD-ROM or USB disk, machines that have a PXE-enabled network interface or motherboard can boot from the network and install TLCOS. This opens for an automated process where large amounts of machines can be installed with small resources. This installation alternative does however need more preparation than the other alternatives. We will describe the needed configuration below.
The TLCOS CD is structured in a way that makes it easy to set up a server for PXE installations, if the contents of the CD is copied.
In order to use PXE for installation, the machine to be installed must have PXE support. This can be either on the motherboard or on the network card. Most modern network cards have PXE support. To determine if a specific machine has PXE support, watch for messages during the boot process (before the operating system boots) and/or read the documentation for the network interface and motherboard.
PXE finds its IP address and configuration server either by using the PXE protocol or by using bootp. Most PXE implementations can use bootp, which means a standard DHCP server can be used since DHCP servers most often can serve bootp as well.
After finding its IP address using bootp, PXE reads a configuration file and kernel using TFTP (Trivial File Transfer Protocol). Therefore, a TFTP server is also needed, something that comes with most Linux distributions.
When the kernel has booted, the installation program will try to read its Kickstart file and all packages using HTTP, which means both the Kickstart file and all package files need to be available from a web server. The installation program will by default read the configuration and files from the host with the hostname tlinstallhost, so that name should be set in DNS, pointing to your install server, for easy installation. The other option is to edit the files images/pxeboot/pxelinux.cfg/default, and ks.cfg.
When the PXE client asks for its IP address via bootp, the answer must provide not only an IP address, but also a next-server value and a filename value. The next-server value is used to find where to download the file named in the filename value using TFTP. Except for this, the DHCP server must be configured to allow bootp, and to allow booting. The following is an example host-entry from a dhcpd.conf for the ISC dhcpd:
host sauron {
hardware ethernet 00:02:b3:46:ff:8d;
fixed-address 10.47.3.163;
next-server tlinstallhost;
filename "pxelinux.0";
allow bootp;
allow booting;
} The setup must not neccesarily provide static addresses, dynamic addresses are OK as well. Detailed setup of the DHCP server is outside the scope of this document.
The TFTP server should be configured to serve the files under images/pxeboot/ on the TLCOS CD. If the CD contents are copied to the directory /var/www/html/TLCOS, the following could be written to the file /etc/xinetd.d/tftp:
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -v -v -s /var/www/html/TLCOS/images/pxeboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
This assumes you are running xinetd instead of inetd. It also assumes the tftp-server package is installed. Reload xinetd to enable the tftp server.
Copy the contents of the TLCOS CD to a directory called TLCOS, below your web server root (for example, /var/www/html). Plese note that the TLCOS CD contains two files beginning with a dot: .discinfo and .treeinfo. Make sure these are copied as well.
Your server is now ready for booting PXE-enabled clients. Try booting a PXE-enabled client. If everything works, a menu should appear where you can press enter to boot from harddisk, or select installation. If the user doesn't do anything, the client is booted from the harddisk after 10 seconds of inactivity.
TLCOS contains a Linux kernel with a patch for the FAT filesystem support, which provides more persistent so-called inode numbers. If you experience troubles exporting FAT filesystems from a workstation, try using TLCOS and see if this helps.
TLCOS has limited support for local printers. With the default configuration, printers supporting Postscript connected to the parallell port of the machine will be available.
Applications that use the key combinations Ctrl-Alt-F1..F12 will not work with the default configuration of TLCOS as the keypresses will be caught by the X server and switch to a virtual console. This behaviour can be configured away by adding the following to /etc/X11/xorg.conf on TLCOS, preferrably via kickstart.
Section "ServerFlags"
Option "DontVTSwitch" "on"
EndSection
Please note that this will make it impossible to switch to a virtual console, for example to log in as root.
Some soundcards are not detected by the installation program during installation of TLCOS. They can however be detected and configured by running the xinit system-config-soundcard program after installation.
When connecting to Wireless networks, or switching between different types of network connections, a tool that can interact with the user is necessary. In TLCOS, NetworkManager can be used for this purpose. It is not enabled by default. To activate it, edit the Kickstart configuration file and uncomment the line containing "/sbin/chkconfig NetworkManager on".