LTSP is an abbreviation for "Linux Terminal Server Project". Installed on a server it can supply many workstations (so called thin-clients) with identical environments. All applications run on the server and therefore you can use old PCs and convert them into XTerminals. This reduces costs and maintenance especially in an environment where you need to have an uniform workspace on each computer you login, e.g. in schools or firms.
All of the examples in this document presume that your server's IP is 192.168.0.254, your domain is named yourdomain.com and your network is 192.168.0.0/24.
First of all, you must have a working Gentoo system. Please read the
Gentoo Installation Manual for your architecture on
Then lets begin with the easiest step, installing the ltsp package:
# emerge ltsp
This will install the following packages as dependencies:
After the emerge process has finished all services must be configured:
To analyze problems easier, the system logger must be configured to
accept remote connections. Please read the documentation of your
system logger on how to achieve this. If, for example, you are using
sysklogd, all you need to do is edit
SYSLOGD="-m 0 -r" KLOGD="-c 3 -2"
Next step is to edit your
/opt/ltsp-4.1/i386 192.168.0.0/255.255.255.0(ro,no_root_squash,async) /var/opt/ltsp/swapfiles 192.168.0.0/255.255.255.0(rw,no_root_squash,async)
Now start NFS.
# rc-update add nfs default # /etc/init.d/nfs start
TFTP requires a bit of configuring to get it to work properly. First, edit
INTFTPD_PATH="/tftpboot"
INTFTPD_OPTS="-s ${INTFTPD_PATH}"
The -s flag specifies that TFTP is to run in secure chrooted mode
(recommended). This means that you don't need to include the
Next, configure xinetd to run TFTP and allow remote connections. By default
TFTP won't be started by xinetd, so edit
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}
Now edit
# rc-update add xinetd default # /etc/init.d/xinetd start
In order for the workstation to reach all resources, a correct name
resolving must be available. There are several ways to achieve this. One
is to configure a DNS server for the local network, the other (and more
simple) is to have almost identical
All workstations must be listed in
127.0.0.1 localhost 192.168.0.254 server server.yourdomain.com 192.168.0.1 ws001 ws001.yourdomain.com
This is the most complicated step in my opinion, you have to create a
valid DHCP Config (
(Some general options) default-lease-time 21600; max-lease-time 21600; use-host-decl-names on; ddns-update-style ad-hoc;(Bootp options) allow booting; allow bootp;(Network Options) option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option routers 192.168.0.254; option domain-name-servers 192.168.0.254; option log-servers 192.168.0.254; option domain-name "yourdomain.com";(LTSP Path Options) option root-path "192.168.0.254:/opt/ltsp-4.1/i386"; filename "/lts/vmlinuz-2.4.26-ltsp-2";(If your workstations have ISA NICs uncomment the following) (lines and alter the driver and IO) #option option-128 code 128 = string; #option option-129 code 129 = text; #option option-128 e4:45:74:68:00:00; #option option-129 "NIC=ne IO=0x300"; shared-network WORKSTATIONS { subnet 192.168.0.0 netmask 255.255.255.0 {(Distribute dynamic IPs to the workstations) range dynamic-bootp 192.168.0.1 192.168.0.16;(Workstation specific configuration for PXE booting) #host ws001 { # hardware ethernet 00:E0:06:E8:00:84; # fixed-address 192.168.0.1; #} } }
If your workstations support PXE, you should list each one of them as we
have done with
For more documentation on this item read the official dhcp handbook:
Now start DHCP as you did with NFS and xinetd:
# rc-update add dhcp default # /etc/init.d/dhcp start
There are many options to configure your workstations, visit
As a few suggestions to get started, you will want to first copy
MODULE_01 = usb-uhci MODULE_02 = mousedev MODULE_03 = usbmouse X_MOUSE_PROTOCOL = "IMPS/2" X_MOUSE_DEVICE = "/dev/input/mice"
Now you have to change your displaymanager's configuration to also accept remote connections.
First change your
#* #any host can get a login window
Now change the configuration of the displaymanager you use:
XDM: In
KDM: In
GDM: In
Then start the displaymanager:
# rc-update add xdm default # /etc/init.d/xdm start
Remember, if your display manager is already running, restarting the X server via CTRL-ALT-BACKSPACE doesn't restart the display manager.
If your workstations don't support PXE booting, you can create a boot-floppy
which is used to start your workstations and connect to the terminal server.
Go to
# cat nicfile.zdsk > /dev/fd0
There are a lot of things that can be the source of trouble, but there are also several resources around which help you solve your problems:
Q: My workstations have Pentium II CPUs, but my server is compiled
with
A: This is no problem, because all applications run on the server.
Q: Which CPU and how much RAM should the server have?
A: There is a good document with suggestions at
Q: Do you have more information about this PXE stuff?
A: Yes, take a look at
Q: Is it possibly to use 3D-Accelerated software on the workstations?
A: If you are using NVidia cards take a look at
Q: In some applications the fonts look crappy, what to do?
A: You have to setup the XFontServer, add
Q: How can I use the soundcard of my workstation?
A: There is a ltsp-sound package in gentoo, for more instructions read
the included