Phil@Intelisoft-phils.com
01/08/2002, v1.1 - mknbi: Ken Yap <Ken_Yap@users.sourceforge.net>, added RPM installation notes. Corrected typos. 12/27/2001, v1.0 - Initial Submission to LTSP
This document describes booting DOS (to access legacy apps for example, off a Novell server etc.) and Linux via Remote thin clients using LTSP package under Mandrake 7.0 (Air) . The selection of which particular OS image to use is done by the user at boot time via Etherboot. The KDE desktop was selected to run X-Windows application for this particular setup.
This document does not intend to describe a more general approach to booting several OS but hopes to document a specific ready-to-use solution. It also aims to give the reader some hints or leads necessary in building his own specific installation especially if his Linux version is not currently supported by LTSP's install scripts.
I'm a newbee to this so expect a newbee orientation to things ;-) .
This document is provided as is and free for use and distribution in whole or in part and is intended to supplement LTSP documentation.
All translations, derivative works, or aggregate works incorporating any this document must be covered under this copyright notice. That is, you may not produce a derivative work and impose additional restrictions on its distribution.
This document should not be placed, hosted, published or archived in sites that charge, bill or toll its clients in exchange for information access which may curtail this document's open access policy.
The author and contributors of this document have, to the best of their abilities, made information contained herein relevant and correct. But, they too are human and commit mistakes. You're on your own whenever you follow instructions and information given here.
Damage to your computer system and or losses, damages incurred from the use of information in this document is hereby waived by the authors, contributors. Nobody is responsible of the damages but you. If you do not feel comfortable taking responsibility for your own actions, you should hire a qualified professional to do the installation tasks for you.
This document is here so it can help you freely, without restrictions and will be available with as many channels as possible. However, the authors wish to retain copyright of this document and would like to be notified of any plans to redistribute it.
This disclaimer is more to protect the authors and contributors rather than curtailing its open access. Suggestions, corrections are welcome.
Thanks to the generous people at the LTSP and Etherboot discussions most especially to the 'big guys' (read: big hearts) who helped me out of my otherwise hopeless 'dead ends'; Jim McQuillan at LTSP and Ken Yap at Etherboot.
And to my wife Marie Jo, who was very patient with me especially at times when my constant 'banging' of the keys extended up to the wee hours of the morning.
You need 2 sets of computers to do the things described here. The first computer will be used as your LTSP server and the other one will act as the thin client. For testing your setup, your server machine should have at least the following:
A floppy drive
Hard disk space to accomodate the software tools needed.
Enough RAM to go by (at least during testing). You may need more during implementation depending upon the number of thin clients it serves and the complexity of the applications run.
Your thin client on the other hand must have at least a floppy drive (which you can later replace with a ROM on your LAN card once you are satisfied with the Etherboot image on your floppy).
Install Mandrake 7.0 (Air) on your server machine. Unfortunately, Mandrake 7.0 (Air) is currently *not* officially supported by LTSP. However, one can make LTSP to work for this distribution by modifying some LTSP installation scripts as will be shown later.
LTSP needs tftp and dhcp programs to work. These apps are usually found in the first CD of the Mandrake 7.0 (Air) distribution. You can install them anytime using kpackage from the utilities menu if you are using KDE.
Tftp is *not* normally installed as part of your Linux system. The LTSP package need tftp to work. The installation RPM in the Mandrake 7.0 (Air) is tftp-0.15-1mdk.i586.rpm. You can find it in the first installation CD.
In Mandrake 7.0 (Air), tftp is disabled (for security reasons). To make this service available, edit the INETD TCP/IP super server configuration file /etc/inetd.conf. Look for the section that says
# # Tftp service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." Do not uncomment # this unless you *need* it. # #tftp dgram udp wait root /usr/sbin/tcpd in.tftpd #bootps dgram udp wait root /usr/sbin/tcpd bootpd #
Uncomment the 'tftp' line, save the configuration file and re-run INETD server to accomodate the changes by typing command shown below on the shell prompt. If you forget to do this, the LTSP installation scripts (specifically ltsp_initialize->inetd.tmpl) will handle the 'uncommenting' for you ;-). We have done this manually here for illustration purposes.
After editing /etc/inetd.conf, reload the configuration file by issuing the following
[Bash]# /etc/rc.d/init.d/inet restart
Install dchp on your server machine by extracting its RPM package (also from the first CD of the Mandrake 7.0 (Air) distribution). The RPM file is dhcp-3.0b1pl12-2mdk.i586.rpm. You can use kpackage from the 'tools' menu of KDE to install it.
Register dhcp so it will run the next time you restart your server. To do this, make sure that the command:
[Bash]# chkconfig --list |grep "dhcpd"
shows the following output:
dhcpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
If not, type the following on the shell prompt:
[Bash]# chkconfig --level 016 dhcpd off [Bash]# chkconfig --level 2345 dhcpd on
At present, dhcp still won't launch because our /etc/dhcpd.conf hasn't been created yet. We will get back to this later when we are ready to configure our server for dhcp services.
Get the latest LTSP package from http://www.LTSP.org. The package consists of 4 parts; the core, kernel, x-core, and x-fonts. Extract them as *root* and place them in a convenient directory (I installed it in /root). For example, to extract the core package, type:
[Bash]# tar -xzvf ltsp_core-3.0.0-i386
Apply the same 'tar' command to the rest of the LTSP package.
ltsp_kernel-3.0.1-i386 ltsp_x_core-3.0.0-i386 ltsp_x_fonts-3.0.0-i386
Install the mtools package from the first CD of Mandrake 7.0 (Air) . This is the mtools-3.9.6-3mdk.i586.rpm archive. We will be using this package to configure our DOS boot image for our thin clients later on.
Download the latest mknbi tar ball from http://etherboot.sourceforge.net. mknbi-1.2.tar.gz is already available as of this writing. We will be using this package to make a tagged boot images for DOS (and Linux if needed).
Build this package on a directory of your choice by typing
[Bash]# tar -xzvf mknbi-1.2.tar.gz
Then, proceed (cd) to ../mknbi-1.2 directory. Compile and install package...
[Bash]# make [Bash]# make install
I have also tried installing the currently available RPM version of mknbi, mknbi-1.2-6.noarch.rpm without any problems. However, please note that RPM packages are version dependent. Some newer packages cannot be extracted by older versions of RPM. There is no guarantee therefore that future releases of mknbi can be extracted by Mandrake 7.0 (Air) (which uses an old version of RPM ,version 3.0.3).
For the moment, you can install mknbi via kpackage (if you are using KDE), or by doing the following...
[Bash]# rpm -Uhv mknbi-1.2-6.noarch.rpm
On the side tip: To be able to extract 'newly built' RPM packages you may have to upgrade to a higher version of RPM together with its dependencies (get a higher version also of kpackage if you want to use it with RPM) or better still, upgrade to a higher version of Mandrake so you won't need to worry about dependencies and kpackage compatiblity issues ;-) .
Congratulations! You have just installed the necessary software tooks for our LTSP server.
We shall now configure our LTSP server.
One of the issues that LTSP settles in order that a linux distribution will be supported is in the way the distro arranges its directory structure. To make LTSP run on our Mandrake 7.0 (Air), we need to setup a couple of things.
Proceed (cd) to the directory named ltsp_core. This is where all the files in ltsp_core-3.0.0-i386 were extracted to. Try running LTSP's install.sh script...
[Bash]# sh install.sh
You will get the following response from the script:
Sorry, but Mandrake version 7.0 not supported :-(
Don't give up just yet. There is a solution. We now tell the LTSP install script to add support to our distribution. To do this, copy mandrake.sh to a file named mandrake-7.0.sh. This will become our new customized support script for Mandrake 7.0 (Air) . We then edit our new support script to fix the directory structure where most of our startup scripts reside (this is defined by the SOURCE variable). To do this, open mandrake-7.0.sh with your favorite text editor, search / edit the following lines:
In the syslog startup section of the script change the line...
SOURCE=/etc/init.d/syslog --> SOURCE=/etc/rc.d/init.d/syslog
Next, in the portmapper section, change the line that says...
SOURCE=/etc/rc5.d/S11portmap --> SOURCE=/etc/rc.d/rc5.d/S11portmap
Lastly, in the nfs section, replace the line:
SOURCE=/etc/rc5.d/S60nfs --> SOURCE=/etc/rc.d/rc5.d/S60nfs
That is all there is to it. As you might have noticed, we have appended /rc.d to our SOURCE paths. We're very lucky if the people who make the LTSP package are kind enough to include these changes in their next mandrake.sh release. In the meantime, we have to contend with our customized Mandrake 7.0 (Air) script.
Before you hit that
sh install.shcommand, we have to tie some loose ends. Doing these now will save us a lot of editing and debugging work later. You will have to decide some 'network stuff' for your setup first. Check the file ../ltsp_core/CONFIG and supply the necessary information relevant to your setup. An example configuration is shown below.
: : # #------------------------------------- # Network stuff... #------------------------------------- # IP_NETWORK_BASE=192.168.0 IP_NETWORK=${IP_NETWORK_BASE}.0 IP_SERVER=${IP_NETWORK_BASE}.1 IP_BROADCAST=192.168.255.255 IP_NETMASK=255.255.0.0 : :
IP_SERVER is our LTSP server's IP address. We are now ready to run install.sh. On the shell prompt type:
[Bash]# sh install.sh
You will then be presented with the following screen (thanks to our customized script).
Good! We have found Mandrake version 7.0 About to install LTSP, using the following settings: LTSP_DIR = /opt/ltsp SWAP_DIR = /var/opt/ltsp/swapfiles TFTP_DIR = /tftpboot IP_NETWORK = 192.168.0.0 IP_SERVER = 192.168.0.1 IP_NETMASK = 255.255.0.0 IP_BROADCAST = 192.168.255.255 If you want to install LTSP using the above settings, enter 'Y' and the installation will proceed. Any other response will abort the installation, and you can modify the CONFIG file and restart the installation. Continue with installation (y/n)?
Verify that the information you have entered have been reflected correctly here (especially on the 'network stuff'). If everything is Ok, respond with a 'y'. The following screen appears to confirm the completion of the LTSP configuration.
Take a look in /tmp/ltsp.install.log for a complete log of the installation You now need to change to the /opt/ltsp/templates directory and run the ltsp_initialize script to complete the installation
Follow the instructions presented and (cd) to /opt/ltsp/templates. On the shell prompt launch the ltsp_initialize perl script by typing:
[Bash]# ./ltsp_initialize
Confirm to initialize by pressing the 'Enter' key. Congratulations! You have just installed the LTSP's core package.
The installation of the kernel, x_core, and x_fonts portions of the LTSP package is fairly straighforward. Simply proceed to the directory where the files were expanded (namely: ltsp_kernel, ltsp_x_core, and ltsp_x_fonts. Within each of these directories type the install scripts as follows:
[Bash]# sh install.sh
Congratulations! The installation of the LTSP package is now complete!
Our clients will need to run a particular OS upon boot time. To do this, a special program is needed to 'interactively' fetch an image of the desired OS from our LTSP server. For our setup, we have decided to use Etherboot. Initially, we will put the Etherboot loader on a floppy disk. Once we are satisfied with it we can decide to 'burn' the code in our LAN card's BOOTROM. Placing Etherboot in EEPROM is beyond the scope of this document. However, much is gained if you consult the Etherboot docs.
The Etherboot loader image can be aquired without the need to get the Etherboot package. ROM images can be downloaded directly from Marty Connor's http://rom-o-matic.net. Before going to the site to retrieve your image, you will first have to know the particular LAN card you are using. If your card is not listed, look at the chip markings within the card. Chances are, you will find a match with the ones that are already available. Some LAN card manufacturers use compatible chip set configurations.
For our test setup, we need an Etherboot image that will be placed on a floppy disk and will be able communicate interactively with our users so a particular OS can be selected for booting (vendor tags). This particular type of image can readily be downloaded from http://rom-o-matic.net without the need to compile.
After downloading the image, transfer it to a floppy disk (that is free from errors). It is suggested that your format your disks first just to make sure they have no bad sectors. To transfer the image to your floppy (in the first floppy drive or A:) type
[Bash]# cat {your_etherboot_ROM_image} > /dev/fd0
Substitute {your_etherboot_ROM_image} above with your downloaded ROM image name
However, If you want to compile your own images and want to explore Etherboot, you have to download the whole Etherboot package from http://etherboot.sourceforge.net. This is especially important if you need to set special options to your images to customize it. Please consult the excellent Etherboot documentations for more details.
Before you boot that diskette please make sure that your LAN card has been installed correctly in your thin client machine. If all is ok, boot the diskette. In a few seconds you should get a similar screen as shown below
ROM segment 0x0800 length 0x4000 reloc 0x9400 Etherboot 5.0.4 (GPL) Tagged ELF for [DAVICOM] Boot from (N)etwork or from (L)ocal? N Found Davicom 9102 at 0XE800, ROM address 0X0000 Probing...[DAVICOM]Davicom 00:80:AD:71:08:93 at ioaddr 0XE800 Searching for server (DHCP) .................................
The screen output shows a successful 'probing' of a LAN card with a Davicom 9102 chipset. It also shows the physical (MAC) address of the card (00:80:AD:71:08:93). We will be using this address later on when we configure our DHCP server. If you do not get this address (and the name of the card) your Etherboot image is probalby not working with the card. Get additional information from your LAN card's documentation or markings from its chipsets and aquire another image.
Keep your Etherboot disk in a safe place. We will be needing it later to get our DOS and Linux images from our LTSP server.
Let us first configure and prototype our DOS and Linux systems before shipping them out to our thin clients. Doing this now will ease our remote boot implementation later on. Prototyping will also assure us that the OS we are deploying via our LTSP server have been tried and tested. Solving problems later on will be easier.
You may safely skip this section later on when you begin to 'clone' you images for your other thin clients. However, it is suggested that you do this step if you are installing you first client machine.
Preparing our DOS boot configuration can be done by buiding a bootable DOS floppy disk with all the necessary drivers and programs required by our client to access the servers. As a simple illustration, let us make a bootable DOS 5.0 disk so our client will be able to access legacy programs from our Novell 3.12 Server.
Format a bootable floppy disk from your DOS 5.0 machine (assuming your diskette is in A:).
C:> format a: /s
Copy all the necessary programs to it. As for our setup, we need the following
HIMEM.SYS --> so we can run DOS in high memory MEM.EXE --> we will use this to check if our programs were loaded correctly NETX.EXE --> Novell workstation shell DM9PCIPD.COM --> Packet driver for the Davicom 9102 LAN card PDIPX.COM --> IPX/SPX packet driver
We create our config.sys file using your favorite DOS text file editor. We want to load DOS here in high memory using HIMEM.SYS. We also allocate more space for our environment variables.
Example 8-1. Sample CONFIG.SYS file
files=40 buffers=30 device=himem.sys dos=high SHELL=a:\command.com /p /e:3000
We now create our autoexec.bat to automate our DOS booting.
Example 8-2. Sample AUTOEXEC.BAT file
@echo off echo loading LAN packet driver.... dm9pcipd 0x60 echo loading SPX/IPX support... pdipx echo Connecting to our Novell server... netx
We now copy both config.sys and autoexec.bat files to our boot floppy.
You can now test your DOS boot process and make the necessary adjustments here. Make sure everything is working fine because we will be using this DOS boot disk as a reference DOS image in booting our thin clients later.
One of the difficulties I have encountered in setting up Linux clients is configuring X-Windows. If you intend to use a shell prompt on your workstations, you can safely skip this section and proceed to the next chapter on DHCP booting.
To make our X configuration easier, we will install a linux box using Mandrake 7.0 (Air) on our client machine. We will be needing here an extra hard disk which you can safely format and use for this purpose.
Configure X on the client with the desired resolution using its existing video card. Configure also the keyboard and the pointing device. Once finished, set the client machine aside (with the hard disk still attached). We will be using it later on to configure our server.
Congratulations! you have just completed setting up your client machine to boot DOS and Linux.
With our DOS and Linux boot configurations ready, we will now setup our LTSP server to deliver these images on-demand to our thin clients.
We will now prepare our DOS boot disk for use by the LTSP server. The first thing to do is to setup a DOS drive in Linux that is mapped to a file. We will be using mtools to achieve this. To make things easier for us let us call our mapped drive 'x:'. Inform mtools that we wish to map drive x: to a file by editing /etc/mtools.conf. A snippet of this file is shown below:
# Example mtools.conf files. Uncomment the lines which correspond to # your architecture and comment out the "SAMPLE FILE" line below # map drive to a file # drive x: file="/tmp/floppyimage"# # Linux floppy drives # drive a: file="/dev/fd0" exclusive # drive b: file="/dev/fd1" exclusive : :
Next, we create a directory to conveniently house our DOS boot files. For purposes of illustration we will call this folder /root/dos50boot. Go (cd) to this directory and insert our DOS boot disk in /dev/fd0
We now extract the boot sector from our disk and place it in a file we will call bootblock...
[Bash]# dd if=/dev/fd0 of=bootblock bs=512 count=1
We also need to get the DOS kernel files from our DOS boot disk....
[Bash]# mcopy a:io.sys [Bash]# mcopy a:msdos.sys
io.sys - msdos.sys are the kernel files for DOS 5.0 which we are using here for illustration. Other DOS versions may use other names (like ibmbio.com, - ibmdos.com etc.)
We are now ready to format our drive x:. Do this now....
[Bash]# >mformat -C -t 80 -n 18 -h 2 -B bootblock x:
Since we are planning to make a DOS image file here we will use the -C switch. Please refer to the manual pages of mformat for a detailed description of its usage.
We copy our DOS kernel files to x:...
[Bash]# mcopy io.sys x:IO.SYS [Bash]# mcopy msdos.sys x:MSDOS.SYS
Hint: Note the all-caps filespecs used in the destination. You will have to do this because our DOS' bootblock expects all-caps kernel filenames otherwise it will not be able to find it. ;-)
Copy the remaining files in the DOS boot disk to x:. Please preserve the case (especially to the DOS native files) as in our illustration below...
[Bash]# mcopy a:COMMAND.COM x: [Bash]# mcopy a:HIMEM.SYS x: [Bash]# mcopy a:CONFIG.SYS x: [Bash]# mcopy a:MEM.EXE x: [Bash]# mcopy a:AUTOEXEC.BAT x: [Bash]# mcopy a:netx.exe x: [Bash]# mcopy a:pdipx.com x: [Bash]# mcopy a:dm9pcipd.com x:
We are now ready to make a tagged DOS image from x: for our LTSP server...
[Bash]# mknbi-dos /tmp/floppyimage > dos50-Thin.1.nb
and make it available to our LTSP server...
[Bash]# cp dos50-Thin.01.nb /tftpboot/lts/.
To make it convenient for you to make DOS tagged images, I have made a sample script mkdostag below. Modify to suite your needs so it can create tagged images for all of your thin clients.
Example 9-1. Sample mkdostag script
mformat -C -t 80 -n 18 -h 2 -B bootblock x: mcopy a:IO.SYS x: mcopy a:MSDOS.SYS x: mcopy a:COMMAND.COM x: mcopy a:HIMEM.SYS x: mcopy a:CONFIG.SYS x: mcopy a:MEM.EXE x: mcopy a:AUTOEXEC.BAT x: mcopy a:pdipx.com x: mcopy a:dm9pcipd.com x: mcopy a:netx.exe a: #-this is not necessary but will # make our bootimage look like a DOS boot disk mattrib +h +s x:IO.SYS mattrib +h +s x:MSDOS.SYS # we now create a tagged image and # make it available so tftp will find it mknbi-dos /tmp/floppyimage > /tftp/lts/dos50-Thin.1.nb
There is already a tagged image of a Linux kernel available in the LTSP package. Unless you really have to make your own customized kernel, you would be better of with the ones supplied by LTSP. These kernels have been carefully (and skillfully) been optimized to run in an LTSP environment. You may not need to compile your own.
For our purposes, we will be using the tagged image /tftpboot/lts/vmlinuz-2.4.9-ltsp-5. Please refer to LTSP docs especially ../ltsp_kernel/README for specific issues regarding your version of the ltsp_kernel package.
With our DOS and Linux images 'tagged and ready', we will now configure our DHCP server to 'interactively' deliver these boot image to a particular thin client. To give our task an easy start, we first get a copy of /etc/dhcpd.conf.example to /etc/dhcpd.conf. We then edit /etc/dhcpd.conf as follows:
If you have followed our procedure correctly in Configuring LTSP for the first time you can safely include the lines shown below. Otherwise you may need to modify it based on information on your 'network stuff'. The /etc/dhcpd.conf shown as illustration reflects an IP address of 192.168.0.1 for our DHCP server, our netmask of 255.255.0.0 and broadcast address 192.168.255.255 . Please comment the rest of the lines up to the end of the file using '#' as line prefix.
# Sample configuration file for ISCD dhcpd # # Don't forget to set run_dhcpd=1 in /etc/rc.d/init.d/dhcpd # once you adjusted this file and copied it to /etc/dhcpd.conf. # default-lease-time 21600; max-lease-time 21600; option subnet-mask 255.255.0.0; option broadcast-address 192.168.255.255; option routers 192.168.0.1; option domain-name-servers 192.168.0.1; option domain-name "ims.com"; option root-path "192.168.0.1:/opt/ltsp/i386"; shared-network WORKSTATIONS { subnet 192.168.0.0 netmask 255.255.0.0 { } }
And now, for the fun part. We will first make entries common to all of our thin clients. Please refer to the comments for further explanation.
group { use-host-decl-names on; option log-servers 192.168.0.1; #-- Magic number to enable vendor tags usage # pls see vendortags.html of the Etherboot manual for # more info option option-128 e4:45:74:68:00:00; #-- This is our motd (message of the day) # vendor tags option 184 thru 191 option option-184 "************************************"; option option-185 "* Hello from the *"; option option-186 "* Linux Terminal Server Project *"; option option-187 "* *"; option option-189 "************************************"; #-- Interactive section # Time to wait for user input. On time-out defaults # to option 193 in the image selection section (i.e Linux) # If no default is specified selection defaults to the # lowest numbered option (i.e. option 193) option option-160 "timeout=15:default=193"; #-- Image selection section option option-192 "DOS:::/tftpboot/lts/dos50-Thin.1.nb"; option option-193 "Linux (Default):::/tftpboot/lts/vmlinuz-2.4.9-ltsp-5";
We will now identify our first thin client host as 'Thin001' and make specific configuration for it.
host Thin001 { hardware ethernet 00:80:AD:71:08:93; fixed-address 192.168.2.3; # Continuation of our motd... option option-188 "* W e l c o m e Thin001 !! *"; } }
The entry hardware ethernet pertains to the MAC address of our LAN card which we got earlier when we tested our Etherboot diskette in Checking out our new Etherboot ROM diskette. And, the entry fixed-address is the IP address we want to assign to our thin client, 'Thin001'.
Congratulations ! You have just completed the DHCP daemon configuration settings. Restart your DHCP daemon to reflect the new changes we have specified...
[Bash]# >/etc/rc.d/init.d/dhcpd restart
Make sure that no errors are reported in your console. Now, go to your 'Thin001' remote client and boot it up using our test Etherboot diskette. Follow prompts presented. Test booting your DOS and Linux images. If your thin client did not boot successfully, do not despair. You may need to tweak the LTS config file. Read on.
Perhaps the place where you will encounter the most problems is the setting up of your X client. If your client did not make it to booting up X windows, it is more likely that its display, pointing device, and resolution settings was not met in the defaults section of the LTS configuration file. To take out most of the guess work, we have previously installed a test Linux implementation in Setting up Linux. We will be using the X windows information contained here and reflect it in our LTS configuration. In the meantime, check out the [Default] section of the LTS configuration file /opt/ltsp/i386/etc/lts.conf, make sure that the SERVER option has the same IP as our LTSP server. Leave XSERVER, X_MOUSE_PROTOCOL, X_MOUSE_DEVICE, X_MOUSE_PROTOCOL, X_MOUSE_DEVICE, X_MOUSE_RESOLUTION X_MOUSE_BUTTONS3 to its default values. Comment-out the rest of the lines in this configuration file. We will be making a new section specifically for 'Thin001'.
To do this we must first, remove the Etherboot disk in the 'Thin001' client and boot from our test linux hard disk we have prevously built for this workstation in Setting up Linux. Open a terminal session and view the file /etc/X11/XF86Config. Go to the pointer section. A sample is shown below...
: : # ********************************************************************** # Pointer section # ********************************************************************** Section "Pointer" Protocol "Microsoft" Device "/dev/ttyS0" # 'Protocol' is synonimous to X_MOUSE_PROTOCOL # 'Device' is synonimous to X_MOUSE_DEVICE : :
Take note of the Protocol and Device names. They correspond to the X_MOUSE_PROTOCOL and X_MOUSE_DEVICE respectively in your server's /opt/ltsp/i386/etc/lts.conf file. If they are different from your [Default]s then make specific declaration in your /opt/ltsp/i386/etc/lts.conf file.
Next, we set our X_MODE_0 parameter. Gather the information regarding your monitor's horizontal and vertical sync frequencies. If you can't find your monitor's user's manual there is an excellent site to get such info is in http://www.monitorworld.com (thanks to Alex Levit who tipped us of this site) try to find if your monitor is listed there. Going back to the /etc/X11/XF86Config in our 'Thin001' client, look for the 'Monitor section'. A sample is shown below:
: : # ********************************************************************** # Monitor section # ********************************************************************** # Any number of monitor sections may be present Section "Monitor" Identifier "" VendorName "" ModelName "" : : # This is a set of standard mode timings. Modes that are out of monitor spec # are automatically deleted by the server (provided the HorizSync and # VertRefresh lines are correct), so there's no immediate need to # delete mode timings (unless particular mode timings don't work on your # monitor). With these modes, the best standard mode that your monitor # and video card can support for a given resolution is automatically # used. : : # 640x400 @ 85 Hz, 37.86 kHz hsync Modeline "640x400" 31.5 640 672 736 832 400 401 404 445 -HSync +VSync # 640x480 @ 72 Hz, 36.5 kHz hsync Modeline "640x480" 31.5 640 680 720 864 480 488 491 521 # 640x480 @ 75 Hz, 37.50 kHz hsync ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -HSync -VSync # 800x600 @ 60 Hz, 37.8 kHz hsync Modeline "800x600" 40 800 840 968 1056 600 601 605 628 +hsync +vsync : :
Look for the ModeLine entry that closely matches the monitor of 'Thin011'. In my case, I needed an 800x600, @ 60 Hz vsync, 37.8 kHz hsync. Do a 'cut-and-paste' of it to your server's /opt/ltsp/i386/etc/lts.conf. Remove the ModeLine and the quotes surrounding the string after ModeLine option.
Finally, your server's /opt/ltsp/i386/etc/lts.conf file should already look as follows:
Example 9-2. Sample /opt/ltsp/i386/etc/lts.conf
# # Config file for the Linux Terminal Server Project (www.ltsp.org) # [Default] SERVER = 192.168.0.1 XSERVER = auto X_MOUSE_PROTOCOL = "PS/2" X_MOUSE_DEVICE = "/dev/psaux" X_MOUSE_RESOLUTION = 400 X_MOUSE_BUTTONS = 3 USE_XFS = N LOCAL_APPS = N RUNLEVEL = 5 #------------------------------------------------------------------------------ # # Example of specifying X settings for a workstation [Thin001] X_MODE_0 = 800x600 40 800 840 968 1056 600 601 605 628 +hsync +vsync X_MOUSE_PROTOCOL = "Microsoft" X_MOUSE_DEVICE = "/dev/ttyS0" : : # Rest of your specific workstation configs are placed here.
This is just a 'crash' setup just to keep you up and running in no time. But, it is recommended that you read /opt/ltsp/i386/etc/lts.conf.readme from our LTSP server to understand fully the rich features and options that you can do with this configuration file ;-). Some important options are: RUNLEVEL, which specifies whether your thin client should be in shell (3), telnet (4), or X window (5) mode. Good for diagnostics; X_MODE_0 through X_MODE_2 as stated in the docs: "This is how you can specify either the screen resolution or a complete modeline for the workstation"; XSERVER, "This defines which X server the workstation will run. Normally, you can leave ommit this field and the Video card will be Automatically detected."
Boot your 'Thin001' again. If you don't succeeed, continue to read on the LTSP docs, there are a wealth of information there. If all things fail, there is a discussion group for LTSP users at www.LTSP.org. Before submitting a problem, make sure to gather important information pertinent to your setup that is relevant to what you are looking for.