Terminaux X 486
Par Rich Kaszeta
Adaptation Française : Éric Jacoboni
Précédent Suivant Table des Matières
3. Terminaux X 486
Une nouvelle jeunesse pour les vieux PCs
3.1 Présentation
Cet article décrit la façon de convertir des PC 386/486 de bas de gamme en terminaux X Window sous Linux.
3.2 Introduction
Au département de Génie Mécanique de l'Université du Minnesota, nous avons hérité de vieux 486 IBM PS/Valuepoint (16 Mo de mémoire, disque dur de 200 Mo) avec claviers et écrans et nous avons essayé de leur trouver une utilisation intéressante.
Au départ, on parlait d'installer Linux dessus (notre département a déjà des dizaines de Pentium sous Linux qui sont très prisés), mais étant données leurs faibles capacités disque et mémoire, nous avons décidé qu'ils ne fonctionneraient pas assez vite pour répondre aux besoins courants de nos utilisateurs et qu'il n'était pas rentable financièrement de les mettre à jour.
Notre solution a consisté a installer un système Debian Linux léger sur ces machines (installation minimale plus réseau de base, X et quelques utilitaires), et de les configurer pour qu'elles fonctionnent comme terminaux X afin de disposer de terminaux entièrement graphiques très peu coûteux, utilisables dans les bureaux des thésards et comme interfaces X pour nos serveurs Unix.
3.3 XDM : Concept de base
xdm
est un « gestionnaire d'écran », offrant des fenêtres X de login aux utilisateurs. L'utilisation classique d'xdm
est de présenter un login graphique sur l'écran local d'une station de travail X11, afin que l'utilisateur n'ait pas besoin de lancer X « à la main ».Cependant,
xdm
offre aussi des logins X11 graphiques aux machines distantes, comme on le voit souvent sur les terminaux X (par exemple NCD). Il faut simplement que la machine distante parle X.Nous décrirons ici la configuration d'un PC de bas de gamme pour qu'il fonctionne exactement comme ces terminaux X.
3.4 Configurer les terminaux X
Configurer les 486 en terminaux graphiques X est relativement facile et ne nécessite que quelques étapes :
- Installation d'un système Debian Linux minimal sur chaque PC.
- Configuration de chaque PC pour lancer X et interroger un serveur
xdm
pour obtenir une liste des hôtes auxquels se connecter.- Configuration d'un ou plusieurs serveurs
xdm
pour offrir les services « chooser » aux terminaux X.- Configuration d'
xdm
et du chooser pour qu'il soit plus esthétique et plus pratique.J'évoquerai chacune de ces étapes tour à tour.
3.5 Installation d'un système Linux minimal
Comme nos systèmes Linux existants utilisent Debian Linux, nous l'avons aussi choisi pour ces PCs.
Sur chaque système, nous n'avons installé que le système Debian de base à partir d'une disquette, ce qui donne un système Linux réduit à sa plus simple expression avec une gestion réseau. Aucun compte utilisateur n'a été créé car il n'y en a pas besoin (puisqu'aucun utilisateur ne se logge sur la machine elle-même).
Puis les paquetages Debian de XFree86 3.3 on été chargés sur chaque système. Nous avons chargé les bibliothèques X11 de base, les extensions X, le serveur X S3 (car les PS/Valuepoints ont une carte vidéo de 2 Mo basée sur le circuit S3), et toutes les fontes X11R6.
Enfin, nous avons installé quelques paquetages supplémentaires, dont les utilitaires de base pour le réseau (netbase), ssh (pour permettre un login distant via un canal sécurisé), et nvi car notre équipe système n'aime pas l'éditeur de texte par défaut de Debian.
3.6 Configuration de chaque PC pour lancer X
La première étape fut de configurer X pour qu'il tourne localement sur chaque PC. Un fichier XF86Config fut créé pour les machines à l'aide de l'utilitaire standard
xf86config
, avec quelques considérations techniques ::
- L'option Emulate3Buttons a été validée car les souris des machines n'avaient que deux boutons ;
- Bien que la carte S3 2 Mo des Valuepoints puisse aller jusqu'à une résolution de 1152x900x16 bits, nous avons choisi de fonctionner en 1024x768x8 bits, car cela fonctionne à une fréquence de rafraîchissement plus confortable, et offre une meilleure visibilité sur les écrans 15 pouces IBM ainsi qu'une meilleure compatibilité avec les applications locales que la couleur 16 bits.
- Pour ajouter de la sécurité, DontZap est précisé pour que les utilisateurs ne puissent pas tuer par accident le serveur X.
- Nous avons ajouté des couleurs SGI à
/usr/lib/X11/rgb.txt
pour que les stations X puissent parler sans problème à nos SGI.- Vous pouvez vouloir installer un serveur de fontes quelque part.
Lorsque nous avons été satisfaits de la configuration du serveur X, nous avons testé si nous pouvions nous connecter à une station de travail exécutant
xdm
(rayleigh
dans cet exemple) :
X -quiet -query weberqui nous donne la fenêtre de login
xdm
standard pourweber
:
fenêtre de login
xdm
standardMaintenant, nous savons que tout fonctionne. Si nous voulons simplement que le PC parle à une seule station de travail, alors c'est quasiment fini. La seule étape restante est de s'assurer que X est lancé au démarrage. Nous pouvons faire ça avec un script
/etc/init.d/xterm
.
#! /bin/sh # skeleton example file to build /etc/init.d/ scripts. # This file should be used to construct scripts for /etc/init.d. # # Written by Miquel van Smoorenburg <miquels@cistron.nl>. # Modified for Debian GNU/Linux # by Ian Murdock <imurdock@gnu.ai.mit.edu>. # # Version: @(#)skeleton 1.6 11-Nov-1996 miquels@cistron.nl # set -e case "$1" in start) start-stop-daemon --start --verbose --pidfile /var/run/xterm.pid \ --exec /usr/bin/X11/X -- -quiet -indirect weber & ;; stop) start-stop-daemon --stop --verbose --pidfile /var/run/xterm.pid \ --exec /usr/bin/X11/X ;; reload) # echo "Reloading $NAME configuration files" # start-stop-daemon --stop --signal 1 --quiet \ --pidfile /var/run/$NAME.pid --exec $DAEMON ;; *) # echo "Usage: /etc/init.d/$NAME {start|stop|reload}" echo "Usage: /etc/init.d/xterm {start|stop}" exit 1 ;; esac exit 0Sur un système Debian, nous l'installons avec
update-rc.d xterm defaults 99
(la procédure pour Redhat, Slackware, etc., est similaire). Puis nous relançons la machine pour nous assurer que X démarre au démarrage.3.7 Configuration du serveur xdm pour offrir un « chooser »
Nous avons déjà mis en place un terminal X de base. Cependant, il ne peut parler qu'à une seule machine. Si nous voulons pouvoir nous connecter à d'autres machines, nous devons avoir au moins une machine de notre réseau configurée pour offrir un hôte « chooser » à nos terminaux X. Dans cet article, la machine fournissant les services « chooser » d'
xdm
s'appelleweber
(remarquez, qu'ici,weber
est une machine Linux mais cela pourrait être toute station de travail disposant dexdm
).Configurer tout d'abord
weber
pour offrir le chooser aux hôtes qui se connectent par une connexionxdm
« indirecte ». Ceci est contrôlé par le fichier Xaccess (situé dans/etc/X11/xdm
sur les machines Debian, et sous/usr/lib/X11
ou un autre endroit pour les autres machines). Typiquement, le fichier Xaccess par défaut de la plupart des systèmes est très bien commenté et contient des exemples simples, il est donc facile à comprendre.Vous devez ajouter à ce fichier une ligne de la forme :
machine CHOOSER hote-a hote-boù machine est le nom de l'hôte qui offre le chooser (cela peut être un motif comme «
*
» ou «*.domaine.nom
»), CHOOSER indique àxdm
d'offrir un chooser à ces hôtes et le reste de la ligne est une liste de noms de machines à lister dans le chooser. Si vous utilisezmachine BROADCAST
, cela listera toutes les machines disposant d'xdm
sur le réseau local.Donc, si nous voulons qu'il soit donné à toutes les machines un chooser leur permettant de choisir n'importe quelle machine du réseau local, il faut nous assurer d'avoir la ligne suivante dans Xaccess :
* CHOOSER BROADCASTCependant, dans notre système, nous avons des machines dans différents sous-réseaux et nous ne pouvons nous fier à une diffusion pour toutes les trouver. Nous utilisons donc :
* CHOOSER liste-de-machines ...à la place.
De plus, on peut spécifier différentes listes pour différentes machines. Comme nous l'avons déjà précisé auparavant, nous voulions utiliser l'un des PCs comme terminal graphique pour notre station SGI (qui exécute
wdm
) ; nous devons donc donner à cette machine --console
-- une liste ne contenant que les machines faisant office de serveurs :
console.me.umn.edu CHOOSER serveur1 serveur2 ...L'étape suivante consiste à modifier la configuration du terminal X pour qu'il se connecte au serveur
xdm
en utilisant une requête « indirecte ». Nous testons cela en nous loggant sur le terminal PC et en lançant X avec
X -indirect weberet nous devrions voir le chooser apparaître :
chooser standard
Cela fonctionne, mais ce n'est pas très beau.
Maintenant que vous savons que cela fonctionne, changeons notre script
/etc/init.d/xterm
en remplaçant-query rayleigh
par-indirect weber
.3.8 Configuration du chooser par les ressources X et les scripts
Tout fonctionne à peu près correctement et tout ce qui nous reste à faire est de mettre de l'ordre dans la configuration du chooser pour qu'il soit un peu plus pratique et agréable.
Le chooser peut être configuré à l'aide des ressources X. En les modifiant, on peut changer les fontes du chooser, l'aspect de la liste et les couleurs. Ces ressources se trouvent dans
/etc/X11/xdm/Xresources
(ou un endroit similaire sur des machines non Debian).Sur nos systèmes, nous voulions ce qui suit :
- changer l'en-tête pour qu'il affiche « Available MEnet Hosts » ;
- changer les fontes pour que tout soit plus lisible ;
- mettre la liste sur deux colonnes triées, avec un intervalle entre les colonnes ;
- mettre la barre de défilement à droite ;
- agrandir légèrement la fenêtre.
Pour faire tout cela, nous avons modifié le fichier
/etc/X11/xdm/Xresources
pour y ajouter les lignes suivantes :
Chooser*geometry: 810x500+300+225 Chooser*allowShellResize: false Chooser*ShapeStyle: Oval Chooser*viewport.forceBars: true Chooser*label.font: *-new century schoolbook-bold-i-normal-*-240-* Chooser*label.label: Available MEnet Hosts !Chooser*list.font: -*-*-medium-r-normal-*-*-230-*-*-c-*-iso8859-1 !Chooser*Command.font: *-new century schoolbook-bold-r-normal-*-180-* #ifdef COLOR Chooser*label.foreground: white Chooser*label.background: midnightblue Chooser*Command.background: gray80 Chooser*list.columnSpacing: 25 Chooser*list.defaultColumns: 2 Chooser*list.forceColumns: true Chooser*list.verticalList: true Chooser*internalBorderColor: black Chooser*Command.font: -adobe-helvetica-bold-r-*-*-12-* Chooser*viewport.useRight: true #endifEnfin, nous voulions nous débarrasser du fond d'écran X par défaut car il donne un horrible effet moiré sur les petits écrans. Pour ce faire, on indique à
xdm
qu'il doit utiliser un script shell, nomméchooser.script
, au lieu du chooser normal. Ce script configure le fond en « skyblue4 » et lance le chooser normal. On configure cela dans/etc/X11/xdm/xdm-config
, en ajoutant la ligne :
DisplayManager*chooser: /usr/lib/X11/xdm/chooser.scriptoù
chooser.script
est :
#!/bin/sh xsetroot -solid skyblue4 /usr/lib/X11/xdm/chooser $*Le résultat final ressemble à ceci :
chooser personnalisé
C'est bien plus beau, non ?
Beaucoup d'autres personnalisations sont possibles à l'aide des ressources X et des scripts de configuration
xdm
. Consultez la page man dexdm
pour d'autres détails.3.9 Conclusion
Avec relativement peu de travail, et très peu d'administration par la suite (les terminaux X se plantent rarement et nécessitent peu de mises à jour logicielles), nous avons transformé un lot de PCs « destinés à la casse » en terminaux X très pratiques (je l'ai même fait pour un 386, et il fonctionne sans problème).
Comme remarque finale, il est important de noter que tout ce que je viens de décrire à propos de PC sous Debian Linux s'applique aussi à la résurrection d'autres machines capables de supporter X11, comme les vieilles Sun (Sparc ELC), HP et SGI...
Précédent Suivant Table des Matières
Copyright © 1998, Rich Kaszeta - Publié dans le n°27 de la Linux Gazette
Adaptation Française : Éric Jacoboni