diff --git a/content/articles/2021/installation_Debian_MNT_Reform/images/capture_terminaux.png b/content/articles/2021/installation_Debian_MNT_Reform/images/capture_terminaux.png new file mode 100644 index 0000000..87fc21c Binary files /dev/null and b/content/articles/2021/installation_Debian_MNT_Reform/images/capture_terminaux.png differ diff --git a/content/articles/2021/installation_Debian_MNT_Reform/images/reform_flipped.jpg b/content/articles/2021/installation_Debian_MNT_Reform/images/reform_flipped.jpg new file mode 100644 index 0000000..dd5704d Binary files /dev/null and b/content/articles/2021/installation_Debian_MNT_Reform/images/reform_flipped.jpg differ diff --git a/content/articles/2021/installation_Debian_MNT_Reform/images/reform_trackball.jpg b/content/articles/2021/installation_Debian_MNT_Reform/images/reform_trackball.jpg new file mode 100644 index 0000000..d01558d Binary files /dev/null and b/content/articles/2021/installation_Debian_MNT_Reform/images/reform_trackball.jpg differ diff --git a/content/articles/2021/installation_Debian_MNT_Reform/index.md b/content/articles/2021/installation_Debian_MNT_Reform/index.md new file mode 100644 index 0000000..04e1f37 --- /dev/null +++ b/content/articles/2021/installation_Debian_MNT_Reform/index.md @@ -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. + +![Photographie du MNT Reform ouvert]({attach}./images/reform_trackball.jpg) + +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. + +![Vu du dessous du MNT Reform, le dos en pexiglas permet de voir les composants]({attach}./images/reform_flipped.jpg) + +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. + +![Capture d'écran montrant les fenêtres de foot organisées avec sway]({attach}./images/capture_terminaux.png) + +### 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/ diff --git a/content/assets/backgrounds/reform_exploded.jpg b/content/assets/backgrounds/reform_exploded.jpg new file mode 100644 index 0000000..7a87fdf Binary files /dev/null and b/content/assets/backgrounds/reform_exploded.jpg differ