Utiliser un Minitel avec un Raspberry

Il s’agit d’une mise à jour et synthèse des différentes techniques trouvables sur Internet pour utiliser un Minitel avec un Raspberry. Nous utiliserons ici un Raspberry Pi Zero W (modèle Zero mais embarquant de série une puce Wifi, pratique pour utiliser un navigateur en mode texte, un client IRC…).

Version de Raspbian utilisée :

Raspbian Stretch Lite
Version: September 2017
Release date: 2017-09-07
Kernel version: 4.9

On va commencer par ajouter le WIFI : plus d’info ici.

# Ajouter cette partie en remplacer avec vos infos
# dans /etc/network/interfaces
auto wlan0=wifi-maison
iface wifi-maison inet dhcp
wpa-ssid NomDuReseau
wpa-psk CleDeDechiffrement

Puis rebooter

sudo reboot

On vérifie qu’au reboot le Pi capte bien l’Internet

ping -c 4 www.google.fr

Puis on met à jour l’OS (ça ne fait jamais de mal)

sudo apt-get update
sudo apt-get upgrade

Aller on rentre dans le vif du sujet !

On copie le magnifique travail de Canal.chez.com pour que notre terminal affiche tout bien comme il faut.

cd /home/pi
wget http://canal.chez.com/mntl.ti
tic mntl.ti -o /etc/terminfo

Si le système est en UTF-8 (comme la plupart des OS récents), copier ceci dans le fichier ~/.bashrc

# Minitel
case "$TERM" in
m1*|m2*)
export LC_ALL=C
;;
esac

Et pour gérer comme il faut les accents, installer screen et copier ceci dans le fichier /etc/screenrc

sudo apt-get install screen

et

# Minitel
termcapinfo minitel1|m1|minitel1b|m1b|minitel1-nb|m1-nb|minitel1b-nb|m1b-nb 'XC=B^Y%,\241!,\242",\243#,\244$,\245%,\246&,\247\047,\250(,\253+,\257P,\260\060,\261\061,\262\062,\263\063,\265\065,\267\067,\272k,\273;,\274<,\275=,\276>,\277?,\300AA,\301BA,\302CA,\303DA,\304HA,\305JA,\306a,\307KC,\310AE,\311BE,\312CE,\313HE,\314AI,\315BI,\316CI,\317HI,\320b,\321DN,\322AO,\323BO,\324CO,\325DO,\326HO,\327\064,\330i,\331AU,\332BU,\333CU,\334HU,\335BY,\336l,\337{,\340Aa,\341Ba,\342Ca,\343Da,\344Ha,\345Ja,\346q,\347Kc,\350Ae,\351Be,\352Ce,\353He,\354Ai,\355Bi,\356Ci,\357Hi,\360r,\361Dn,\362Ao,\363Bo,\364Co,\365Do,\366Ho,\367\070,\370y,\371Au,\372Bu,\373Cu,\374Hu,\375By,\376|,\377Hy,\252c,,0^O^Y%^N,}#,f0,g1,\\\054\\\054,+.,./,0\177,--'
termcapinfo minitel1|m1|minitel1b|m1b|minitel1-nb|m1-nb|minitel1b-nb|m1b-nb 'G0:S0=^N:E0=^O:C0=`>a9f!j%k4l<m-n=p#q\,rpt=u5v-w<x5yvzy|l~$'
termcapinfo minitel1b-80|m1b-x80 'XC=B^N%^O,\243#,\247],\260[,\340@,\347\\\\,\351{,\350},\371|,\300A,\301A,\302A,\303A,\304A,\305A,\306E,\307C,\310E,\311E,\312E,\313E,\314I,\315I,\316I,\317I,\320D,\321N,\322O,\323O,\324O,\325O,\326O,\331U,\332U,\333U,\334U,\335Y,\337s,\341a,\342a,\343a,\344a,\345a,\346e,\352e,\353e,\354i,\355i,\356i,\357i,\360d,\361n,\362o,\363o,\364o,\365o,\366o,\372u,\373u,\374u,\375y,\377y,\267.,\327x,\367/,\261\E7\E[4m+\E8\E[C,,0^O%^N,x|,y\E7\E[4m<\E8\E[C,z\E7\E[4m>\E8\E[C,g\E7\E[4m+\E8\E[C'
termcapinfo minitel1b-80|m1b-x80 'G0:S0=^N:E0=^O:C0=}#f[j+k+l+m+n+o~q=s_t+u+v+w+x!0\032'
termcapinfo minitel2-80|m2-x80 'XC=B%\E(B,\243\E(3},\247\E(R[,\257\E(3v,\260\E(3f,\261\E(3g,\265\E(3Y,\267\E(3~,\274\E(3O,\275\E(3P,\276\E(3Q,\277\E(3Z,\300A,\301A,\302A,\303A,\304\E(3R,\305A,\306E,\307C,\310E,\311\E(3S,\312E,\313E,\314\E(3T,\315I,\316I,\317I,\320D,\321\E(3W,\322\E(3U,\323O,\324O,\325O,\326O,\327x,\331U,\332U,\333U,\334\E(3V,\335Y,\337\E(3{,\340\E(3A,\341a,\342\E(3B,\343a,\344\E(3C,\345a,\346e,\347\E(R\\\\,\350\E(3E,\351\E(3D,\352\E(3F,\353\E(3G,\354i,\355i,\356\E(3H,\357\E(3I,\360d,\361\E(3X,\362o,\363o,\364\E(3J,\365o,\366\E(3K,\367\E(3h,\371\E(3L,\372u,\373\E(3M,\374\E(3N,\375y,\377y,,0\E)3%\E)0,\\\054m,+k,.l,0\177,-j'
termcapinfo minitel12-80|m12-x80 'XC=B%\E(B,\243\E(3},\247\E(R[,\257\E(3v,\260\E(3f,\261\E(3g,\267\E(3~,\274\E(3O,\275\E(3P,\276\E(3Q,\300A,\301A,\302A,\303A,\304A,\305A,\306E,\307C,\310E,\311E,\312E,\313E,\314I,\315I,\316I,\317I,\320D,\321N,\322O,\323O,\324O,\325O,\326O,\327x,\331U,\332U,\333U,\334U,\335Y,\337\E(3{,\340\E(3A,\341a,\342\E(3B,\343a,\344\E(3C,\345a,\346e,\347\E(R\\\\,\350\E(3E,\351\E(3D,\352\E(3F,\353\E(3G,\354i,\355i,\356\E(3H,\357\E(3I,\360d,\361n,\362o,\363o,\364\E(3J,\365o,\366\E(3K,\367\E(3h,\371\E(3L,\372u,\373\E(3M,\374\E(3N,\375y,\377y,,0\E)3%\E)0,\\\054m,+k,.l,0\177,-j'

En continu en ajoutant la fonctionnalités des touches ENVOI, CORRECTION, ANNULATION, et Sup.C, Ins.C, Sup.L, Ins.L, Home, E.Page.

Créer ou ajouter ceci dans ~/.inputrc

$include /etc/inputrc

# Minitel :
"\eOM": accept-line # ENVOI
"\eOQ": kill-whole-line # ANNULATION
"\eOR": beginning-of-history # RETOUR
"\eOS": redraw-current-line # REPETITION
"\eOl": backward-delete-char # CORRECTION
"\eOm": "\001man " # GUIDE
"\eOn": end-of-history # SUITE

"\e)4\r": end-of-line # TS+C/F

"\e[M": kill-whole-line # Sup.L
"\e[L": yank # Ins.L
"\e[P": delete-char # Sup.C
"\e[4h": quoted-insert # Ins.C
"\e[H": beginning-of-line # Home
"\e[2J": clear-screen # E.Page

Maintenant on va faire un petit script pour automatiser le lancement de la console, que l’on va appeler go.sh

#!/bin/sh

TTY=${1:-ttyUSB0}
BPS=4800

stty -F "/dev/$TTY" $BPS istrip cs7 parenb -parodd brkint \
ignpar icrnl ixon ixany opost onlcr cread hupcl isig icanon \
echo echoe echok;

while [ -e "/dev/$TTY" ]; do
agetty -c -L -i -I "\033\143" $TTY $BPS m1b-x80
sleep 1
done

On lui donne le droit d’exécution avec

sudo chmod +x go.sh

On allumer le Minitel et on le passer en mode ‘péri-informatique’ en 4800 bits/s avec les combo de touches (à refaire à chaque mise sous tension car le Minitel n’a pas de mémoire)

Fnct + T (en même temps, puis on relâche), puis A
Fnct + T (en même temps, puis on relâche), puis E
Fnct + P (en même temps, puis on relâche), puis 4

Et on fini par lancer le script avec

sudo bash go.sh ttyUSB0

Attention, ttyUSB0 représente l’adresse du convertisseur USB<->Serial, il est possible que ce que ne soit exactement cette adresse, pour être sur, regarder l’adresse de l’interface avec

dmesg | grep tty

Maintenant, configurons le lancement automatique du terminal dès la mise sous tension du Raspberry

Reste à faire…

Listes des applications sympa à utiliser avec le Minitel

IRSSI : client IRC (oui oui, ça marche toujours et il y a du monde dessus!)

eLinks : navigateur Internet en ligne de commande

Lynx : navigateur Internet en ligne de commande

Remerciements et sources

sta6502.blogspot.fr

canal.chez.com

chapelierfou.org

pila.fr #1 et pila.fr #2 et pila.fr #3

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *