Minitel sur le port série
Le minitel est « mort » depuis le mois de juillet dernier, mais beaucoup se sont demandés comment le ressusciter.
Le minitel est un petit terminal, sans aucune logique, simplement capable d’afficher des caractères à l’écran. Ces caractères étaient envoyés depuis un serveur en utilisant les lignes téléphoniques et un protocole spécifique.
Depuis les minitels version « 1b », ils étaient équipés d’un port série et de fonctionnalités supplémentaires.
C’est par ce port série que l’on va réutiliser notre minitel.
Ce qu’il faut
– un minitel 1b (récupéré à la déchetterie pour ma part), j’ai la version avec le clavier fixe mais il y en a eu d’autres. On le reconnaît grâce à :
- la touche « Fnct »
- La prise DIN qui est en fait son port série
– un PC (Windows ou Linux) avec un port série. Une fois de plus, la déchetterie m’aura rendu service…
Le montage électronique
Il ne sert qu’à adapter les deux tensions utilisées : le minitel utilise des signaux en 12v et le PC en 5v.
Le montage est simple (2 transistors et 3 résistances), il est expliqué ici : http://furrtek.free.fr/?a=telinux
Test avec HyperTerminal sous Windows
(Sous Windows Vista et 7 il vous faudra télécharger un programme d’hyperterminal).
Mettez le minitel sous tension, puis appuyez sur Fnct et T, puis A (en lachant bien Fnct), puis Fnct + P et le chiffre 4.
Ces deux combinaisons vont :
– passer le minitel en mode « série »
– régler la vitesse du port à 4800 bauds.
Ouvrez l’hyperterminal, puis faites une nouvelle connexion :
Si vous voyez sur l’écran du minitel ce que vous tapez sur votre clavier et vice versa, vous avez réussi. Sinon, revoyez votre câble.
C’est bien gentil, mais pour le moment ça ne sert pas à grand-chose… passons à la suite.
Console Linux
C’est certainement le moyen le plus facile de faire quelque chose de rigolo. Vous n’avez qu’à paramétrer un terminal pour qu’il soit câblé sur le port série et le tour est joué.
Ca se passe toujours sur le site de FurrTek : http://furrtek.free.fr/?a=telinux
Un peu de programmation
Il existe une libraire spécifique pour gérer les communications sur le port série.
Il faut :
http://search.cpan.org/~bbirth/Win32-SerialPort-0.22/lib/Win32/SerialPort.pm (pour Windows)
ou
http://search.cpan.org/~cook/Device-SerialPort-1.002/SerialPort.pm (pour les autres OS)
Le principe est toujours le même, mais dans la suite de ce document je montrerai des exemples pour Windows.
(une très bonne page d’exemples pour utiliser la libraire perl : http://www.foo.be/docs/tpj/issues/vol4_1/tpj0401-0020.html)
Entête du fichier :
#! perl -w # Minitel Console # M. Passenaud # use strict; use Win32::SerialPort;
Mise en place de la configuration du port série :
# set serial port config my $serialPort = new Win32::SerialPort("COM1"); $serialPort->databits(7); $serialPort->baudrate(4800); $serialPort->parity("even"); $serialPort->stopbits(1); $serialPort->handshake("none"); $serialPort->write_settings || undef $serialPort;
Ecrire sur le port série :
# Write to serial port $serialPort->write("coucou\n"); sleep 1;
Lire sur ce dernier :
# Read $serialPort->read_interval(100); while(1) { my ($count, $result) = $serialPort->read(20); print "count = $count, result = $result\n"; }
* Pour la console Linux (PC ou Raspberry Pi) :
export TERM=minitel1b-80 ou mieux (plus récent) :
# wget http://canal.chez.com/mntl.ti
# tic mntl.ti
$ export TERM=m1b-x80
… modifies ton ~/.screenrc en conséquence ainsi que ~/.inputrc pour avoir les accents et le clavier en entier sous Bash, http://Ftp... ( http://canal.chez.com/term_bash.htm )
$ screen (lances screen pour avoir tout ça d’un coup ainsi que la ligne 0 !)
Ca marche même en 40 colonnes avec TERM=m1b-nb (ou TERM=minitel1b-nb) ; tput init ; stty -ixon ; screen
Alex. – http://canal.chez.com/terminfo.htm
C’est toujours la même histoire :
– déjà le gratuit… faut pas rêver, on est pas dans le monde des bisounours et à un moment il faut bien payer les infrastructures et les gens, donc le cloud gratuit c’est forcément du pipeau (cf les conditions d’utilisation d’instagram qui prévoyaient la revente des photos)
– un terminal, c’est un terminal ! c’est à dire juste un affichage sans aucune logique. Un terminal qui gagne en capacité c’est juste un terminal qui va savoir afficher des couleurs, des graphiques ou autre. Un terminal n’a aucune logique. Un navigateur web est un programme qui nécessite une vraie logique et une puissance de calcul derrière ça. Un navigateur web pouvait être considéré comme un terminal il y a quelques années mais depuis l’arrivée de Netscape, des contrôles activeX, du javascript, du flash etc… le navigateur web est devenu plutôt un client lourd, bourré de fonctionnalités
– L’informatique se segmente. Au début il y avait des “informaticiens”, mais des spécialisations ont vu le jour : admin sys, fabriquant, développeur… et cette segmentation continue, des gens sont maintenant fournisseurs de capacité de stockage/traitement.
C’est une réalité à laquelle il fraudra se faire : chacun son métier ! Personnellement, je suis partisan de cette logique : j’ai pas envie de m’emmerder à administrer un serveur web, à paramétrer mes sauvegardes etc… Amazon ou Google le fait très bien, et certainement 1000 fois mieux que moi.
Le coeur du problème, c’est le patriot act. Tout le temps que les américains ne changeront pas ça, ça reviendra sur le tapis. Des solutions annexes pointent le bout de leur nez comme l’offre d’OVH qui progresse de plus en plus et qui du coup est soumise à la loi française.
Mais je vous vois encore venir : “oui mais les fichiers ne sont pas chez moi, donc j’ai pas confiance”. Je vais pousser le bouchon encore plus loin : vous êtes sous Windows ? C’est exactement la même problématique : vous dépendez d’un fournisseur dont vous ne savez pas ce qu’il a fait. Comment sont stockées vos données ? Qu’est-ce qui circule dans vos trames HTTP ?
Ce débat, on l’a en ce moment sur l’informatique parce que c’est en plein changement. Il y a eu bien d’autres corps de métiers qui ont subi ce genre de changements et qui s’en portent pas plus mal : les fabriquant auto qui font appels à des centaines de sous-traitants pour des pièces, les ouvriers dans le bâtiment qui se sont spécialisés et du coup une multitude d’intervenants sur un chantier et j’en passe…
Personnellement, cette séparation des métiers et des spécialisations me réjouis. Je m’explique : Un bon admin sys est quelqu’un qui EST admin sys. Un bon développeur est un développeur. A force d’avoir des spécialisations et donc des spécialistes, on arrive à des systèmes informatiques plus fiables, plus sécurisés et plus optimisés. Avoir donc des acteurs qui se concentrent sur un coeur de métier en particulier est pour moi un gage de qualité de service. Depuis 2 ans je suis utilisateur d’Amazon Web Services et de Google AppEngine et même s’il y a eu de légers couacs, je ne peux absolument pas prétendre que j’aurais fait mieux, loin de là. Ca me permet de me concentrer sur ma problématique, mon boulot et ma passion. Je ne veux pas avoir à passer des heures à administrer mes machines, ça ne m’intéresse pas, je ne sais pas faire comme il faut et du coup :
– je vais faire de la merde
– je vais perdre du temps
– je vais perdre de la fiabilité
Certains le font très bien, c’est leur boulot donc je prends une solution clé en main… tout simplement
(mais à coté de ça dans la vraie vie je suis une teigne, je ne fais pas confiance à un seul garagiste malgré que ça soit leur métier…)
Le terminal a gagné en capacité… mais cela reste quand même l’idée de ne plus rien faire de manière autonome. Quand au fait que la puissance de calcul coute plus que le stockage, c’est faire fi du cout du débit à mettre en face de tout ceci. Sans même parler du pb liée aux données et à leur utilisation, fatalement non maitrisée: La rançon de la gratuité n’est en général pas belle à voir!
Bref, je fuis cela comme la peste!
Bonjour Yann,
Non ce n’est pas de l’humour, c’est un petit bricolage amusant qui coûte rien et qui permet de travailler sur certaines problématiques de signal etc…
Pour info : je ne travaille plus dans l’univers du cloud mais ta réflexion me fait bondir jusqu’au plafond : non, nos ordinateurs ne sont pas transformés en vulgaires terminaux, très loin de là.
C’est une mauvaise conclusion de dire que le navigateur web n’est qu’un terminal et que le cloud, de par sa puissance théoriquement infinie, va réduire nos ordinateurs à leur plus simple expression.
Le cloud : c’est cher et pas cher. La puissance de calcul coûte cher, le stockage ne coûte rien. Une bonne application cloud est une application avec très peu de logique, juste celle nécessaire à gérer les téras de données. Toute la logique doit être poussée au maximum vers le client pour réduire les coûts. Ce n’est pas encore le cas sur toutes les applications cloud mais à terme ça le deviendra par obligation de réduire les coûts et donc de rentabilité.
Nos navigateurs web ont été dotés de Javascript et c’est aujourd’hui le maître mot. Pourquoi Google s’est tant acharné à travailler sur les standards de Javascript et sur la vitesse d’exécution ? Parce que dans une application web c’est le seul moyen de “faire travailler” le client. Et de ce coté, les progrès sont monumentaux.
Essaie le temps d’une journée de désactiver totalement javascript, flash et java. Tu vas comprendre sûrement que le modèle actuel n’est pas un modèle serveur/terminal mais bien serveur/client.
Le minitel est un vrai terminal, sans aucune logique si ce n’est celle d’afficher les caractères envoyés par le port série.
Quant au deuxième point sur la vitesse de transmission : ce n’est pas mon pc qui est limité à 4800 bauds, il est très largement capable de sortir beaucoup plus que ça mais c’est la vitesse maximale admise par le minitel.
C’est de l’humour? Travailler dans le cloud computing, ce que je considère comme une aberration transformant nos PC dont les capacités propres n’ont cessé de se développer en 30 ans en vulgaires terminaux, pour remettre en route un minitel… héros d’une époque ou, par contrainte de cout, on devait placer toute l’intelligence et les données à distance!
Mais bon, je préfère prendre un serial-usb nativement supporté sous linux et débouchant dans un minicom quand même!
Au moins on peut lui coller les 115200 bauds qui permettent de bosser confortablement!