Le MNT Reform est un ordinateur portable open-hardware créé par la société allemande MNT Research GmbH. Parti de l’idée que les ordinateurs personnels le sont de moins en moins, son principal créateur Lukas F. Hartmann a conçu une machine appartenant vraiment à son utilisateur. Il est fait pour durer, et permettre à son propriétaire de l’étudier, le réparer et l’améliorer.
J’ai participé à la campagne de financement dans le courant de l’été dernier sur Crowd Supply. Le but était de faire de cet ordinateur ma machine principale. Le temps d’apprivoiser la bête et de l’installer, il l’est devenu. Je peux maintenant vous le présenter et vous montrer les différentes étapes de sa configuration.
Retour vers le passé au côtés d’une machine qui s’inspire largement de l’esprit de la micro-informatique personnelle des années 1980.
L’ordinateur
Le boitier imaginé par Ana Dantas rappelle les ordinateurs portables du début des années 90 : il est imposant pour un ordinateur portable de 12 pouces mais respire la solidité. Son chassis tout en aluminium peint en noir est du plus bel effet.
Il est motorisé par un SoM ARM NXP/Freerscale i.MX8MQ comprenant un processeur ARM A53 4 cœur à 1,5Ghz, 4Go de RAM (DDR4) et un GPU Vivante GC7000Lite. Le tout branché à une carte mère concue par Lukas (ports PCIe, reseau, USB3 et gestion de la batterie). Il est aussi doté d’une trackball et d’un clavier mécanique.
Bien entendu on est très loin de la puissance disponible sur des ordinateurs à base de processeur x86 et plein de gigas de RAM. À titre de comparaison, un Rasperry pi 3 est motorisé par la même famille de processeur. Cependant il est déjà question de dévelloper des modules processeurs compatibles, notamment un basé sur l’architecture ARM A72 avec 8 voire 16 Go de RAM.
Le système d’exploitation de base
Le système livré par défaut est Debian, cependant Lukas fournit un noyau Linux avec quelques correctifs qui ne sont pas encore intégrés. Il y a aussi une version compilée de la pile graphique Mesa intégrant quelques correctifs pour le GPU.
Tous les scripts utilisés par Lukas pour la création de l’image disque de base sont disponibles sur le serveur Gitlab de MNT. Ils peuvent être lancés directement sur un Reform.
Créer mon propre système à base de Debian
Afin de comprendre les différentes étapes de la création du système pour mon ordinateur, et aussi pour coller au plus près de mes besoins, j’ai décidé de me lancer dans l’écriture de scripts pour:
- compiler Uboot, le chargeur de démarrage
- compiler le noyau Linux et les fichiers de description du matériel
- créer le système de fichiers utilisateur
- créer l’image disque
Le tout pouvant être lancé depuis des conteneurs Docker sur une machine plus puissante que le Reform.
Ces scripts sont disponibles sur mon instance Gitea.
Compiler Uboot
Uboot (pour Universal Boot) est un chargeur de démarrage open-souce dévellopé par Denx Software engineering. MNT fourni un dépôt git avec une version de UBoot adaptée au Reform.
J’ai de mon côté écrit un script et un Dockerfile pour le compiler disponible dans ce dépôt
Compiler le noyau Linux
Mon script se charge de cloner les sources du noyau le dépôt git officiel, vérifie les signatures GPG, applique les patches, intègre les définitions du matériel et compile le noyau.
Créer le système de fichiers utilisateurs
Mon script se charge de créer l’espace utilisateur à l’aide
de mmdebstrap
. La création se fait en fonction de recette,
ainsi celle par default
reprend ce qui est fait par Lukas pour l’image qu’il fournit.
Comme je n’ai besoin que des version de base fournies par Debian Unstable, je me
suis créé une recette minimal
avec le strict nécessaire.
Créer l’image disque
Mon script reprend les éléments des précédents scripts et
crée une image disque qu’il sera possible d’écrire sur une carte SD avec un
simple dd
.
Personnaliser mon système
Après avoir passé du temps à créer mon système puis l’intaller, il faut maintenant le personnaliser.
Au niveau de logiciels je garde la majeure partie de ce que j’utilisais auparavant : Sway pour le gestionnaire de fenêtres, Zathura comme lecteur de document PDF, IMV comme visionneur d’images, Ranger comme gestionnaire de fichiers et neomutt pour le courriel.
Le terminal
Élément central de mon installation, j’ai décidé de passer de kitty à foot. Ce dernier est bien plus léger, natif Wayland et se concentre sur l’essentiel. Je préfère utiliser Sway pour gérer les onglets et/ou la mozaïque de terminaux comme sur la capture d’écran ci-dessous.
Le navigateur web
Je suis un fan de Mozilla Firefox depuis longtemps, mais il faut dire qu’il ne tourne pas bien sur un matériel aussi limité que le MNT Reform. Je suis donc passé à Qutebrowser.
Pour l’utiliser sur le Reform, il faut cependant penser à rajouter comme
variable d’environnement ETNA_MESA_DEBUG=nir
et d’installer le paquet
qtwayland5
.
les mots de passes
Pour la saisie automatique des mots de passe depuis password store
il existe
un script disponible dans le dépôt git qui utilise dmenu
ou
rofi
. Comme j’utilise ni l’un ni l’autre, je me suis inspiré de
term-dmenu pour d’écrire un script remplaçant dmenu
. En effet
Term-Dmenu utilise abduco qui n’est pas disponible dans les
paquets Debian, j’ai préféré utiliser à la place de simple fichiers temporaires.
Mon script est disponible à cette adresse
En conclusion
Au quotidien, le Reform st une machine agréable à utiliser1. J’ai décidé de passer sur Debian, d’une part parce que c’est le système conseillé par MNT, mais aussi parce que la version ARM64 est intégrée au tronc commun de la distribution2.
Je prend non seulement du plaisir à l’utiliser, mais aussi à l’adapter à mes
besoins. J’ai d’ailleurs appris beaucoup : le fonctionnement de l’init,
utilisation Docker, la cross-compilation, mmdebstrap
..
Crédits
- Image de l’entête: Paul Klingberg CC-BY-SA 4.0
- Photographies du MNT Reform: MNT Research GmbH CC-BY-SA 4.0
Ces images sont dispnibles sur ke kit presse de MNT Research GmbH.