TCOS/Documentation/Howto
From TcosProject
| Languages: |
Tcos Howto
Contents |
A few words
In our world there is a big amount of personal computers that it is being wasted. Many of these old computers might be reused in educational systems, library, social associations as thin clients. Many business have already tested this new technology with excellent results. Hospistals, editorial, lawyer, office and cibercafes are already enjoying it.
Actually you can use several computers with the same functionality as a new computer. GNU/Linux is a perfect system for this task. There are already some great experiences around the world that prove it. This howto tries to give you some steps in order to build your self a thin client server with TCOS and also teachs you on how to setup thin clients.
Introduction
What is TCOS?
TCOS is a new way to boot diskless (or not) obsolete computers from network based on system kernel, bins and libs (no more special compilation or patches).
Low Cost Clients Network
Thanks to TCOS you can make a computer lan without too much money for the thin client computers. We can reuse old pentium 100-133 with 32/64 MB RAM. We will need only them to have a network card. Storage devices such as hard disks, floppy drives or cdrom drives can be removed. Removing this devices will save you energy and noise.
Server requirements
Server requirements depend on the thin clients number. CPU is important but even more important is the amount of RAM that it is found in the server. The amount of RAM that we will need is calculated with this formula: 300 MB + (80 MB x Thin Client Number). That means that we will need from 2 Gb to 4 Gb RAM memory from 15 to 25 thin clients.
Network Requirements
You will need at least one network in the server for connecting to the local thin clients. Another network card will be usually used to connect to internet.
Some naming
Think client networks are those networks that use low cost computers that become client of a central server where all the software is actually run. If we use Linux for making such networks then we call them: LTS: Linux Terminal Server and we can find several ways of doing it:
- LTSP, Linux Terminal Server Proyect,
- PXES, Universal Linux Thin Client,
- Netstation,
- Thinstation, a light, full-featured thin-client OS,
- Diet-PC, DIskless Embedded Technology Personal Computer
- TCOS. Thin Client Operating System
PXES is not the same as PXE boot system. PXE means Pre-boot Execution Environment which it is an Intel developed network protocol that lets you boot remote workstations using your network. We can boot thin clients in several ways. From a hard disk, from a floppy or from a network card if it supports PXE. If PXE is not supported we can simulate it with a floppy that uses Etherboot boot system.
How does it work
Arp and Mac
Let's talk a bit about these concepts that we will use in this document. Each network card has a unique phisical identification number or MAC (Media Access Control address) that each manufactures sets. A MAC is 48 bits long and it is usually written in hexadecimal notation with the following format: XX:XX:XX:XX:XX:XX. Before sending an IP datagram between two LAN stations, this one has to be wrapped inside a head and a tail. Datagram is sent to the network card which phisical address meets the IP head address.
That means that network cards need to know which are their names. Network card names are called MAC and instead of writing them as a normal name you write them in this way: XX:XX:XX:XX:XX:XX.
In order to ask the IP of a network card we will need to use the ARP protocol which needs the MAC address to identify it.
Tcos Overview
- The first step begins requesting data (via DHCP) to configure initial IP address and server target IP.
- After that the DHCP server sends a "filename" parameter and thin client downloads it (usually pxelinux.0).
- Boot loader boots and requests its configuration file.
- Configuration file indicates which kernel and initrd to load in memory. The kernel and initrd files are also fetched via tftp protocol from the TCOS server.
- Once both kernel and initrd have been loaded the kernel is booted.
- Kernel runs every boot script found in initrd.
- One of these boot scripts fetchs an squashfs file, the usr.squashfs file. This squashfs file contains some daemons such as: inetd, ssh, pulseaudo, tcosxmlrpc that are needed to make work all addons provided by TCOS.
- Squashfs file also contains an script that it is run in order to make a valid xorg.conf file.
- Finally an XDMCP connection is established from the client to the server in order to have the server programs in the terminals.
Use Cases
TODO WHEN THE REST OF THE HOWTO IS FINISHED
A room with 10 thin clients and already created users
TODO WHEN THE REST OF THE HOWTO IS FINISHED
Share a new pc with a member of your family thanks to your old pc
TODO WHEN THE REST OF THE HOWTO IS FINISHED
Thin Client Boot
From Floppy
From universal Floppy
An Universal boot floppy is available. It is designed to recognised most of the network cards. It is currently available at: http://downloads.sourceforge.net/thinstation/BootDisk522b.zip?modtime=1070186918&big_mirror=1.
We can unpack it and put into a blank floppy with:
unzip BootDisk522.zip dd if=./ebnet522.dsk of=/dev/fd0
You can add and remove netword card models to this disk.
From personalised Floppy
If we cannot get our network card to be automatically recognised or we have other problems we will make an specific disk for our network card. In order to do so we need to identify the exact network card chipset. After having identified it we will navigate into http://rom-o-matic.net, select gpxe or etherboot boot and after that we need to be sure that we select: Floppy Bootable ROM Image (.dsk). Once we have the ROM we will write it into a blank disk. If our network card was Realtek 8139 PCI we would use this command:
dd if=eb-5.2.2-rtl8139.dsk of=/dev/fd0
From Hard Disk
From Eprom
How to Boot Thin Client
Server. Sofware Installation
TcosConfig. Making the RAM image
Welcome Screen
Kernel and Initrd Setup
Local Media Setup
X Windows Settings
Xdm
Main options
Server. Config Files
Dhcp Setup
/etc/dhcpd.conf file
/etc/hosts file
/etc/inetd.conf file
Graphical Login
Services Restart
Optional
Sound
Devices
Custom Kernel
Dhcp improvements
XFS
Kde autologin
Kiosk or cybercafe mode with GDM
How to create and delete users on the fly
FAQ
Credits
Appendix
How does it work
Tcos Overview
- Boot loader boots and requests its configuration file.
In fact Boot loader asks several files. The first one of them is the IP converted into hexadecimal numbers:
- /tcos/pxelinux.cfg/01-08-00-27-a6-1e-d3
- /tcos/pxelinux.cfg/C0A80019
- /tcos/pxelinux.cfg/C0A8001
- /tcos/pxelinux.cfg/C0A800
- /tcos/pxelinux.cfg/C0A80
- /tcos/pxelinux.cfg/C0A8
- /tcos/pxelinux.cfg/C0A
- /tcos/pxelinux.cfg/C0
- /tcos/pxelinux.cfg/C
- /tcos/pxelinux.cfg/default
Thanks to this design a terminal can have different kernel boot parametres or even a different kernel. You can edit the custom file for each terminal from TcosMonitor.
- Squashfs file also contains an script that it is run in order to make a valid xorg.conf file (configurexorg).
