Une fois carte flashé Images installation carte SD + configurations https://theinternetofdeadthings.com/MinitelSe/install_doc/ mettre de raspberry connecter sur meme réseau wifi et chercher le raspberry Pi si besoin de changer fichier config wifi installer Vim MinitelSE MinitelSe 1.0 -- Matériel : - Raspberry Pi 3B+ ou supérieur - Carte microSD (classe 10 minimum) - Câble de connection Minitel - Raspberry (cf: doc et fichiers Gerber) -- Pré-installation Télécharger la dernière version de Raspberry Pi OS Lite (64 bits) https://www.raspberrypi.com/software/operating-systems/ Installer l'OS via Raspberry Pi Imager https://www.raspberrypi.org/documentation/installation/installing-images/README.md Choisir le modèle de Raspberry Pi Choisir Operating System > Raspberry Pi OS (other) > Raspberry Pi OS Lite (64 bits) Editer les options d'installation (personnalisation de l'IOS) - Définir un nom d'utilisateur (iodt) et un mode de passe - Activer SSH - Configurer le réseau WIFI si besoin (sinon utilisation en Ethernet) Attendre la fin de l'installation. Éjecter la carte microSD L'insérer dans le Raspberry Pi et le démarrer -- Connexion au Raspberry Pi Trouver l'adresse IP du Raspberry Pi sur le réseau ( https://raspberry-pi.fr/trouver-adresse-ip-raspberry-pi/ ) et s'y connecter en SSH. ssh {user}@{adresse-ip} iodt / MinitelSE -- Depuis le terminal du Raspberry Pi après s'y être connecté (via Terminal de son ordi perso) les 2 ordinateurs doivent etre sur le meme réseau. -- 1. Configuration du clavier Minitel Crédit Alexandre Montaron Xavier Lavayssière https://hackmd.io/@lesbricodeurs/SJVGZWCaD wget http://canal.chez.com/mntl.ti tic mntl.ti && rm -f mntl.ti -- 2. Créer un fichier .inputrc à la racine utilisteur (~/) sudo nano ~/.inputrc avec le contenu suivant : $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 $if term=minitel1 $include .inputrc_minitel1 $endif $if term=minitel1-nb $include .inputrc_minitel1 $endif $if term=m1 $include .inputrc_minitel1 $endif $if term=m1-nb $include .inputrc_minitel1 $endif $if term=screen.minitel1 $include .inputrc_minitel1 $endif $if term=screen.minitel1-nb $include .inputrc_minitel1 $endif $if term=screen.m1 $include .inputrc_minitel1 $endif $if term=screen.m1-nb $include .inputrc_minitel1 $endif -- 3. Configuration de la prise Minitel <-> Raspberry Pi Créer un fichier start_console dans le répertoire /usr/bin sudo nano /usr/bin/start_console avec le contenu suivant : #!/usr/bin/env bash 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 sudo agetty -c -L -i -I "\033\143" $TTY $BPS m1b-x80 sleep 1 done Ajouter les droits en execution à ce fichier sudo chmod +x /usr/bin/start_console -- 4. Créer un service pour démarrer automatiquement la console sur la Pi Créer le fichier minitel.service dans /etc/systemd/system sudo nano /etc/systemd/system/minitel.service avec le contenu suivant : [Unit] Description=MinitelSE After=network-online.target [Service] ExecStart=/usr/bin/start_console WorkingDirectory=/home/iodt StandardOutput=inherit StandardError=inherit Restart=always User=iodt [Install] WantedBy=multi-user.target Activer le service sudo systemctl enable minitel.service sudo systemctl daemon-reload si besoin redémarrer le service sudo systemctl start minitel.service -- 5. Redémarrer le Pi pour vérifier que le service se lance bien au démarrage (login) -- 6. Reconfigurer les locales # Reconfigure TZ sudo dpkg-reconfigure tzdata # Reconfigure locale export LC_ALL=en_GB.UTF-8 sudo locale-gen en_GB.UTF-8 sudo dpkg-reconfigure locales en_GB.UTF-8... done fr_FR.UTF-8... done il ouvre un menu: ┌────────────────────────────────┤ Configuring locales ├─────────────────────────────────┐ │ Locales are a framework to switch between multiple languages and allow users to use │ │ their language, country, characters, collation order, etc. │ │ │ │ Please choose which locales to generate. UTF-8 locales should be chosen by default, │ │ particularly for new installations. Other character sets may be useful for backwards │ │ compatibility with older systems and software. │ │ │ │ Locales to be generated: choisir: en_GB.UTF-8 fr_FR.UTF-8 -- 7. Ajouter les lignes suivantes à la fin du fichier ~/.bashrc *case "$TERM" in *m1*|m2*) * alias kiosk="~/kiosque.sh"; * clear * sudo echo -e "\n Bienvenue sur\n\n\n" && figlet -c " MinitelSE" * export LC_ALL=C * echo -e "\n\n\n\n\n\n\n\n\n\n\n" * read -p " Appuyer sur une touche pour demarrer" * ~/kiosque.sh * ;; *esac -- 8. Newsboat : Créer un fichier texte .newsboat/urls avec des URLs de fils RSS Se logger avec les crédentials définis au moment du flash de la carte microSD -- 9. Configuration du MinitelSE Installer les packages suivants sudo apt install -y figlet sudo apt install -y bc sudo apt install -y caca-utils sudo apt install -y lynx sudo apt install -y moc sudo apt install -y newsboat sudo apt install -y bsdgames sudo apt install -y ncal sudo apt install -y irssi -- 10. Télécharger et dezipper le dossier MinitelSE url : https://theinternetofdeadthings.com/MinitelSe/ Nom du fichier: MinitelSE.zip wget https://theinternetofdeadthings.com/MinitelSe/MinitelSE.zip dézipper le fichier MinitelSE.tar à la racine de l'utilisateur ~/ tar -xvf MinitelSE.tar -- 11. Effectuer les branchements Démarrer le Minitel Effectuer la combinaison de touches suivante sur le Minitel : Fnct + T et ensuite A Fnct + T et ensuite E Fnct + P et ensuite 4 -- 12. Redémarrer le Raspberry sudo reboot now -- ----------- MinitelSE menus et applications Arborescence /home/{user} ├── apps ├── kiosque.sh ├── mntl.ti ├── music ├── resources └── utils --------- Configuration du système (locale pour les menus) Dans ./resources/system/sysinfo.conf MINITELSE_LANG=en MINITELSE_VERSION=1.1 Modifier la langue Actuellement fr ou en ---------- Structure des menus Dans /resources/repository/repository.txt ### Variables # Every variable shall have a translation, at least in FR ### Structure # Apps or commands are grouped by menu # The # character acts as a separator ### Menu titles # ~000#variable ### Menu items (opening submenus) # Structure: 001#002#variable# # 001 => Menu grouping id # 002 => Submenu id (3 digits only) # variable => used for translation ### Menu items (apps or commands) # Structure: 001#00001#variable#command # 001 => Menu grouping id # 00001 => Menu item id (4 or more digits) # variable => used for translation # command => app or command to execute Exemple de menu *~000#$m_kiosque_minitel_se *#================================ * *000#00001#$c_teletelnav#lynx https://duckduckgo.com *000#002#$m_infos# *000#003#$m_audio# *000#004#$m_jeux# *000#005#$m_utilitaires# *#000#006#$m_systeme# *000#006#$m_a_propos => Nommage de menu *~000#$m_kiosque_minitel_se *~000 menu 000 *$m_kiosque_minitel_se traduction => Commande d'ouverture d'application directement depuis un menu 000#00001#$c_teletelnav#lynx https://duckduckgo.com 000 menu de rattachement 00001 commande $c_teletelnav traduction lynx https://duckduckgo.com commande à exécuter => Navigation vers un sous-menu 000#002#$m_infos# 000 => Menu de rattachement 002 => Ouverture du sous-menu 002 $m_info => Nom du sous-menu ------------- Traductions : Dans resources/translation Fichiers : en.txt fr.txt Combinaisons de variables / valeurs Préfixes : g_ variables globales (navigation dans les menus et caractères de confirmation) m_ menus et sous-menus c_ commandes / applications ---------- Logique d'affichage de menus Fichier kiosque.sh à la racine - AUTRE Manipulation clavier : effacer l'écran ctrl Bs BUGS Eteindre radio : should be: mocp -s https://theinternetofdeadthings.com/MinitelSe/MinitelSE.zip