Add article about MNT Reform
This commit is contained in:
parent
ae452e7600
commit
801633d2d7
5 changed files with 193 additions and 0 deletions
Binary file not shown.
After Width: | Height: | Size: 356 KiB |
Binary file not shown.
After Width: | Height: | Size: 150 KiB |
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
193
content/articles/2021/installation_Debian_MNT_Reform/index.md
Normal file
193
content/articles/2021/installation_Debian_MNT_Reform/index.md
Normal file
|
@ -0,0 +1,193 @@
|
|||
Title: MNT Reform, mon nouvel ordinateur au quotidien
|
||||
Category: linux
|
||||
Tags: open-hardware, Debian, pl-fr
|
||||
Date: 2021-08-11 23:00
|
||||
Cover: assets/backgrounds/reform_exploded.jpg
|
||||
|
||||
Le MNT Reform est un **ordinateur portable open-hardware** créé par la société
|
||||
allemande [MNT Research GmbH][l_mntmn]. 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][l_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][l_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][l_git_reform_img]. 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][l_git_perso_reform].
|
||||
|
||||
### Compiler Uboot
|
||||
|
||||
[Uboot][l_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][l_mnt_uboot]
|
||||
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][l_script_uboot]
|
||||
|
||||
### Compiler le noyau Linux
|
||||
|
||||
Mon [script][L_script_kernel] 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][l_script_userland] se charge de créer l'espace utilisateur à l'aide
|
||||
de [`mmdebstrap`][l_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][l_script_image] 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][l_zatura] comme
|
||||
lecteur de document *PDF*, [IMV][l_imv] comme visionneur d'images,
|
||||
[Ranger][l_ranger] comme gestionnaire de fichiers et [neomutt][l_neomutt] pour
|
||||
le courriel.
|
||||
|
||||
### Le terminal
|
||||
|
||||
Élément central de mon installation, j'ai décidé de passer de [kitty][l_kitty] à
|
||||
[foot][l_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][l_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][l_qute_pass] qui utilise `dmenu` ou
|
||||
`rofi`. Comme j'utilise ni l'un ni l'autre, je me suis inspiré de
|
||||
[term-dmenu][l_term-dmenu] pour d'écrire un script remplaçant `dmenu`. En effet
|
||||
*Term-Dmenu* utilise [abduco][l_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][l_script_dmenu]
|
||||
|
||||
## En conclusion
|
||||
|
||||
Au quotidien, le Reform st une machine agréable à utiliser[^n_clavier]. 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
|
||||
distribution[^n_arch_arm].
|
||||
|
||||
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`..
|
||||
|
||||
[^n_clavier]:si on exclu les plaintes de ma femme pour le clavier mécanique un
|
||||
tantinet bruillant lorsque je l'utilise lorsqu'elle lit.
|
||||
|
||||
[^n_arch_arm]:Archlinux version ARM est par exemple gérée séparément et par une
|
||||
tout autre équipe.
|
||||
|
||||
## 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][l_presskit] de MNT Research GmbH.
|
||||
|
||||
[l_mntmn]:https://www.mntmn.com/
|
||||
[l_ana_dantas]:https://www.ana-dantas.com/
|
||||
[l_crowd_supply]:https://www.crowdsupply.com/mnt/reform
|
||||
[l_git_reform_img]:https://source.mnt.re/reform/reform-system-image/
|
||||
[l_git_perso_reform]:https://git.epha.se/ephase?tab=&sort=recentupdate&q=Reform2
|
||||
[l_mnt_uboot]:https://source.mnt.re/reform/reform-boundary-uboot
|
||||
[l_script_uboot]:https://git.epha.se/ephase/reform2-mkuboot
|
||||
[l_script_kernel]:https://git.epha.se/ephase/reform2-mkkernel
|
||||
[l_script_userland]:https://git.epha.se/ephase/reform-mkuserland
|
||||
[l_mmdebstrap]:https://gitlab.mister-muffin.de/josch/mmdebstrap/
|
||||
[l_script_image]:https://git.epha.se/ephase/reform_mkimage
|
||||
[l_uboot]:https://source.denx.de/u-boot/u-boot
|
||||
[l_zatura]:https://pwmt.org/projects/zathura/
|
||||
[l_imv]:https://github.com/eXeC64/imv
|
||||
[l_ranger]:https://ranger.github.io/
|
||||
[l_neomutt]:https://neomutt.org/
|
||||
[l_kitty]:https://sw.kovidgoyal.net/kitty/
|
||||
[l_foot]:https://codeberg.org/dnkl/foot
|
||||
[l_qutebrowser]:https://www.qutebrowser.org/
|
||||
[l_qute_pass]:https://github.com/qutebrowser/qutebrowser/blob/master/misc/userscripts/qute-pass
|
||||
[l_term-dmenu]:https://git.sr.ht/~seirdy/term-dmenu
|
||||
[l_abduco]:https://github.com/martanne/abduco
|
||||
[l_term-dmenu]:https://git.sr.ht/~seirdy/term-dmenu
|
||||
[l_script_dmenu]:https://git.epha.se/ephase/sway_config/src/branch/master/bin/dmenu
|
||||
[l_presskit]:https://source.mnt.re/reform/mnt-reform-press-materials/
|
Loading…
Add table
Add a link
Reference in a new issue