Linux Terminal Server
The Linux Terminal Server Project is an effort to make even low powered PCs into thin clients running off of a central server. All programs run on the server but display on the client. The advantage to dumb terminals is that they have no state, it is all stored in a central location. Administration is easier, as you only need to setup and worry about a server or two rather than dozens of client machines that can break individually.
In the Open Source Lab we have setup a terminal server based off of Fedora. Contact the club if you wish to try it out.
Setting the server up took a bit of work as there are several pieces needed: DHCP to allocate IPs, TFTP to serve the operating system kernel, NFS to share the file system, and ESD for sound. These installation notes document the tricky points.
LTSP documentation is good, have a look there first.
Our environment is Fedora Core 4. The clients are on their own LAN with the server as a NAT router.
For a default setup, run the service scripts from ltspcfg. Be sure to select the network interface you are to use first, so it won't generate configs with old IPs in them.
The Dell Optiplex GX270 client was not set to PXE boot. Had to switch the NIC to the "w/ PXE" option. F3 is the key when you see the big blue Dell to force a network boot.
DHCP will request an IP. We only want to listen on the internal interface. Putting DHCPDARGS="eth1" into /etc/sysconfig/dhcpd does this.
Selinux wouldn't let tftpd work because it tried to read /etc/hosts.deny. To allow this add the line allow tftpd_t etc_runtime_t:file { getattr read }; to /etc/selinux/targeted/src/policy/domains/misc/local.te cd to /etc/selinux/targeted/src/policy/, and run a make reload. Yay audit2allow and its rule writing ability.
Believe the documentation when it says that nfs won't work without hostnames. They don't. So if not in DNS use the ltspcfg tools to generate some entries in /etc/hosts.
Making the mouse wheel work, this goes in lts.conf:
X_MOUSE_PROTOCOL = "imps/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 5
X_ZAxisMapping = "4 5"
And of course we want sound on our thin clients. lts.conf again:
SOUND_DAEMON = esd
SMODULE_01 = snd-intel8x0
xmms, Gaim, and the like can output to esound server. Just use hostname of localhost.
This is a list of reasons why you might get a gray screen at boot instead of a login (Currently 404'd.) Most likely gdm is not running, i.e. the server is not in runlevel 5.
.gif)
Admittedly with the Sun Rays
Admittedly with the Sun Rays on campus this may not be all that useful. Still rather neat I think.