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.
There are 5 different steps to accomplish before you can successfully start a X Station from Linux:
All the boot files for your X
Stations are in the directories
/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 databasefor 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 databasefor 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.txtIn the file 130.cf the sole change is the line:
/usr/lpp/x_st_mgr/bin/x11xor4.outreplacing the line of the X server x11xor3.out.
In the configuration file 120.cf (or 130.cf) the line:
/home/x_st_mgr/lib/fonts,/home/x_st_mgr/lib/fonts/ibm850points 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.
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 0000First 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=18.104.22.168:gw=22.214.171.124:sm=255.255.255.0: x_st_mgr.130:ht=ether:hd=/etc/x_st_mgr:bf=130:T170=2328:ds=126.96.36.199:gw=188.8.131.52:sm=255.255.255.0: # X Stations astr12pi.difi.unipi.it:tc=x_st_mgr.120:ha=08005A010F1A:ip=184.108.40.206: astr13pi.difi.unipi.it:tc=x_st_mgr.130:ha=08005A010F33:ip=220.127.116.11: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 switchThe 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 bootpdYou 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.
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_mgrThe 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 072594and after another wait the screen becomes grey with a typical cross cursor in the middle. The X interface is now working.
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/XIn the same file add the names of all the X Stations defined above, as in the example:
astr12pi:0 foreign astr13pi:0 foreignNow 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/Xstopwhere 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 -eand 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.