Ressuscitez le Minitel

C’est quoi un minitel ?

Du début des années 1980 et la fin du service en 2012, l’ère du Minitel aura quand même duré 30 ans. Pour simplifier (pour les plus jeunes), disons que le Minitel était l’ancêtre d’internet. C’était un petit terminal en noir et blanc qui permettait d’accéder à des services payants (Annuaire, Chat, Journaux et bien sûr les fameuses messageries roses). Au moment de son déclin France Télécom (qui s’appelle maintenant Orange) a eu une très bonne idée. Elle a offert les Minitels au utilisateurs. Ce « cadeau » a permit à l’entreprise de se décharger de la responsabilité du recyclage des millions de Minitels encore en circulation. C’était bien pour les bénéfices, mais un peu moins bien pour la planète.

Heureusement, certains Minitels ont aussi fini à la déchèterie, mais beaucoup de personnes les ont conservés. On en trouve régulièrement dans les vides-greniers ou sur les sites de vente entre particuliers. Ça tombe bien parce qu’on peut en faire un beau terminal vintage pour Raspberry Pi.

Pourquoi faire ce tuto ?

En fait, je n’ai rien inventé, il existe déjà énormément de tutos qui expliquent comment faire (voir les sources à la fin de l’article), mais le problème est qu’ils sont un peu anciens. Ce qui fait que certains ne fonctionnent plus avec la version actuelle de Raspbian. D’autres sont très intéressants mais incomplets. J’ai donc tenté de faire une synthèse et j’ai aussi un peu galéré avant d’arriver à un résultat acceptable. Mais, maintenant, ça fonctionne. Alors, autant vous en faire profiter…

Choisir son Minitel

Le moins que l’on puisse dire, c’est que le Minitel est robuste. Au départ, il était prêté ou loué aux utilisateurs, il n’était donc pas du tout rentable qu’il tombe souvent en panne. Résultat, un Minitel de 30 ans qui prend la poussière au fond d’un grenier a de grandes chances de s’allumer comme au 1er jour (après un petit coup de chiffon). Il y très peu de chance que nos smartphones connaissent le même destin…

Mais si vous achetez un Minitel dans une brocante, faites quand même attention. En effet, seuls les Minitels bistandards (1B et 2) peuvent être facilement transformés en terminal. Pour les reconnaitre, c’est facile, ils possèdent (sur le clavier) une touche « Fnct » qui permet de changer la configuration du minitel. Mais aussi (à l’arrière), la fameuse prise DIN à 5 broche qui assurera la communication avec le Raspberry Pi.

Installation du Rasberry Pi

Pour cela, vous n’avez besoin ni d’écran, ni de clavier (ou de souris).

Préparation de la carte SD

  • Téléchargez la dernière version de Raspbian Stretch Lite ici.
  • Copiez l’image sur la carte micro SD un utilitaire de type Etcher (ou NOOBS).
  • Activer le SSH, pour cela il faut simplement créer à la racine de la carte, un nouveau fichier vide nommé : « ssh« 

Configuration Wifi

Cette étape n’est pas nécessaire si vous vous connectez par câble Ethernet. Sinon, créez aussi à la racine, un fichier nommé : wpa_supplicant.conf et contenant le code suivant :

country=fr
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="Votre nom de réseau Wi-Fi"
    psk="Votre mot de passe Wi-Fi"
}
  • Insérez la carte dans le Raspberry Pi et allumez le.
  • Pour contrôler votre Raspberry Pi par SSH (sous Windows), vous pouvez utilisez PuTTY.

Si vous connaissez l’adresse IP du raspberry, vous pouvez l’indiquer, mais le plus simple est d’indiquer le nom d’hôte : « raspberrypi« . Ensuite, vous pouvez même l’enregistrer (pour vous faciliter la vie).

La 1ère connexion est souvent un peu plus longue et PuTTY vous demandera certainement valider la clé en cliquant sur « Oui« .

Mais, vous pouvez aussi utiliser le nouveau client SSH de Windows 10. Pour l’activer, allez dans : Applications et Fonctionnalités – Gérer les fonctionnalités facultatives – Ajouter une fonctionnalité – OpenSSH Client. Cliquez Installer, redémarrez l’ordinateur, ouvrez une invite de commande et tapez : « 

ssh pi@raspberrypi
  • Par défaut le nom d’utilisateur est pi et le mot de passe raspberry
  • Tapez ensuite :
sudo raspi-config

Modifiez le mot de passe et éventuellement les options de localisation (Localisation Options).

Pour que certaines modifications soient prises en compte, vous devrez éventuellement redémarrer le Raspberry Pi.

Ensuite, vous pouvez mettre à jour Raspbian :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update

Et redémarrez en tapant :

sudo reboot

Connexion du Minitel au Raspberry pi

Le branchement n’est pas très compliqué, il suffit d’un transistor, de quelques résistances, mais surtout un convertisseur USB vers TTL série basé sur la puce PL2303HX.

Si vous êtes doué, vous pouvez même faire comme Pila, qui a réussi à tout intégrer dans une prise DIN Mâle. Une autre solution consiste à intégrer les composants à l’intérieur du minitel et de faire sortir la prise USB à la place du câble téléphonique (désormais inutile).

Ensuite, vous pouvez relier le minitel et le Raspberry Pi.

Préparation du minitel

A la base, le minitel n’était pas conçu pour servir de terminal au Raspberry, il n’est donc pas capable de mémoriser les informations de connexion. Il faudra donc chaque fois que vous l’allumerez, refaire la manipulation suivante.

Fnct+Sommaire (pour passer du mode répertoire au mode terminal)
Fnct+T (en même temps), relâcher et A (passage en mode périphérique)
Fnct+T, (en même temps) et E (désactivation de l’echo du terminal)
Fnct+P, (en même temps), et 4 (connexion à 4800 bauds)

Test de communication

Branchez le minitel sur la prise USB du Raspberry Pi et allumez les. Connectez vous au Raspberry (avec PuTTY ou le client SSH de Windows).
Copiez ces 3 lignes en même temps dans votre client SSH :

stty -F /dev/ttyUSB0 4800 istrip cs7 parenb -parodd brkint \
ignpar icrnl ixon ixany opost onlcr cread hupcl isig icanon \
echo echoe echok

puis :

echo 'Hello World' > /dev/ttyUSB0

Nous allons maintenant tester la communication dans l’autre sens, tapez :

cat /dev/ttyUSB0

Sur le minitel, vous pouvez taper le texte que vous voulez (suivi de la touche entrée). Le texte devrait s’afficher dans le client SSH (tapez CTRL+C, pour quitter).

Pour la suite, je me suis surtout inspiré de l’excellent tuto de Maxime Vinzio.

Téléchargez le fichier mntl.ti d’Alexandre MONTARON. Et compilez-le :

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

Pour que le fichier soit utilisé par agetty, tapez :

agetty -c ttyUSB0 4800 minitel1b-80

Créez le fichier de configuration

sudo nano /etc/systemd/system/serial-getty\@.service

Copiez/Coller le texte suivant dans le fichier de configuration (clic droit) :

# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation; either version 2.1 of the License,
# or (at your option) any later version.

[Unit]
Description=Serial Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
BindsTo=dev-%i.device
After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service
After=rc-local.service
# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes
[Service]
ExecStart=-/sbin/agetty -c %i 4800 minitel1b-80
Type=idle
Restart=always
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes
[Install]
WantedBy=getty.target

Enregistrez le fichier (CTRL+x, o et Entrée)

Activez le service au démarrage, copiez les 2 premières lignes en même temps dans votre client SSH :

sudo ln -s /etc/systemd/system/serial-getty@.service /etc/systemd/system/getty.target.wants/serial-getty@ttyUSB0.service

Lancez le service

sudo systemctl daemon-reload
sudo systemctl start serial-getty@ttyUSB0.service

Ou redémarrez (pour vérifier qu’il se lance automatiquement)

sudo reboot

Les 2 premières lignes sont un peu bizarres (avec des gros carrés blancs) mais après avoir tapé le nom d’utilisateur (pi) et validé, l’affichage devient normal et vous disposez d’un terminal fonctionnel.

Maintenant, vous pouvez même piloter votre cafetière par Minitel…

Sources de l’article :

Publicités

24 réflexions sur “Ressuscitez le Minitel

  1. Bjr – Vous êtes bien certain d’avoir utilisé « juste » un connecteur USB « nu » dans votre montage comme l’indique votre dessin ? Il me semble qu’il faut insérer un convertisseur USB/TTL (5v ou 3.3v) pour que ça fonctionne. Ou alors, il faut utiliser les I/O prévues pour le terminal série sur le connecteur 40 pts du RasPi….

    Aimé par 1 personne

    1. Bonjour,
      Vous avez tout à fait raison, ça fait quelques années que j’ai fait la modification du minitel et en reprenant mes notes, j’ai effectivement oublié ce « détail ».
      Le schéma est maintenant corrigé, merci beaucoup pour votre intervention.

      J'aime

    1. Oui, j’ai la même chose (voir l’avant dernière photo). Tapez simplement l’identifiant (pi, par défaut) et validez et ensuite les caractères devraient être normaux (il demande le mot de passe etc…)

      J'aime

      1. Vous avez peut être raté une étape, essayez de recommander le tuto depuis le début avec une version « vierge » de Raspbian, on a vite fait de se tromper et moi aussi j’ai un peu galéré avant d’arriver à avoir quelque chose qui fonctionne, sinon regardez dans les liens sités en source, vous trouvez peut être des paramètres qui correspondent mieux à votre configuration.

        J'aime

  2. le problème est disons plus problématique quand je rentre dans aucune Fonction mon clavier (minitel) fonctionne normalement quand je fait Fnct+ T ect le clavier ne correspond plus a rien est un coup il écrit et 2 secondes plus tard il écrit plus rien

    J'aime

    1. Vous êtes sûr que vous faites correctement les combinaisons de touches, dans l’ordre et en relâchant les boutons au bon moment, par exemple, vous appuyez sur Fnct+T (en même temps), vous relâchez et ensuite vous appuyez sur A (et ainsi de suite pour les autres séquences de touches). Autrement, le test de communication (depuis le Raspberry connecté en SSH) fonctionne ?

      J'aime

    1. bonjour Alexandre
      je me casse un peu la tête sur le système, mon câble fonctionne je l’ai testé dans les deux sens, par contre des caractères blanc quand je veux utiliser en mode terminal, j’ai un prompt login je met pi mais je n’ai pas le prompt suivant de password en faisant « entree » ou autre touche, si votre fichier corrige cela comment le mettre dans le fichier @.service ? j’ai mise ça chez moi mais euh comment dire…

      ExecStart=-/sbin/agetty -L -i -I « \033\143 » -f /etc/issue.minitelG %i 4800 minitel1b-80

      merci
      Jean-Philippe

      J'aime

      1. Bonjour Jean-Philippe,
        Je ne suis pas non plus un expert en ce domaine. Comme je l’indique dans l’article je me suis surtout contenté de faire une synthèse de différents tuto pour obtenir un résultat qui fonctionne.
        Mais, vous avez tout à fait raison, c’est bien une erreur. C’est certainement pour cette raison que j’ai ajouté un reboot (qui règle le problème en rendant cette ligne inutile).
        Je vous remercie beaucoup pour votre vigilance et corrige cela immédiatement.
        Amicalement
        JC

        Aimé par 1 personne

  3. merci pour la réponse rapide JC 🙂
    j’ai un souci, peut-être pas le seul à l’avoir: sur 3 minitels de récup, j’ai au démarrage l’affichage d’une sorte d’annuaire mais je n’arrive pas à faire comme sur mon minitel 1 (séquence FCT+T et A puis E puis passage en 80 col avec FCT+Pet 4)
    le curseur en haut à droit ne change pas et .. je tourne en rond, help 🙂
    merci
    Jean-Philippe

    J'aime

      1. super j’ai déjà pu basculer dans le mode terminal, j’ai ces fichus carrés blanc sans retour de commande vers le Pi comme avec l’autre minitel mais je creuse… merci 🙂

        J'aime

  4. Les carrès blancs c’est du au fait que les getty d’aujourd’hui démarrent en 8bits sans parité et passent en 7bits parité impaire (voir paire) dès qu’il reçoit des erreurs de parité justement… Tu peux qd mm te logguer malgré les carrès blanc il disparaitront après. Le fichier issue.minitelG que je te proposais fait disparaitre les carrès blanc dès le début sauf pour le login ou c’est comme sur la photo http://canal.chez.com/term_prompt.htm ). Alex.

    J'aime

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s