Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > ebac5394abc62d2e0b61505bfba9712a > files > 146

howto-text-fr-2006-5mdv2010.0.noarch.rpm


                           Mini HOWTO terminal X NCD

Ian Hodge, ian@permedia.ca

   v1.07, 30 Novembre 1999
     _________________________________________________________________

   _Ce document explique comment connecter un terminal X NCD à une
   machine hôte UNIX (traduction : Michel Billaud,
   billaud@labri.u-bordeaux.fr)._
     _________________________________________________________________

1. Copyright

   Le _NCD X terminal mini HOWTO_ est copyright (C) 1998 par Ian Hodge.
   Les documents _HOWTO_ de Linux peuvent être reproduits et diffusés en
   tout ou partie, par tout moyen physique ou électronique, du moment que
   cette notice de copyright figure sur toutes les copies.

2. Introduction

   Ce document explique comment connecter un terminal X fabriqué par NCD
   (Network Computing Devices) à une machine hôte fonctionnant sous UNIX,
   en utilisant le protocole _BootP_ (_Boot Protocol_). De nombreux
   terminaux peuvent également démarrrer par RARP, NFS, ou depuis une
   carte PCMCIA ou une liaison série (directe ou par modem).

   Bien que le matériau de ce document soit basé sur l'expérience d'un
   seul type de terminal X, une grande partie des informations qui y
   figurent s'appliquent également à d'autres modèles. Il existe
   également un _Linux X Terminal mini HOWTO_ (qui est actuellement
   déclaré obsolète par les responsables des HOWTO, et n'est donc
   peut-être pas disponible avec toutes les distributions de Linux) qui
   recoupe en partie ce document. Celui-ci contient davantage
   d'informations sur les terminaux X.

2.1 Étapes

   La connexion d'un terminal X à un réseau Unix se résume aux étapes
   suivantes :

     * Relier physiquement le terminal X au réseau.
     * Configurer la _machine hôte_ UNIX qui servira au _boot_
       (démarrage) du terminal X.
     * Paramétrer la procédure de boot du terminal X.
     * Démarrer le terminal X.
     * Se connecter sur le réseau.

3. Préliminaires

3.1 Le terminal X

   Un terminal X est un appareil capable d'afficher et de communiquer sur
   un réseau, en utilisant le système de fenêtrage pour réseaux
   distribués connu sous le nom de X. Typiquement, le logiciel du
   terminal X (ce qu'on appelle le _serveur X_) est chargé depuis le
   réseau au démarrage du terminal. Les programmes autres que le serveur
   X (programmes _clients X_) ne sont pas exécutés localement (à part
   quelques exceptions) par le terminal X, qui affiche des programmes qui
   tournent sur d'autres machines du réseau. Le terminal X est donc un
   genre de _network computer_ qui utilise le protocole X pour accéder
   aux ressources du réseau.

3.2 Connexion physique

   Le terminal X NCD (nous avons utilisé le modèle _Xncd19r_ pour la
   préparation de ce document) possède une prise RJ-45 (paire torsadée)
   pour Ethernet 10 Base T. Il faut un répèteur multiport (_hub_) pour
   relier plus de deux appareils en paire torsadée. Si le terminal X et
   la machine hôte sont les seules machines de votre réseau, vous pouvez
   les connecter par un câble croisé qui est décrit dans le _Linux
   Ethernet HOWTO_.

3.3 Logiciel serveur X de NCD

   Le fichier qui contient le logiciel serveur X du terminal est
   disponible auprès du constructeur, qui le fournit en principe avec le
   terminal. Ce fichier va résider sur la machine hôte, d'où il sera
   téléchargé au démarrage du terminal X. Il est spécifique du modèle du
   terminal, mais indépendant du type de la machine hôte. Le terminal
   peut démarrer depuis n'importe quelle machine qui supporte le
   protocole de communication _BootP_ (expliqué plus loin). En plus du
   serveur, le logiciel X peut contenir des applications, comme un
   gestionnaire de fenêtres, qui s'exécuteront localement sur le terminal
   X.

4. Configuration de la machine hôte UNIX

   Au démarrage, le terminal X va chercher ses fichiers (y compris le
   serveur X) sur une machine du réseau. Une fois démarré, le serveur X
   contrôlera les entrées (clavier, souris), l'affichage, les clients
   locaux et la communication par le protocole X. Le serveur X s'exécute
   sur le terminal X, et n'a donc besoin d'aucune compatibilité
   logicielle avec la machine hôte.

4.1 TFTP et BootP

   Les protocoles TFTP (_Trivial File Transfer Protocol_, protocole
   élémentaire de transfert de fichiers) et BootP (_boot protocol_,
   protocole d'amorçage) sont utilisés ensemble sur la machine hôte pour
   permettre au terminal X de récupérer le serveur X et les fichiers de
   configuration à travers le réseau. Ces deux services sont
   habituellement démarrés par _inetd_ (Internet Daemon).

   Lorsque le terminal X est mis sous tension, si il est configuré pour
   un démarrage par le réseau, il émet un appel général (_broadcast_) sur
   le réseau en utilisant le protocole _BootP_ (protocole d'amorçage
   TCP/IP). Ce message d'appel contient l'adresse matérielle (Ethernet)
   du terminal X, adresse qui sera utilisée par la machine hôte pour
   répondre à la "demande de boot".

   Lorsque la machine hôte reçoit une demande de boot, _inetd_ (qui
   surveille un port désigné dans /etc/services) démarre le démon _BootP_
   spécifié dans /etc/inetd.conf.

   Dans le fichier inetd.conf, ajoutez ou dé-commentez les lignes qui
   concernent TFTP ou BootP. Dans l'exemple qui suit, le dernier
   paramètre de la ligne de TFTP indique le répertoire qui contient les
   fichiers pour le terminal X. Bien que les noms de répertoires ne
   soient pas obligatoires, pour des raisons de sécurité il faut toujours
   les mettre, de façon à restreindre l'accès TFTP à ces seuls
   répertoires.

   Exemple de fichier /etc/inetd.conf (extrait) :

# Le service TFTP sert principalement au boot. La plupart des sites
# ne font tourner ceci que sur les machines qui sont des "serveurs de boot".
tftp   dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd /usr/X11/lib/X11/n
cd/
bootps dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.bootpd

   Lors de son activation, le démon du serveur BootP lit son fichier de
   données /etc/bootptab. Une description de ce terminal X doit s'y
   trouver. Chaque description contient un ensemble d'éléments séparés
   par des deux-points ":". Le premier élément est le nom du terminal.

   Éléments utiles du fichier bootptab :

   _hd_
          (_home directory_) Répertoire contenant le fichier de boot du
          terminal X (ici /usr/X11/lib/X11/ncd/).

   _ip_
          Addresse IP du terminal X (dans notre exemple 10.0.0.1).

   _sm(subnet mask) _
          masque de sous-réseau (ici 255.0.0.0). Pour comprendre l'usage
          des masques de sous-réseau et autres principes des réseaux IP,
          consultez le _Linux NET-3 HOWTO_.

   _gw(gateway)_
          adresse IP de la passerelle (ici 10.0.0.1).

   _ht(hardware type) _
          Type de matériel. C'est ethernet dans cet exemple.

   _ha(hardware address)_
          Adresse matérielle du terminal X (adresse Ethernet sur 6
          octets). D'après la page _bootptab_ du manuel UNIX, l'élément
          "_ht_" doit précéder le "_ha_". L'adresse Ethernet s'affiche à
          la mise sous tension du terminal X, sous forme d'une série de 6
          nombres à deux chiffres hexadécimaux, séparés par des
          deux-points. Par exemple

00:00:A7:12:26:19

   _tc(table continuation)_
          Suite d'une autre description du fichier _bootptab_. Voir
          l'exemple ci-dessous.

   _ds(domain name server) _
          Adresse IP du serveur de noms (par exemple 10.0.0.3). Inutile
          si la résolution d'adresse n'utilise pas de serveur de noms
          (DNS).

   _bf(boot file) _
          Nom du fichier contenant le serveur du terminal X (d'habitude
          le nom du fichier est celui du modèle du terminal X, ici
          Xncd19r).

   Ce qui suit est un exemple de fichier /etc/bootptab. Le caractère "\"
   sert à neutraliser les fins de ligne.
       ______________________________________________________________

# Ceci est une description, appelée ici ``default'', avec
# des informations communes à tous les clients BootP

default:hd=/usr/X11/lib/X11/ncd/:\
        ds=10.0.0.3:\
        sm=255.0.0.0:\
        gw=10.0.0.1:

# Le terminal X s'appelle ``myxterm''. Remarquez l'élément
# ``tc'' qui fait référence à la description ``default''.

myxterm:ht=ethernet:\
        ha=0x0000a7122619:\
        ip=10.0.0.2:\
        tc=default:\
        bf=Xncd19r:
       ______________________________________________________________

   Lorsque le démon bootpd trouve (dans le fichier bootptab) une
   description qui correspond à l'adresse matérielle contenue dans une
   requête de boot, il envoie une réponse à l'adresse IP correspondante.
   Le transfert de fichiers peut alors se faire par TFTP au dessus de IP.

   On attribue un nom au terminal X en ajoutant une description dans le
   fichier /etc/hosts de la machine hôte. Ce fichier sert à établir une
   correspondance entre noms de machines et adresses IP. Dans l'exemple
   ci-dessous, le terminal X (d'adresse 10.0.0.2) est nommé "myxterm" :

10.0.0.1        linuxhost       # La machine hôte (serveur de boot)
10.0.0.2        myxterm         # terminal X

5. Configurer la procédure de démarrage du terminal X

   Lorsqu'il est mis sous tension, le terminal X tente de _booter_,
   c'est-à-dire de charger le logiciel serveur X en mémoire et de
   l'exécuter. Si le terminal X ne peut pas booter, la chaîne d'invite
   ">" du moniteur (_Boot Monitor_) apparaît. Le Boot Monitor est un
   programme enregistré dans les mémoires mortes (_PROM = programmable
   read-only memory_) du terminal. À l'aide du moniteur, il est possible
   de configurer le terminal X pour qu'il aille chercher le serveur X sur
   la machine hôte au démarrage. Utilisez "?" pour avoir la liste des
   commandes du moniteur.

   Les paramètres de configuration que vous modifiez grâce au moniteur
   sont stockés dans une mémoire non volatile (NVRAM = non-volatile
   random access memory), et sont conservés lorsque le terminal est mis
   hors-tension.

   Pour booter le terminal depuis le moniteur, on a le choix entre la
   commande "bt" et un système de menus. Les deux méthodes permettent en
   gros de faire la même chose, mais les menus donnent accès à davantage
   de paramètres.

5.1 Syntaxe des commandes du _Boot Monitor_

> bt fichier IP_terminal IP_hôte IP_passerelle masque_sous-réseau

   _fichier_
          Le nom du fichier, sur la machine hôte, qui contient le
          logiciel du serveur X pour le terminal (dans notre exemple
          "Xncd19r"). Vérifiez que c'est le même nom que celui indiqué
          dans le fichier bootptab (expliqué dans la section précédente)
          pour ce terminal X.

   _IP_terminal_
          L'adresse IP affectée au terminal X (ici 10.0.0.2).
          Pareillement, cette adresse doit être celle indiquée dans
          bootptab.

   _IP_hôte_
          L'adresse IP de la machine hôte (10.0.0.1).

   _IP_passerelle_
          L'adresse IP de la passerelle du sous-réseau (par exemple
          10.0.0.1).

   _masque_sous-réseau_
          Le masque de sous-réseau, en notation IP décimale ou
          hexadécimale (par exemple 255.0.0.0 ou ff000000).

5.2 Menu de configuration "setup" du moniteur

   Les menus de configuration sont appelés par la touche "Setup" ou en
   tapant la commande "se" après l'invite '>' du moniteur.

   _Get IP Addresses From_
          Normalement, l'adresse IP du terminal devrait être obtenue
          depuis la configuration stockée dans la NVRAM. Ne selectionnez
          'Network' que si vous utilisez RARP (_reverse ARP_) pour
          déterminer l'adresse IP du terminal X depuis la machine hôte.

   _Terminal IP Address_
          L'adresse IP affectée au terminal X (par exemple 10.0.0.2).
          C'est la même chose que le paramètre 'IP_terminal' vu
          précédemment.

   _First Boot Host IP Address_
          L'adresse IP de la machine hôte (ici 10.0.0.1). Même chose que
          le paramètre 'IP_hôte'.

   _Gateway IP Address_
          L'adresse IP de la passerelle de sous-réseau. Correspond à
          "IP_passerelle".

   _Subnet Mask_
          Le masque de sous-réseau, en notation IP décimale (voir
          variable "masque_sous-réseau" plus haut).

   _Broadcast IP Address_
          L'adresse IP pour la diffusion vers le sous-réseau (par exemple
          10.255.255.255).

   _Boot File_
          Le nom du fichier qui, sur la machine hôte, contient le
          logiciel serveur X du terminal (exemple "Xncd19r"). Même chose
          que le paramètre "fichier" décrit plus haut.

   _TFTP Boot Directory_
          Le nom du répertoire, sur la machine hôte, qui contient le
          logiciel serveur (par exemple "/usr/X11/lib/X11/ncd/" ou
          "/tftpboot/").

   _Config file_
          Le nom du fichier de configuration du terminal X sur la machine
          hôte (voir plus loin).

   _UNIX Config Directory_
          Le nom du répertoire qui contient le fichier de configuration
          (exemple "/usr/X11/lib/X11/ncd/").

   _TFTP Order, NFS Order, Local Order_
          Mettez "1" pour la méthode de démarrage que vous préférez,
          c'est-à-dire TFTP si vous démarrez par BootP depuis une machine
          hôte.

5.3 Fichiers de configuration du terminal X

   Pendant la procédure de boot, le terminal X va essayer d'aller
   chercher des fichiers depuis la machine hôte. Si un fichier manque, le
   terminal utilisera des options par défaut.

   Voici les fichiers transférés pendant le démarrage du terminal X :

     * Le fichier de configuration (par exemple ncd.conf) qui contient
       les paramètres du terminal X.
     * Le fichier des couleurs (par exemple rgb.txt).
     * La base de données des symboles des touches (par exemple
       XKeysymDB).
     * Les fichiers catalogues des polices (exemple font.dir,
       font.alias).

   Après un démarrage réussi, la fenêtre console du terminal X doit
   apparaître avec une barre de menus. La touche "Setup" du clavier fait
   apparaître/disparaître cette fenêtre. Le menu déroulant "setup" permet
   de voir et changer les paramètres du terminal X, et de les sauver sur
   la machine hôte, dans un fichier de configuration qui pourra être
   réutilisé plus tard.

   Si le transfert de fichiers se fait par TFTP, le fichier doit être
   accessible en lecture pour tous. De la même façon, pour pouvoir sauver
   un fichier de configuration sur la machine hôte, le fichier doit
   exister préalablement et être accessible en écriture pour tout le
   monde. Si vous utilisez TFTP sécurisé (ce qui est recommandé pour des
   raisons de sécurité), l'accès aux fichiers ne pourra se faire que dans
   des répertoires déterminés.

   _Note :_ le terminal peut rater son démarrage si il était configuré
   pour fonctionner avec d'autres hôtes ou avec des paramètres
   différents. Le problème peut être résolu en réinitialisant la NVRAM
   pour supprimer les paramètres mémorisés.

   Pour réinitialiser la NVRAM depuis le _boot monitor_, tapez la
   commande "nv". Depuis ce sous-menu choisissez "l" pour charger les
   valeurs par défaut, "s" pour sauver et enfin "q" pour quitter.
   Relancez la procédure de démarrage décrite plus haut.

5.4 Connexion sur une machine du réseau

   Depuis la barre de menu de la console X, selectionnez le menu
   déroulant "Terminals" et choisissez l'option "New Telnet...". Lorsque
   la fenêtre telnet apparaît, tapez l'adresse d'une machine du réseau
   dans le champ "service" et cliquez sur "OK". La bannière du site
   choisi devrait apparaître alors. Une fois connecté, on peut lancer des
   programmes X, y compris un gestionnaire de fenêtres, depuis la fenêtre
   telnet.

6. Le terminal X et les polices

   Le terminal X possède quelques polices internes, appelées "built-ins"
   dans les menus et fichiers de configuration. Le terminal peut
   fonctionner avec ces seules polices, mais, en général, on préfère en
   avoir davantage. On peut ajouter des polices en indiquant des chemins
   d'accès dans les menus de configuration de la console X, dans les
   fichiers de configuration, ou par la commande xset.

   Lorsque le logiciel serveur X s'exécute sur le terminal, cette
   commande xset permet de modifier ou consulter la liste de chemins
   d'accès des polices.

   Pour interroger le serveur X : xset -q

   Pour ajouter des chemins d'accès : xset +fp _chemin_

   Pour enlever des chemins d'accès : xset -fp _chemin_

6.1 Le serveur de polices

   Le serveur de polices (xfs : _X Font Server_) tourne sur une des
   machines du réseau, et fournit des polices au terminal X et aux autres
   clients du réseau. L'emploi d'un serveur de polices permet d'utiliser
   une grande variété de polices, parce que le logiciel du serveur X ne
   traite que des polices _bitmap_. Lors d'un chargement de police, le
   serveur de polices peut décompresser, ajuster et convertir des polices
   pour le serveur X, et peut aider à simplifier la gestion des polices
   pour des groupes de terminaux et de clients réseau. Le serveur de
   polices est fourni avec de nombreuses distributions Linux, et a
   également été incorporé dans le logiciel du consortium X disponible
   sur ftp.x.org.

   Pour indiquer l'utilisation d'un serveur de polices, on met une
   référence à un service TCP à la place d'un chemin d'accès dans les
   menus ou fichiers de configuration du terminal X.

   Format des références à des services TCP :

tcp/<adresse IP du serveur de polices>:<port utilisé>

   Exemple:

tcp/10.0.0.1:7100

   Voici un exemple extrait du fichier de configuration d'un terminal X :

xserver-default-font-path = {
        { "tcp/10.0.0.1:7100" }
        { "built-ins" }
}

   La commande xset permet d'ajouter un serveur de polices dans la liste
   des chemins d'accès :

xset +fp tcp/10.0.0.1:7100

   AVERTISSEMENT : Certaines versions de NCDWare (logiciel serveur)
   exigent que le serveur de polices soit indiqué en premier avant les
   polices prédéfinies "built-ins". Ceci est en contradiction avec la
   documentation NCD "System Administrator's Guide for UNIX Systems".

   Faites des essais, et vérifiez le résultat avec la commande "xset q".

   Sur la machine hôte, le serveur de polices xfs est lancé au démarrage
   par le script rc.local, par la commande suivante :

xfs -config <fichier de configuration> -port <numéro de port>

   Le numéro de port standard pour le serveur de polices est 7100.
   Exemple:

xfs -config /usr/X11/lib/X11/fs/config -port 7100

   Exemple de fichier de configuration du serveur de polices :
       ______________________________________________________________

# Fichier de configuration du serveur de polices

# On autorise au plus 10 clients a se connecter à ce serveur de polices.
client-limit = 10

# lorsqu'un serveur de polices atteint le nombre maximum de client,
# on en démarre un autre.
clone-self = on

# On utilise le syslog d'UNIX pour noter les erreurs.
use-syslog = on

# liste des répertoires de polices
catalog = /usr/X11R6/lib/X11/fonts/misc/,
   /usr/X11R6/lib/X11/fonts/Speedo/,
   /usr/X11R6/lib/X11/fonts/Type1/,
   /usr/X11R6/lib/X11/fonts/75dpi/,
   /usr/X11R6/lib/X11/fonts/100dpi/

# fichier pour noter les erreurs si syslog n'est pas employé
error-file = /usr/X11R6/lib/X11/fs/fs-errors

# 12 points en  decipoints
default-point-size = 120

# 100 x 100 et 75 x 75
default-resolutions = 75,75,100,100
       ______________________________________________________________

7. Divers

7.1 Terminaux supportés

   On m'a dit que les procédures décrites dans ce document fonctionnaient
   (plus ou moins) pour les terminaux suivants : _NCD 19r, NCD 19c, NCD
   15b_ et _NCD MCX_.

7.2 Références

     * Pages de manuel UNIX : _bootpd_(8), _tftpd_(8), _bootptab_(5),
       _xdm_(1x), _xfs_(1), _fsinfo_(1), _xset_(1), _inetd_(8),
     * HOWTOs : _Linux Ethernet HOWTO_, _Linux Net-3 (Networking) HOWTO_,
     * NCD Techtips Archive,
     * NCD Techtips Archive Mirror at CERN,
     * Depuis la sortie de la première version de ce _mini HOWTO_, j'ai
       découvert un document de NCD qui rend le mien presque inutile. Le
       NCDware Reference Manual couvre en détail presque tous les points
       de la configuration.
     * _NCDware System Administrator's Guide for UNIX Systems_,

7.3 Matériel utilisé pour la préparation de ce document

     * Terminal X : NCD modèle NCD19r avec écran monochrome 19 pouces
       1280x1024, 8Mo de RAM.
     * Logiciel serveur X : NCDware V3.2.CV 19r_s
     * Machines-hôtes : IBM Cyrix 686 P150+ distribution Slackware (noyau
       Linux version 2.0.31), IBM Cyrix M2 200 MMX distribution Red Hat
       5.0 (noyau version 2.0.32).
     * Carte réseau : carte Ethernet 10 base T (clone NE 2000) et
       répèteur multiport 8 voies.
     * Serveur de polices version 2, release 6300.

7.4 Remerciements

   Je voudrais remercier Michael de Lind van Wijngaarden, Jamal
   Hadi-Salim et Dwight Hodge pour l'aide apportée pour la préparation de
   ce document.

7.5 Problèmes restants

     * Est il possible (et raisonnable) de démarrer le serveur de polices
       par _inetd_ ?
     * Si la machine sur laquelle tourne le serveur de polices est
       arrêtée, puis redémarrée et le serveur de polices réactivé, il
       arrive que le terminal X n'arrive pas à accéder aux polices. Il
       faut redonner la liste des chemins d'accès des polices avec les
       menus de la console ou par xset. Pourquoi ?
     * Les procédures sont-elles les mêmes pour d'autres modèles de
       terminaux X ?
     * Quelle est la procédure pour démarrer le terminal X en utilisant
       NFS (Nework File System) ou RARP (Reverse Address Resolution
       Protocol)?
     * Les messages suivants apparaissent dans la fenêtre console du
       terminal X. Je suspecte qu'ils sont causés par des extensions
       _XFree86_ qui ne font pas partie du serveur X. Quelqu'un peut-il
       infirmer ou confirmer ?

%XSERVER-I-NEWCLIENT, host "localhost" connected with blank authorization
%XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "BIG-REQ
UESTS"
%XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "XKEYBOA
RD"
%XSERVER-W-NOEXTENSION, client attempted to use non-existent extension "XFree86
-Misc"

     * Verrons-nous un portage de Linux sur les terminaux X ? Cela semble
       improbable, mais Linux existe déjà sur d'autres plateformes
       improbables.

7.6 Contact

   Vous pouvez m'écrire à ian@permedia.ca pour tous commentaires,
   suggestions ou contributions.