Minitel et Raspberry PI

Minitel et Raspberry PI

Pour vérifier le bon état de fonctionnement de mon Minitel 2, je me suis tourné vers le Raspberry PI afin d’orchestrer une rencontre entre deux technologies « du futur »… séparées de 30 ans. Ici le but sera d’utiliser le minitel comme terminal pour Raspberry PI, ce qui évite d’avoir à brancher un écran HDMI, un clavier, en cas de souci (problème d’accès au réseau par exemple). Oui bien sûr, en vrai, cela ne sert à rien.

Matériel nécessaire

* Un Minitel (un minitel 2 de préférence pour accéder au « haut débit » (9600 bauds au lieu de 1200 par défaut).

* Un câble DIN 5 broches (qui ressemble à une prise MIDI) vers un connecteur série format DB25 femelle, similaire au port parallèle d’antan. Le Raspberry PI n’ayant pas de tel port, j’ai du donc ajouter un adaptateur parallèle vers série (DB9). N’ayant pas de port série non plus, j’ai ajouté un adaptateur Série/USB.Ceux qui ont eu un minitel n’ont peut être pas remarqué la prise 5 broche au dos. Elle est masquée par un cache que l’on peut faire coulisser.

* Un Raspberry Pi. Ou n’importe quel PC, sous Linux de préférence. Ici j’utilise Raspbian, aussi certaines commandes peuvent différer d’une distribution a une autre, de façon marginale.

Résultat: un bricolage infâme, pour un bus à 2 fils… mais qui a le mérite de marcher.

Configuration du minitel

* Par défaut en 1200 Bauds, 7 Bits, even
* Possibilité d’augmenter la vitesse: sur le clavier du minitel la combinaison Function+4 permet de passer en 4200 bauds, Function+P 9 permet de passer en 9600 bauds. Les commandes principales du minitel sont les suivantes:

  • Fonction-T A: Passer en mode ‘videotext’, 80 colonnes
  • Fonction-T V: Repasser en mode 40 colonnes
  • Fonction-T E: Désactiver l’écho local
  • CTRL + Flèche Gauche pour effacer le caractère précédent (touche delete)
  • CTRL+I pour la tabulation (pratique pour l’auto complétion)

Configuration Linux

Toutes les commandes suivantes requièrent les droits en lecture et en écriture sur le périphérique série. Bien sur on peut utiliser sudo, ou se loguer en root (sudo su), mais le plus simple est de vérifier que l’on appartient au groupe ‘dialout’ (ou tty). Le cas échéant, on ajoute un utilisateur à un groupe de la sorte:

sudo usermod -a -G dialout username

La première chose à faire est de configurer le port série, qui est /dev/ttyUSB0. On le configure en 9600 baud, codé sur 7 bits.

stty -F /dev/ttyUSB0 evenp 9600

On peut envoyer une chaîne de caractère vers le minitel avec echo:

echo 'Hello World' >/dev/ttyUSB0

Inversement si on veut vérifier que ce que l’on tape sur le clavier du minitel est correctement reçu par le PI:

cat /dev/ttyUSB0

Une fois que cela marche, on peut utiliser le minitel pour se loguer sur le PI:

/sbin/getty -L ttyUSB0 vt100

Si on veut que le terminal soit activé des le démarrage du système,on peut utiliser systemd. Pour tester le service:

systemctl start serial-getty@ttyUSB0

Pour l’activer au prochain démarrage:

systemctl enable serial-getty@ttyUSB0

On n’a pas les messages du Kernel au démarrage, ce qui semble un peu plus compliqué. Il faudrait que le périphérique ttyUSB0 soit activé et configuré dés le démarrage du système.

Have Fun!

Il est temps de profiter de ce beau terminal pour essayer quelques commandes. Ah! la joie de voir la liste des processus avec la commande top! La commande jp2a permet de convertir une image JPG en ASCII art. Enfin, il est possible d’installer lynx, un navigateur web qui fonctionne en mode texte, même si peu de sites sont adaptés:

Liens:

Actualité

https://www.minitel.org/

Protocole RS232:

https://fr.wikipedia.org/wiki/RS-232

Console Série sous Linux:

https://help.ubuntu.com/community/SerialConsoleHowto
https://01.org/linuxgraphics/gfx-docs/drm/admin-guide/serial-console.html