30th November 1999
1.How to turn inexpensive legacy computers into fast terminals using the power
of your main computer, you will need : A fast computer to act as Server, A
client computer (old and unwanted). Linux compatible network cards. A
connection between computers.
2.How to centralise system administaration by useing NFS, ie placing the
entire file system of a faster client on the server.
Linux allows any reasonably new computer to be used as a server to a
thin client, or many thin clients, these thin clients can be inexpensive
legacy computers. For a console terminal you need a 386 with 4-8mb of ram, or
for an X-Terminal a 486/66 with 8-16mb ram.
One Option is without a hard drive, it keeps the noise down and
simplifies administration as you only have one system to maintain.
If you have legacy apps, you can have them on a hard drive with it's
legacy Operating System
This howto is aimed at those new to Unix/Linux, it will cover the
essential areas you need to be aware of and point you to other documentation
in that area you need to be familiar with.
You will probably use this as an aid to the
http://www.slug.org.au/etherboot/ documentation, I include some more
examples of config files, and leave many of the other features of etherboot as
an exercise for the reader
If your client is sufficiently powerful only the file system need be
shared, applications can run on the client system. (say a 233 32mb ram).
Install an application on the server and all clients have access
a client computer, I unplugged the power to the hard disk
and disabled the drive in the bios to emulate a diskless machine
compatible network cards
connection between computers, I used twisted pair ethernet with RJ45
terminators
For two computers a cross-over cable is sufficient, and
saves another power point, the first computer shop I went to gave me blank
stares, idiots !
For two or more clients, you need a hub, a kit with a 10 mb
4 port hub ,2 cards sells for under A$150, you can probably do better,
I've had some success with $5 second hand cards, 3m cables for $6, a new
hub for $40, a found monitor and a $60 pentium 75
Here the server gives out IP numbers to requests by clients
is DHCPD installed, maybe (as root) just run ntsysv and have it start at
boot time
this /etc/dhcpd.conf file assigns static IP numbers if you have
a matching MAC address, A MAC address is a unique 'number' given to the NIC.
The start of the 'number' is based on the manufacturer, if you don't have a
sticker on the card, attempt to load the rom image from eprom or floppy and
see what it reports. (see client setup)
You must compile a kernel for the Client that includes NFS support and the NIC
driver for that client compiled in (not modules). Answer yes to
Root file system on NFS? and BOOTP support?
After building the kernel, run mknbi-linux from the Etherboot distribution
on it.(the mknbi program in the netboot/linux directory) Install this tagged
image as /tftpdir/"vmlinuz.xterm".
see etherboot-4.2/doc/html/README-3.html
should i put a copy of mine somewhere for download RH6.0 ne2000 NIC
It's easiest to allow anybody and anything to run services
and process on your computer, but one day you will be sorry. You restrict
these by your /etc/hosts.deny and specifically restore rights by
/etc/hosts.allow, indicative examples :
#hosts.deny
# all except those in hosts.allow
ALL:ALL
#hosts.allow
#only hosts within my domain and my host at home.
ALL:LOCAL, 192.168.53. #<-- note:no space after :
more security - look for more information in the ldp-howto's and if your
using etherboot, in it's security howto.
A small program that runs as a BIOS extension, can be loaded from a floppy,
or you can burn an eprom chip and insert it on your network card for a totally
diskless client. It handles the DHCPD query and TFTP loading and then
transfers control to the loaded image. It uses TCP/IP protocols.
There are two free implementations of TCP/IP net loaders:
Etherboot and
Netboot: Etherboot
uses built-in drivers while Netboot uses Packet drivers.
see etherboot-4.2/doc/html/README-2.html,
I compiled the option to ask local or Network and default to local after
5 seconds
making a boot rom floppy, floppyload.bin was tricky to find, I copied it
into the directory of compiled rom images
The Client requests to mount /tftpboot/<IP address of
client> as its / by NFS from server. You must export this from
the server,(maybe symlink to /tftpboot/client to be safe.)
NFS is a big topic there is a HOWTO and two mini Howto's.
first you need to create a copy of your current system under /tftpboot
ken has written two scripts that do all your work, I called them makefirst and
makecopy. my first client takes 20-30mb and the copy less. I used du -h to look
for large unnecesary files.
see etherboot-4.2/doc/html/diskless-5.html
the following seem to me to be the critical files here
With no further changes your client should boot on the CLIENT pc,
it just happens to be sharing it's files via NFS
At this point you have a console terminal. you need to make just a few more
changes to run X
Configuring X
As root on client run Xconfigurator and mouseconfig,
If this fails use XF86Setup check your RPMS dir on your CD (eg.ls *Setup*)
X Font Server
#chech how xfs starts on server /etc/rc.d/init.d/xfs
start)
echo -n "Starting X Font Server: "
rm -fr /tmp/.font-unix
daemon --check xfs su xfs -c xfs -s /bin/sh
touch /var/lock/subsys/xfs
echo
;;
#edit XF86Config for all machines
FontPath "tcp/snoball:7100"
Console login
You are now set up for a console login to the client PC. You are using the
client memory and processor, this is adequate for console programs and there
and many or great merit, program in python, email with pine or browse with
lynx.
You may still start X from here, make the server changes in the next
section, at the prompt type X -query snoball and you will get the
login box to the server
Graphical login
Server set up
1. Make sure the client is matched by a clause in /etc/X11/xdm/Xaccess
* CHOOSER BROADCAST #any indirect host can get a chooser
2. Comment out the :0 in /etc/X11/xdm/Xservers
#:0 local /usr/X11R6/bin/X
3. Then make sure that xdm is run from the init scripts.
#etc/inittab
id:5:initdefault:
and
# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
xdm:5:respawn:/usr/X11R6/bin/xdm -nodaemon
On the client
Get the slow PC's to run on the server, Fast PC's (eg 166mhz 32mb ram)can run
ok on their own CPU and memory
the part maarked WARNING dosn't actually work as yet, but I'm close
to getting the syntax correct, use the two stage method via the console login
in the mean time.
#/tftpboot/elite/etc/inittab
id:5:initdefault: #WARNING
x:5:respawn:/usr/X11R6/bin/Xwrapper -query snoball #WARNING
OR to run on client ??
id:3:initdefault: #runlevel 3 ie console
x:5:respawn:/etc/X11/prefdm -nodaemon