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
conçu pour durer, et permettre à son popriétaire de l’étudier, le réparer et
l’améliorer.
J’ai participé à la campagne de financement participatif 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 mainteannt devenu. Je peux mainteant vous le présenter et
vous montrer les différentes étapes de sa configuration.
Retour ves 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’un 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.
-
si on exclu les plaintes de ma femme pour le clavier mécanique un
tantinet bruillant lorsque je l’utilise lorsqu’elle lit. ↩
-
Archlinux version ARM est par exemple gérée séparément et par une
tout autre équipe. ↩
Original post of ephase.Votez pour ce billet sur Planet Libre.