Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Pratique-minitel


Utilisation d'un Minitel comme terminal LINUX

par Jean-Marc Lichtlé

Ajouter un terminal à son PC peut s'avérer très intéressant, ne serait-ce que pour disposer en permanence d'une console administrateur...


Introduction

L'idée peut paraître curieuse. Pourquoi diable remettre en service ce bon vieux Minitel? Et surtout pourquoi vouloir le connecter à une linuxette?
En fait il peut y avoir plusieurs motifs.

L'ordinosaure

Imaginons que vous soyez un peu bidouilleur de puces (électronicien) et que vous vous intéressiez aux montages tels que les interfaces PC vers des systèmes extérieurs (train électrique, mesure) mais aussi à la programmation de micro-contrôleurs etc. [#foot35 1].
Vous possédez bien une vieille unité centrale, mais le clavier et l'écran sont partis depuis longtemps, morts de fatigue, prêtés à un copain qui était en panne etc. Et bien entendu pas question d'utiliser votre PC tout neuf tournant avec la dernière Mandrake, un simple court circuit sur le port parallèle et adieu les impressions ! Et comme vous êtes nettement moins doué du fer à souder que du mulot il vaut mieux prévenir que guérir.
Utiliser un Minitel pour servir de terminal de dialogue peut donc s'avérer particulièrement efficace pour remettre en service une vieille unité centrale d'autant plus que le Minitel est généralement un appareil facile à trouver, qu'il est souvent rangé dans le même rabicoin que le vieux PC etc.

La bête de somme

On peut imaginer d'autres cas ou une telle combinaison est intéressante, par exemple le vieux PC oublié dans un coin et qui sert de bête de somme pour faire des travaux ingrats, serveur de fichier, serveur d'impression, routeur.

La roue de secours

Il ne faut enfin pas perdre de vue la possibilité toujours présente de faire une modification 'miracle' sur l'un des fichiers de paramétrage de l'affichage ou du clavier. Dans ce cas le fait de disposer d'une console de secours peut être précieux, ne serait-ce que pour copier immédiatement les fichiers de sauvegarde automatiques créés par l'éditeur en lieu et place des fichiers maladroitement modifiés.

Blocage du serveur X

On relate de très rares blocages du serveur X. Dans un tel cas il peut être intéressant de disposer d'un moyen de reprendre le contrôle de la machine avec un terminal qui ne dépende pas du serveur X.

Minitel concernés

On pourra utiliser pour faire ce montage tout Minitel bistandard capable de mettre en oeuvre le mode vidéotex (la norme pour les Minitel, 24 lignes, 40 colonnes) et le mode péri-informatique (80 colonnes). Ces appareils sont aisément reconnaissables au fait qu'ils disposent d'une touche Fnct (fonction) sur le clavier. Il faut bien entendu aussi que le Minitel soit équipé de la prise DIN qui va bien et qui, normalement, sert au raccordement d'une imprimante.

Raccordement

Pour ma part j'ai utilisé un de ces cordons qui était en vogue il y a une dizaine d'années, à une époque ou le Minitel servait de modem et permettait de bénéficier des services TELETEL sur son PC pour faire des téléchargements. J'ai vérifié sa composition, il comporte bien, dans son boitier DB25 un petit circuit imprimé sur lequel sont brochés deux transistors et quelques résistances. Voir à la fin de ce document la liste de quelques sites traitant du même sujet et qui reproduisent le schéma du cordon.

Configuration du PC

La configuration que je décris ici est celle que j'ai essayé sur une Mandrake 9.0.

Tous les utilisateurs de LINUX sont habitués à trouver, à côté des écrans X Window, un certain nombre d'écrans textes, des terminaux virtuels, généralement au nombre de 4 ou 6, accessibles par CTRL-ALT-F1; CTRL-ALT-F2 etc. La génération de ces écrans est conditionnée par le contenu du fichier /etc/inittab. Ce fichier, lu lors du lancement par le processus init, génère autant d'écrans texte qu'il y a de lignes de définition correspondantes dans le fichier inittab.
Court extrait du fichier inittab de la Mandrake 9.0:

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

En fait chacune de ces lignes lance un programme de communication, ici mingetty. Le premier paramètre passé à mingetty (et le seul dans ce cas) correspond à l'identité de la console, ici tty1 à tty6. Vous retrouvez cet identifiant dans le bandeau d'accueil de chacun des écrans texte évoqués ci-dessus. Ces paramètres correspondent à des entrées dans /dev/.
Pour prendre en charge un terminal sur un port série il faut donc s'attendre à devoir ajouter au fichier inittab une ligne semblable à celles-ci. Dans notre cas toutefois mingetty n'est pas en mesure de prendre en charge un terminal sur port série. Il s'agit, comme son nom l'indique, d'une version mini de getty. Il convient donc pour avancer sur notre dossier de mettre en oeuvre getty, le programme complet.

Installation de getty

Si getty n'est pas installé (il ne l'est pas sur l'installation par défaut de Mdk 9.0) l'ajouter à la configuration avec le logiciel de votre choix, rpm, urpmi, rpmdrake, kpackage etc.. Vous trouverez un peu partout dans la documentation, mais aussi sur lea-linux.org, des explications sur la façon d'installer un logiciel.

Configuration de getty

Une fois getty installé on passe à la modification du fichier /etc/inittab de telle sorte que l'un des ports série de votre PC soit affecté au nouveau terminal. Cette édition ne peut bien entendu se faire que sous compte administrateur. Repérez les lignes relatives à mingetty et ajoutez celle-ci à la suite:

7:2345:respawn:/sbin/getty ttyS1 4800v23

Cette ligne va créer, sur le deuxième port série de votre PC un terminal dont la vitesse est identifiée par l'argument 4800v23.
Le point de raccordement, ici ttyS1 correspond au deuxième port série (appelé COM2 par certains...). Si vous utilisez le premier port alors remplacer ttyS1 par ttyS0 dans la syntaxe ci-dessus.
Au fait, que signifie 4800v23 dans cette phrase ? Et bien pour l'instant, pas grand chose du moins pour nous. Par contre au lancement getty va lire le fichier /etc/gettydefs à la recherche d'une ligne dont l'étiquette serait justement 4800v23. En fait on pourrait écrire n'importe quoi ici, Minitel, console2 etc.. pourvu que l'argument de la ligne getty renvoie bien vers une étiquette de même nom dans /etc/gettydefs. Il suffit maintenant de créer la ligne définissant la gestion du Minitel. Pour cela éditer /etc/gettydefs et ajouter la ligne suivante, par exemple à la fin du fichier:

4800v23# B4800 CS7 PARENB -PARODD GLOBAL # B4800
ISTRIP CS7 PARENB -PARODD GLOBAL BRKINT IGNPAR ICRNL
IXON IXANY OPOST ONLCR CREAD HUPCLISIG ICANON ECHO
ECHOE ECHOK #@S login: #4800v23

Attention: cette ligne doit être introduite d'un seul tenant, sans saut de ligne. Je l'ai coupé ici de telle sorte à être certain que vous ayez tous les caractères quel que soit le moyen de diffusion de la présente, écran, papier, format html ou pdf etc.
Voilà, la configuration côté LINUX est terminée. Il suffit maintenant de faire prendre en compte ce nouveau matériel. Plusieurs solutions s'offrent à vous:

  • Redémarrer votre PC mais là c'est la honte absolue parce que vous conduisez votre machine comme si elle était équipée d'un célèbre système d'exploitation créé du côté de Redmond. Ce n'est pas un tracteur que diable !
  • Taper # init q (# = compte administrateur) de telle sorte à forcer le programme init à relire le fichier inittab et à prendre en compte les nouvelles informations.

A partir de cet instant, plus précisément avec un petit délai fonction de la vitesse de votre machine, vous devriez voir apparaître des signes sur votre écran de Minitel, preuve qu'il se passe bien quelque chose. En fait vous voyez certainement beaucoup de petits pavés blancs juxtaposés et quelques caractères épars et sans signification. Les carrés blancs correspondent à des balises créées par le minitel et qui marquent des erreurs de réception. En fait, le Minitel n'étant pas encore configuré pour recevoir les caractères émis sur le port série, il ne les "comprend" pas.

Configuration du Minitel

Configuration de base

Peu de choses sont nécessaires. Mais il faudra les refaire à chaque remise sous tension parce que le Minitel ne dispose pas de mémoire pour enregistrer les derniers réglages. Il faut simplement :

  • passer le Minitel du mode vidéotex au mode péri-informatique. Tapez ici Fcnt-T A (Fonction et T ensemble puis la touche A seule).
  • supprimer l'écho local des touches en tapant Fcnt-T E.
  • passer la vitesse de transmission à 4800 bauds. Ceci est obtenu en tapant Fcnt-P 4.

L'ordre dans lequel on effectue ces manipulations n'est pas tout à fait indifférent. Le passage en mode péri informatique réinitialise le Minitel, en particulier l'écho. Il est donc judicieux de mettre cette ligne en première position dans la liste. Les deux autres peuvent être permutées à mon avis. Si vous vous trompez, pas d'hésitation, appliquez la méthode de Redmond, mais bien sûr sur le Minitel seulement !
Si votre paramétrage est correct et complet tapez maintenant un petit coup sur la touche "entrée" et vous voyez sous vos yeux ébahis s'afficher l'invite de votre shell préféré ! Attention aux habitudes ! Votre premier réflexe sera bien entendu d'utiliser la touche "ENVOI" en lieu et place de la touche entrée. Gardez vous en toutefois, la touche entrée est la touche marquée de la flèche brisée classique, tout en bas à droite du clavier sur un Minitel 1B TELIC ALCATEL. Sur les autres modèles la touche entrée se situe en bas à droite du clavier alphabétique.
Il ne parait pas inutile de rappeler ici quelques combinaisons de touches classiques:

  • Fcnt-T F, idem Fcnt-T A mais mode téléinformatique français (intérêt limité à mon avis)
  • Fcnt-E P, active le mode page, retour en haut de page en fin d'écran
  • Fnct-E R, mode rouleau, réglage par défaut
  • Fnct-C M, verrouillage minuscule / majuscule (bascule)

Ne perdez pas de vue par ailleurs que le Minitel est capable, en fonction du modèle précis, de travailler à des vitesses variées. On peut ainsi régler la vitesse de transmission aux valeurs suivantes:

  • Fcnt-P 1, 300 bauds
  • Fcnt-P 2, 1200 bauds
  • Fcnt-P 4, 4800 bauds
  • Fcnt-P 9, 9600 bauds (ne marche pas sur Minitel 1B TELIC)

Configuration avancée

Arrivé à ce stade vous avez un terminal qui vous permet d'utiliser le shell. L'utilisation de VI ne devrait pas poser de problème insurmontable. Les touches ':' et '!' sont faciles à trouver, le logiciel se lance sans la moindre difficulté. Vous avez donc la trousse de secours évoquée en entrée et qui devrait vous permettre de corriger une configuration illégale ou de faire toute autre opération simple. En fait vous constaterez rapidement trois limitations :
- certains logiciels texte refusent de se lancer (emacs, lynx, oleo etc..)
- vous ne disposez d'aucun caractère accentué
- les textes apparaissent sans le moindre enrichissement, surbrillance par exemple.

Ces limitations importent peu si on se limite à utiliser le Minitel pour éditer des fichiers de configuration avec VI. Par définition ces fichiers sont rédigés dans une langue non accentuée (quelle tristesse).

Configuration du terminal

Par contre si vous êtes utilisateur d'Emacs (et c'est mon cas), tout essai de lancer votre éditeur préféré sur votre nouveau terminal se traduit immanquablement par une bordée d'injures en anglais:

emacs: Terminal type unknow is not defined
If that is not the actual type of terminal you have,
use the Bourne shell command 'TERM=... export TERM'

etc..

Ben oui mon neveu, c'est bien ce qu'on va faire ! Te fâches pas !
Il suffit en fait à cet endroit de suivre le bon conseil donné par Emacs et qui consiste à donner une valeur à la variable d'environnement TERM. Tapez donc successivement:

  • TERM=vt220
  • export TERM

pour créer une variable TERM dont la valeur sera 'vt220'. Attention, les caractères alphabétiques sont en minuscule. À compter de cet instant Emacs se lancera correctement en pensant avoir affaire à un terminal vt220 alors qu'il est conduit depuis un bon vieux Minitel bien franchouillard.
Pour être tout à fait précis Emacs n'est pas le seul logiciel qui exige de savoir à quel type de terminal il a à faire. D'autres programmes exigent d'être renseignés. Dès que la commande donne lieu à une sortie un tant soit peu complexe vous serez rappelé à l'ordre si vous n'avez pas précisé le type de terminal. La commande 'top' est dans ce cas. Merveille du système LINUX les messages sont suffisamment explicites pour que l'utilisateur de base, pour peu qu'il connaisse un rudiment d'anglais, puisse identifier rapidement la source du problème.
Je choisis délibérément d'émuler un vt220 plutôt qu'un vt100 (qui est au terminal texte ce que la 2CV est à l'automobile) pour bénéficier d'un minimum de confort grâce à des brillances différentiées. En vt100 la surbrillance et la vidéo inverse n'existent pas. L'utilisation de lynx dans ces conditions est donc illusoire, vous perdez la trace du curseur immédiatement. En vt220 vous bénéficiez de la vidéo inverse, vous savez donc où se trouve le champ activable.

Clavier français

Fcnt-T A permet de passer en clavier américain. Avantage, l'invite du shell apparait strictement comme vous avez l'habitude de la lire sur votre PC. Inconvénient, il n'y a pas le moindre accent! Pour obtenir une partie de ces accents il faut remplacer la configuration terminal Fcnt-T A par Fcnt-T F qui donne accès au clavier français. L'inconvénient immédiat est que les crochets [ et ] qui sont des caractères classiques de l'invite sont remplacés par ^ et §. Vous avez donc une invite un peu curieuse. Attention: Fcnt-T A ou Fnct-T F réinitialisent en partie le Minitel, vous êtes contraint de régler à nouveau l'écho si vous changez de langue.

Par contre vous avez la possibilité de taper quelques lettres accentuées :

  • é en tapant Ctrl-1
  • ù en tapant Ctrl-2
  • è en tapant Ctrl-3
  • à en tapant Maj-'
  • ç en tapant Maj-Annulation

A noter que la lettre @ ne semble donc plus pouvoir être obtenue avec le clavier français puisqu'elle correspond à la même combinaison mais en clavier américain. Il reste donc à l'évidence quelques limitations. Je n'ai pas trouvé la combine pour obtenir des caractères avec accent circonflexe par exemple.

Dépannage

Le hasard malfaisant s'acharnant contre vous il se pourrait que la communication ne s'établisse pas correctement. L'un des moyens de faire un premier diagnostic est d'utiliser un émulateur de terminal comme 'minicom' et de tenter, en configurant celui-ci correctement, d'obtenir un échange. Commencer par faire un reset du votre Minitel (Reset secteur, on coupe l'alim !) puis réglez minicom sur 1200 bauds, pas de parité (N), 7 bits, 1 bit de parité. Vous devriez maintenant voir apparaître sur l'écran Minitel les caractères tapés au clavier du PC et inversement. Les éventuels échos indésirables du type caractères qui s'affiche en ddoouubbllee sont à supprimer au moyen des paramétrages ad-hocs, soit ceux de minicom, soit sur le Minitel (Fnct-T E).

Conclusion

Vous trouverez à l'occasion sur Internet d'autres articles traitant du sujet, certains vous conduirons à ajouter un argument à la ligne du fichier inittab de façon à bien préciser que le terminal est un Minitel. A mon humble avis ce luxe de détail n'est pas indispensable puisque nous pouvons, avec la syntaxe simple ci-dessus, faire passer notre bonne vieille boite à messages pour un terminal vt220. L'objectif est donc atteint. Ceux qui voudraient toutefois faire une sélection automatique de type de terminal se reporterons utilement à la documentation disponible, manpage ou autre.
Il ne saurait être question de présenter cette combinaison comme une solution permettant de se passer éventuellement d'un ensemble écran-clavier correct. Les limitations apparaissent en effet assez vite. Nous avons toutefois obtenu un fonctionnement relativement correct et qui permet de s'acquitter de tâches de base. J'ai même lancé un tableur, nommé oleo, sur ce terminal ! Dire que c'est génial serait exagéré mais celà montre l'intérêt de l'association Minitel - Linuxette. Il parait même que grâce à oleo on peut se connecter à une base MySQL! Je n'ai pas essayé mais par contre le client MySQL en mode texte fonctionne parfaitement.

Résumé

Les étapes en quelques mots:

  • Etablir la liaison physique au moyen du cable qui va bien
  • Editer /etc/inittab et ajouter une ligne 7:2345:respawn:/sbin/getty ttyS1 4800v23 en fin de fichier
  • Ajouter 4800v23# B4800 CS7 PARENB -PARODD GLOBAL #B4800 ISTRIP CS7 PARENB -PARODD GLOBAL BRKINT IGNPAR ICRNL IXON IXANY OPOST ONLCR CREAD HUPCLISIG ICANON ECHO ECHOE ECHOK #@S login: #4800v23 sur une ligne à la fin du fichier /etc/gettydefs
  • Relancer init en tapant init q sous compte administrateur
  • Paramètrer le Minitel avec Fnct-T A, Fnct-T E et Fnct-P 4 puis entrée

L'auteur, copie de ce document

Jean-Marc LICHTLE Ingénieur ENSAM promotion Chalons 1973.
Du même auteur et essentiellement sur lea-linux.org vous pourrez trouver différentes contributions sur la trilogie Apache PHP MySQL, installation et sécurisation, sur l'utilisation de LaTeX, la programmation de microcontrôleurs PIC16F84 et quelques autres sujets tout aussi éclectiques.
La copie de ce document est libre de droit à la seule condition, en fait plutôt une simple règle de politesse qu'une condition, de ne pas supprimer le nom de l'auteur ou, pire encore, le remplacer purement et simplement dans un plagia éhonté (n'est-ce pas AMEUR?).
Pour la petite histoire je règle un vieux compte avec un type parfaitement puant qui bosse (prof ou étudiant ?) dans une université Tunisienne et qui a 'pompé' un de mes papiers en faisant disparaître mon nom pour le remplacer par le sien. Il a par dessus tout ça eu l'impolitesse de ne pas répondre à mes mails.
Je pensais que ce genre de comportement était inimaginable dans la sphère LINUX, domaine de l'entraide et du partage de la connaissance.
Je ne suis pas ``tombé dedans'' quand j'étais petit. Ma science vient de l'étude des documents qui se trouvent à ma portée. Dans le cas de ce dossier j'ai trouvé une grande partie de mon savoir dans les documents suivants:

Merci à leurs auteurs respectifs.

À propos de ce document...

Utilisation d'un Minitel comme terminal LINUX

This document was generated using the LaTeX2HTML translator Version 2002-1 (1.68)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -no_subdir -split 0 minitel.tex

The translation was initiated by jml on 2003-03-20


Notes

... etc.[minitel.html#tex2html1 1]
Voir à ce sujet l'article du même auteur sur la programmation des micro-contrôleurs PIC16F84, sur lea-linux.org

jml 2003-03-20
Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Jean-Marc Lichtlé le 23/03/2003.

Copyright

Copyright © 23/03/2003, Jean-Marc Lichtlé

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
Affichages

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA