« Cool-Retro-Terminal » est un terminal qui permet de simuler les vieux terminaux à tube cathodique. Ces appareils qui se connectaient sur des « mini-ordinateurs » ou des mainframes, ont fait la fortune de leurs fabricants du milieu des années 70 jusqu’au début des années 90.
Les nombreuses options permettent, entre autres, de dé-régler la stabilité horizontale ou verticale, la géométrie ou encore la netteté (focus) de l’image. Idéal pour s’abimer la vue à peu de frais. C’est disponible pour Unix/Linux et macOS.
Un soft bien sympathique qui vous permettra de ré-utiliser le filtre anti-reflet que vous n’avez jamais voulu jeter recycler sous prétexte que ça peut toujours servir.
NanoBSD est un outil inclus dans les sources de FreeBSD qui permet de créer des images systèmes réduites 1 pour des applications embarquées. Il survit aux défunts picobsd (supprimé en 2019) et tinybsd (supprimé en 2021). Même si le système est « réduit », c’est un vrai FreeBSD: on peut donc y installer n’importe quel logiciel issu des ports. Pour simplifier, c’est l’équivalent de buildroot ou de Yocto pour Linux. Continue reading →
Depuis la version 9, les distributions de type RedHat (RHEL, Rocky Linux, Alma Linux) ont fait évoluer leur plateforme matérielle : le processeur doit supporter le jeu d’instructions x86-64-v2 ou supérieur. Ce n’est pas vraiment un problème car cette micro-architecture est disponible sur tous les serveurs depuis 2009.
Cependant, sous Proxmox (v7.4 à ce jour), par défaut, les machines virtuelles sont créées avec un processeur virtuel nommé kvm64 qui ne supporte pas cette version : ça se traduit par un kernel panic au démarrage de la VM.
DiscoBSD est un portage de 2.11BSD 1 vers des microcontrôleurs 32 bits modernes. Il s’agit en fait d’un fork de RetroBSD qui avait déjà porté 2.11BSD vers PIC32 (MIPS).
Cette distribution apporte le support de ARM Cortex M4, principalement pour les cartes Disco(very) et Nucleo de chez ST. Les modèles supportés sont:
Leur intérêt vient de leur prix nettement plus abordable que leurs équivalents MIPS. Elles intègrent, en plus, leur programmeur ST-Link: il suffit d’un câble USB pour les flasher. Comme j’ai déjà une STM32F4-discovery, c’était trop tentant d’essayer le dernier représentant de la branche 2 de BSD Unix. Pour info, la STM32F4-discovery est équipée de :
Coté matos, à part un adaptateur UART vers usb pour accéder à la console série, vous aurez besoin d’un lecteur de carte SD compatible Arduino. La connexion du lecteur est décrite plus bas.
Bien sûr, on ne met pas un système d’exploitation complet de type UNIX dans les 1024ko de la mémoire d’un micro-contrôleur: seul, le noyau est « flashé » sur la carte.
Ici pas de bootloader, on exécute directement le noyau au démarrage. Notez que la taille du noyau fait moins de 100ko: avec 1Mo de flash, on a de la marge.
Toute la partie « userland » est contenue sur une carte mémoire au format UFS (L’image fait environ 200 Mo et inclus /, /home et la swap de 2Mo). Avec si peu de RAM (192 ko), l’OS utilise la swap pour tous les processus. Faudra pas s’attendre a des perfs de dingue. Mais avec seulement 100Mo d’espace disque, l’OS est livré complet avec le man, les jeux, et le compilateur C.
Construction depuis FreeBSD
Le projet ne prend en compte, pour la construction, que Linux ou OpenBSD (Pas sûr que ça compile « out of the box »). Pour le compiler sous FreeBSD, vous devrez installer les paquets suivants:
La console série est associée à l’UART2 (broches PA2 et PA3, respectivement TX et RX). Avec l’adaptateur USB/UART, connectez vous sur la console:
cu -l /dev/cuaU0 -s 115200
Et voilà un démarrage qui échoue lamentablement en panic (le lecteur de carte mémoire n’est pas connecté):
Pas de u-boot ou autre GRUB, pour nous aider. Le ‘disque dur’ doit être accessible.
Connexion du « stockage »
Le lecteur de carte SD est connecté au port SPI2 de la carte. Le protocole SPI utilise 3 signaux (MISO, MOSI et SCK). Connectez comme suit (voir sys/stm32/stm32f4xx_nucleo_sd.h):
Attention à la tension d'alimentation, elle doit correspondre a votre module: s'il possède un régulateur 3.3V (Type AMS1117), connectez le au 5V sinon au 3V de la carte. Au besoin, vérifiez la tension d'alimentation en entrée de l'adaptateur (ou en sortie du régulateur si présent).
Après connexion du lecteur, ça donne ça:
Prenez soin d'effectuer un shutdown pour arrêter l'OS sous peine de devoir exécuter à nouveau fsck au boot suivant.
1 : 2.11BSD, dont les derniers patchs datent de 1991, est la dernière version d'UNIX BSD disponible pour PDP11. ↑ 2 : Bill avait raison: 640 ko, ça devrait être suffisant pour n'importe qui. ↑