ALINK="#FF0000"> [ Table of Contents ] [ Front Page ] [ Prev ] [ Linux Gazette FAQ ] [ Next ]

"Linux Gazette...making Linux just a little more fun!"


X Stations and Linux

By Matteo Dell'Omodarme


Introduction

Some years ago, a typical UNIX cluster was composed by an expensive, powerful server and many cheaper terminals connected to that server. An example of such a terminal is the IBM X Station. The hardware of the IBM X Station includes a screen, keyboard, mouse, some RAM, and jacks for Ethernet cables. Since they do not have a hard disk or a floppy drive, they must get the operating system from a host on the net that they are attached to.

The aim of a X Station was to provide a terminal optimized for X and graphics and connected to a powerful server at low cost.

X Stations depend on a IBM Workstation, as RISC 6000, running AIX OS. The X station manager package, released with this OS, contains the software needed in order to make X Stations boot from network and then run the X interface. Managing several X Stations from a RISC 6000 server is a quite easy job; can we do the same thing from a Linux box? The main reason to do such work are hardware failures of the IBM server since RISC Workstations are expensive (much more than a PC).

This article shows how to configure a Linux box in order to provide to X Station 120 and X Station 130 all the information needed to boot and work properly.

Configuring the Linux box

There are 5 different steps to accomplish before you can successfully start a X Station from Linux:

  1. Get boot files for X Stations from the IBM RISC 6000
  2. Get fonts for X Stations from IBM RISC 6000
  3. Configure Linux bootpd daemon
  4. Configure Linux tftp daemon
  5. Configure Linux xdm daemon
Let's inspect each step in greater detail.

Getting boot files

All the boot files for your X Stations are in the directories /etc/x_st_mgr and /usr/lpp/x_st_mgr in the AIX installation backup. Restore the backup in your Linux box (in the following we presume you restored the backup in the same directories as the AIX installation).

You don't need all the files; but a minimal installation must contain:

/etc/x_st_mgr/120                   link to /usr/lpp/x_st_mgr/bin/bootfile3
/etc/x_st_mgr/120.cf                configuration file, see below
/etc/x_st_mgr/bootfile3.cf          copy of 120.cf
/usr/lpp/x_st_mgr/bin/bootfile3     boot file  X Station 120
/usr/lpp/x_st_mgr/bin/x11xor3.out   X server
/usr/lpp/x_st_mgr/bin/rgb.txt       color descriptor database  
for X Station 120, and:
/etc/x_st_mgr/130                   link to /usr/lpp/x_st_mgr/bin/bootfile4
/etc/x_st_mgr/130.cf                configuration file, see below
/etc/x_st_mgr/bootfile4.cf          copy of 130.cf
/usr/lpp/x_st_mgr/bin/bootfile4     boot file X Station 130
/usr/lpp/x_st_mgr/bin/x11xor4.out   X server
/usr/lpp/x_st_mgr/bin/rgb.txt       color descriptor database  
for X Station 130.

The file 120.cf contains the names of the files needed by X Station 120 during the boot process. An example of its structure is:

/usr/lpp/x_st_mgr/nls/keymap
/usr/lpp/x_st_mgr/nls/msg
/usr/lpp/x_st_mgr/bin/x11xor3.out
/home/x_st_mgr/lib/fonts,/home/x_st_mgr/lib/fonts/ibm850
/usr/lpp/x_st_mgr/bin/rgb.txt
In the file 130.cf the sole change is the line:
/usr/lpp/x_st_mgr/bin/x11xor4.out
replacing the line of the X server x11xor3.out.

Setting the fonts

In the configuration file 120.cf (or 130.cf) the line:

/home/x_st_mgr/lib/fonts,/home/x_st_mgr/lib/fonts/ibm850
points to the directories where you copied the fonts of the AIX installation, located in /usr/lib/X11/fonts. You can freely change the installation directory, but you must be consistent.

The bootpd daemon

When a X Station is switched on it send on the network its Ethernet address and a request of assistance to accomplish the boot. During this process on the X Station screen you can see some informations, as shown below.

The IBM Xstation
Version 1.4
(c) Copyright IBM Corporation  1981, 1990

Ethernet Hardware Address           08005A010F33
Ethernet Thick/Thin                 Thin

BOOTP  -  0000  0000  0000  0000
TFTP   -  0000  0000  0000  0000
First of all record the Ethernet Hardware Address of the terminal; this information is needed later.

Turning on the X Station the first number on the BOOTP line starts to augment: the X Station is sending a request for help on the network. To respond to that request a computer must have bootpd daemon running and properly configured, that is have a line in the bootpd configuration file matching exactly the Ethernet address of the X Station.

This step is required for X Station 120; a X Station 130 can be a statically configured to contact the machine which stores the boot files and font. This is done in the setup screens which are accessed by pressing F12 during the boot procedure. Here you must provide all the boot and IP informations (the informations are stored in a Non-Volatile RAM subsystem on the X Station) and disable BOOTP. In the following we suppose you don't use a static configuration for your X Station 130.

bootpd daemon is usually located in /usr/sbin/booptd. If you can't find it here or in similar locations you must get a copy of the program from the net and follow the installation procedure (this part is not covered here).

The configuration file for bootpd is /etc/bootptab. Here you must insert the informations about all X Stations you want to manage from the Linux box. An example of this file is reported below:

# declaration of types
x_st_mgr.120:ht=ether:hd=/etc/x_st_mgr:bf=120:T170=2328:ds=131.114.8.144:gw=131.114.8.129:sm=255.255.255.0:

x_st_mgr.130:ht=ether:hd=/etc/x_st_mgr:bf=130:T170=2328:ds=131.114.8.144:gw=131.114.8.129:sm=255.255.255.0:

# X Stations
astr12pi.difi.unipi.it:tc=x_st_mgr.120:ha=08005A010F1A:ip=131.114.8.236:

astr13pi.difi.unipi.it:tc=x_st_mgr.130:ha=08005A010F33:ip=131.114.8.237:
In this file there are two declaration of type (i.e. X Station 120 and X Station 130), with the informations about the related boot files. The name of the tags are explained below:
#      hd   -- home directory
#      bf   -- bootfile
#      sa   -- server IP address to tftp bootfile from
#      gw   -- gateways
#      ds   -- DNS
#      ha   -- hardware address
#      ht   -- hardware type
#      ip   -- host IP address
#      sm   -- subnet mask
#      tc   -- template host (points to similar host entry)
#      hn   -- name switch
#      bs   -- boot image size
#      dt   -- old style boot switch
The other lines are the list of the X Stations managed. For a X Station 120 a typical entry begin with the name of that X Station and refers to tag tc=x_st_mgr.120; the ha tag must match the Ethernet address you previously recorded and the ip tag is the IP number corresponding to the X Station. For a X Station 130 change the tag tc to tc=x_st_mgr.130.

The bootpd daemon is started from /etc/inetd.conf file inserting the line:

bootps dgram   udp     wait    root    /usr/sbin/tcpd  bootpd
You can test your Linux bootpd configuration issuing the command:
kill -HUP `cat /var/run/inetd.pid`
and turning on the X Station. If the BOOTP phase is passed (i.e. the first number on the TFTP line increases) the bootpd daemon works properly.

The tftp daemon

Now the Linux box can successfully answer to the boot request from the X Station but it's not able to supply the files the X Station is asking. To accomplish this process you must install and configure the tftp daemon (Trivial File Transfer Protocol). tftp daemon usually resides in /usr/sbin/tftp and can be started from /etc/inetd.conf inserting the line:

tftp   dgram   udp     wait    root    /usr/sbin/tcpd  in.tftpd /home/x_st_mgr /etc/x_st_mgr /usr/lpp/x_st_mgr
The configuration can be tested restarting inetd:
kill -HUP `cat /var/run/inetd.pid`
Turning on the X Station the boot process must be successful and after a short wait on the X Station screen appears a message like this:
Copyright 1989, 1994   AGE Logic Inc.
All rights reserved,   Release 072594
and after another wait the screen becomes grey with a typical cross cursor in the middle. The X interface is now working.

The xdm daemon

The last step is to provide a login mask to the X Station. This is the job of xdm daemon. The xdm daemon can be started setting the runlevel 5 in the /etc/inittab, i.e. in this file you must have the line:

id:5:initdefault: 
Now change directory to /etc/X11/xdm. If you won't the xdm interface starts automatically on console edit the file Xservers and comment the line:
:0 local /usr/X11R6/bin/X
In the same file add the names of all the X Stations defined above, as in the example:
astr12pi:0 foreign
astr13pi:0 foreign
Now edit the xdm-config file and insert the lines:
DisplayManager.astr12pi_0.setup:        /etc/X11/xdm/Xsetup_astr12pi_0
DisplayManager.astr12pi_0.startup:      /etc/X11/xdm/Xstart
DisplayManager.astr12pi_0.reset:        /etc/X11/xdm/Xstop
where Xsetup_astr12pi_0 is a copy of Xsetup_0, Xstart and Xstop are links to GiveConsole and TakeConsole. Repeat this operation for all the X Stations defined.

The last operation is insert a crontab entry which refreshes the xdm daemon every 1 minute. This step is needed to manage quickly a X Station when it's switched on. As user root issue the command:

crontab -e
and insert the line:
* * * * *  kill -HUP `cat /var/log/xdm.pid`
Reboot your Linux box and turn on the X Stations. If all goes OK, the X stations will boot, start the X server and show the login screen.


Copyright © 2000, Matteo Dell'Omodarme
Published in Issue 51 of Linux Gazette, March 2000

Talkbacks

[ Table of Contents ] [ Front Page ] [ Prev ] [ Linux Gazette FAQ ] [ Next ]