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/
|
BIN
content/assets/backgrounds/reform_exploded.jpg
Normal file
BIN
content/assets/backgrounds/reform_exploded.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 113 KiB |
Loading…
Add table
Add a link
Reference in a new issue