Par Matteo Dell'Omodarme (matt@martine2.difi.unipi.it)
Quelques années auparavant, une grappe UNIX typique était composée d'un serveur puissant et onéreux et d'un grand nombre de terminaux moins coûteux connectés à ce serveur.
Un exemple d'un tel terminal est la Station X IBM.
Le matériel de la Station X IBM comprend un écran, un clavier, une souris, un peu de RAM, et des connecteurs pour les câbles Ethernet. Puisqu'ils n'ont ni disque dur ni lecteur de disquettes, ils doivent obtenir leur système d'exploitation d'un hôte sur le réseau auxquels ils sont attachés.
Le but d'une Station X était de fournir un terminal optimisé pour X et les graphiques et connecté à un serveur puissant à moindre coût.
Les Stations X dépendent d'une station de travail IBM, comme RISC 6000, exécutant le système AIX. Le gestionnaire de Stations X, fourni avec ce système d'exploitation, contient le logiciel nécessaire aux Stations X pour booter depuis le réseau et exécuter l'interface X.
La gestion de plusieurs Stations X depuis un serveur RISC 6000 est un travail assez facile ; pouvons-nous faire la même chose à partir d'un poste Linux ? Les raisons principales de faire un tel travail sont les défauts matériels du serveur IBM alors que les stations RISC sont coûteuses (beaucoup plus qu'un PC).
Cet article montre comment configurer un poste Linux de manière à fournir à des Station X 120 et Station X 130 toutes les informations nécessaires pour booter et fonctionner correctement.
Cinq étapes doivent être accomplies avant que vous puissiez démarrer une Station X à partir de Linux :
Inspectons chaque étape en détail :
Tous les fichiers de boot pour vos Stations X se trouvent dans les répertoires /etc/x_st_mgr et /usr/lpp/x_st_mgr de la sauvegarde d'installation d'AIX. Restaurez la sauvegarde sur votre poste Linux (par la suite nous présumons que vous avez restauré la sauvegarde dans les mêmes répertoires que l'installation d'AIX).
Vous n'avez pas besoin de tous les fichiers ; mais une installation minimale doit contenir :
/etc/x_st_mgr/120 lien vers /usr/lpp/x_st_mgr/bin/bootfile3
/etc/x_st_mgr/120.cf fichier de configuration, voir plus loin
/etc/x_st_mgr/bootfile3.cf copie de 120.cf
/usr/lpp/x_st_mgr/bin/bootfile3 fichier de boot pour la Station~X~120
/usr/lpp/x_st_mgr/bin/x11xor3.out serveur X
/usr/lpp/x_st_mgr/bin/rgb.txt base de description des couleurs
pour la Station X 120, et :
/etc/x_st_mgr/130 lien vers /usr/lpp/x_st_mgr/bin/bootfile4
/etc/x_st_mgr/130.cf fichier de configuration, voir plus loin
/etc/x_st_mgr/bootfile4.cf copie de 130.cf
/usr/lpp/x_st_mgr/bin/bootfile4 fichier de boot pour la Station~X~130
/usr/lpp/x_st_mgr/bin/x11xor4.out serveur X
/usr/lpp/x_st_mgr/bin/rgb.txt base de description des couleurs
pour la Station X 130.
Le fichier 120.cf contient les noms des fichiers nécessaires à la Station X 120 durant le processus de boot. Un exemple de sa structure est :
/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
Dans le fichier 130.cf, le seul changement est la ligne :
/usr/lpp/x_st_mgr/bin/x11xor4.out
remplaçant la ligne du serveur X x11xor3.out.
Dans le fichier de configuration 120.cf (ou 130.cf), la ligne :
/home/x_st_mgr/lib/fonts,/home/x_st_mgr/lib/fonts/ibm850
pointe vers les répertoires où vous avez copié les polices de l'installation d'AIX, placées dans /usr/lib/X11/fonts. Vous pouvez changer librement de répertoire d'installation, mais vous devez être logique.
Lorsqu'une Station X est mise en route, elle envoie sur le réseau son adresse Ethernet et une requête d'assistance pour accomplir le boot. Durant ce processus vous pouvez voir sur l'écran de la Station X un certain nombre d'informations, comme ci-desssous :
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
La première de celles-ci est l'adresse matérielle Ethernet du terminal ; cette information sera nécessaire plus tard.
Au démarrage de la Station X le premier nombre de la ligne BOOTP commence à augmenter : la Station X envoie une requête d'aide sur le réseau. Pour répondre à cette requête un ordinateur doit exécuter un démon bootpd correctement configuré, c'est-à-dire avoir une ligne dans le fichier de configuration de bootpd comportant exactement l'adresse Ethernet de la Station X.
Cette étape est requise pour une Station X 120 ; une Station X 130 peut être configurée statiquement pour contacter la machine stockant les fichiers de boot et les polices. Ceci est fait dans les écrans de configuration accessibles en pressant F12 durant la procédure de boot. Vous devez fournir ici toutes les informations de boot et IP (les informations sont enregistrées dans une RAM Non Volatile (NVRAM) de la Station X) et dévalider BOOTP. Par la suite nous supposons que vous n'utilisez pas la configuration statique pour votre Station X 130.
Le démon bootpd est habituellement placé dans /usr/sbin/bootpd. Si vous ne pouvez pas le trouver à cet emplacement ou dans des emplacements similaires, vous devez obtenir une copie du programme depuis le net et suivre les instructions d'installation (cette partie n'est pas couverte ici).
Le fichier de configuration pour bootpd est /etc/bootptab. Vous devez y ajouter les informations concernant toutes vos Stations X que vous désirez gérer depuis votre poste Linux. Un exemple de ce fichier est :
# declaration de 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:
# Stations X
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:
Ce fichier comporte deux déclarations de type (Station X 120 et Station X 130), avec les informations relatives aux fichiers de boot correspondants. Les noms des marques sont expliquées ci-dessous :
# hd -- répertoire personnel
# bf -- fichier de boot
# sa -- Adresse IP du serveur tftp pour fichier de boot
# gw -- passerelles
# ds -- DNS
# ha -- adresse matérielle
# ht -- type de matériel
# ip -- adresse IP de l'hôte
# sm -- masque de sous-réseau
# tc -- hôte modèle (pointe vers une entrée d'hôte similaire)
# hn -- name switch
# bs -- Taille de l'image de boot
# dt -- old style boot switch
Les lignes suivantes listent les Stations X gérées.
Le démon bootpd est démarré à partir du fichier /etc/inetd.conf en insérant la ligne :
bootps dgram udp wait root /usr/sbin/tcpd bootpd
Vous pouvez tester votre configuration bootpd Linux en lançant la commande :
kill -HUP `cat /var/run/inetd.pid`
et en allumant la Station X. Si la phase BOOTP est passée (le premier nombre de la ligne TFTP augmente), alors le démon bootpd fonctionne correctement.
Maintenant, le poste Linux peut répondre correctement à la requête de boot de la Station X mais n'est pas capable de fournir les fichiers que la Station X demande. Pour accomplir cette étape, vous devez installer et configurer le démon tftp (Trivial File Transfer Protocol). Le démon tftp se trouve généralement dans /usr/sbin/tftp et peut être démarré à partir de /etc/inetd.conf en y insérant la ligne :
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /home/x_st_mgr /etc/x_st_mgr /usr/lpp/x_st_mgr
La configuration peut être testée en relançant inetd :
kill -HUP `cat /var/run/inetd.pid`
En allumant la Station X le processus de boot doit fonctionner et après un court instant apparaît sur l'écran de la Station X un message du style :
Copyright 1989, 1994 AGE Logic Inc.
All rights reserved, Release 072594
et après un instant supplémentaire l'écran devient gris avec un curseur en croix typique au milieu. L'interface X fonctionne alors.
La dernière étape est de fournir un masque de login à la Station X. C'est le travail du démon xdm. Le démon xdm peut être démarré en mettant le runlevel 5 dans le fichier /etc/inittab, c'est-à-dire que vous devez avoir la ligne :
id:5:initdefault:
Placez-vous maintenant dans le répertoire /etc/X11/xdm. Si vous ne voulez pas que l'interface xdm se lance automatiquement sur la console éditez le fichier Xservers et commentez la ligne :
:0 local /usr/X11R6/bin/X
Dans le même fichier, ajoutez les noms de toutes les Stations X définies précédemment, comme dans cet exemple :
astr12pi:0 foreign
astr13pi:0 foreign
Éditez maintenant le fichier xdm-config et insérez les lignes :
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
où Xsetup_astr12pi_0 est une copie de Xsetup_0, Xstart et Xstop sont des liens vers GiveConsole et TakeConsole. Répétez cette opération pour toutes les Stations X définies.
La dernière opération est d'ajouter une entrée crontab pour rafraîchir le démon xdm toutes les minutes. Cette étape est nécessaire pour gérer rapidement une Station X lorsqu'elle est démarrée. En tant que root, lancez la commande :
crontab -e
et insérez la ligne :
* * * * * kill -HUP `cat /var/log/xdm.pid`
dans le fichier /etc/crontab.
Redémarrez votre poste Linux et démarrez vos Stations X. Si tout se passe bien, les Stations X vont booter, démarrer le serveur X et montrer l'écran de login.
Copyright 2000, Matteo Dell'Omodarme. Paru dans le numéro 51 de la Linux Gazette de Mars 2000.
Traduction française de Philippe Martin.