
Écrits · 9 mars 2020
Fabriquer mon propre système d'exploitation pour tablette
Installer et personnaliser Debian GNU/Linux sur la Surface Go
Depuis quelques années, j'utilise une tablette comme ordinateur principal : j'aime sa polyvalence. Mais la plupart des tablettes sont livrées avec un système d'exploitation verrouillé, comme iPadOS, Windows 10S ou Android. Comme j'aime faire les choses à ma façon (un peu bizarre), je me suis demandé si je pouvais échapper à ces « prisons logicielles » en installant un système d'exploitation libre sur une tablette. C'est possible, lis la suite pour savoir comment je me suis évadé !
Le matériel : Surface Go
Si tu envisages d'installer un autre système d'exploitation sur une tablette, tu dois absolument te renseigner sur le matériel. Toutes les tablettes ne se laissent pas réinstaller avec un système personnalisé : certaines ont un bootloader verrouillé, des puces propriétaires ou d'autres obstacles.

Voici la Surface Go, une tablette relativement petite (écran de 10 pouces). Elle a un processeur Intel 64 bits « normal », un bootloader qu'on peut déverrouiller, et son matériel est bien connu, car il ressemble à celui de la « Surface Pro 6 », plus ancienne. Un matériel ancien, c'est une bonne chose si tu penses aux systèmes d'exploitation libres. Plus le matériel vieillit, plus il y a de chances que des gens aient trouvé comment le faire fonctionner avec des logiciels libres, comme Debian GNU/Linux.
D'abord, la mise à jour !
Avant d'effacer le système propriétaire de la tablette, utilise-le pour mettre à jour le firmware. Mettre à jour le firmware depuis autre chose que Windows est pratiquement impossible. Le nouveau firmware de la Surface a corrigé beaucoup de bugs et amélioré les performances de la tablette : tu ne veux pas rater ça !



Choisir un système d'exploitation
Une fois le matériel choisi, il faut choisir un système d'exploitation. Pour plusieurs raisons, je te recommande de réfléchir à choisir un système d'exploitation libre. Avec un logiciel libre, tu es, au sens propre, libre de le faire marcher comme tu veux. Moi, j'aime Debian, une distribution GNU/Linux.

La distribution Debian GNU/Linux compte parmi les plus anciennes. Elle est spéciale, car ses mainteneurs ont ratifié un contrat social, un document qui garantit que Debian est ouverte et libre. On peut l'installer sur presque n'importe quel matériel, d'où leur slogan « le système d'exploitation universel ».
Créer une clé USB bootable
Debian s'installe à partir d'une clé USB bootable. J'ai utilisé un autre ordinateur pour télécharger les fichiers d'installation depuis https://debian.org. Il faut créer un support d'installation pour amener ces fichiers jusqu'à la tablette.

Sur un autre ordinateur portable, j'ai créé la clé USB bootable avec quelques commandes dans le terminal. Si tu es sous Windows ou Mac, tu peux utiliser d'autres outils, comme Utilitaire de disque, Rufus ou unetbootin.
Lancer l'installateur
Branche la clé USB bootable à la tablette Surface. J'ai utilisé un adaptateur USB-C vers Ethernet et USB 3.0. La connexion réseau filaire est bien pratique pendant l'installation, car Debian ne peut souvent pas charger le firmware ou les pilotes des puces WiFi propriétaires.

Le plus simple pour démarrer la tablette Surface depuis la clé USB, c'est de passer par « Options de démarrage avancées » dans les paramètres de Windows : l'ordinateur redémarre et te propose différentes options de démarrage et de récupération.


Choisis « Utiliser un appareil », puis sélectionne « Linpus lite ». Avec un peu de chance, tu verras apparaître le menu de l'installateur Debian GNU/Linux.

Poursuis l'installation en répondant aux questions : quelle langue tu veux utiliser, quelle disposition de clavier tu as. L'installateur essaie de reconnaître ton matériel réseau. Malheureusement, beaucoup de fabricants gardent leurs pilotes (firmware) fermés, ce qui empêche Debian de les inclure dans sa collection standard de logiciels (qui doivent tous être libres).

On peut charger ces pilotes non libres depuis une (autre) clé USB, mais d'après mon expérience, il est difficile de précharger exactement ceux dont tu auras besoin. Ma stratégie : brancher l'ordinateur à un réseau filaire pendant l'installation et m'occuper des pilotes manquants après. C'est plus facile de les ajouter plus tard si le système est en ligne.

Interface graphique
Beaucoup d'applis (navigation web, retouche photo, dessin) ne fonctionnent bien qu'avec une interface graphique. Avec les logiciels libres, tu as beaucoup d'options. Le premier choix à faire : un « environnement de bureau » complet ou juste un « gestionnaire de fenêtres ».
Environnement de bureau
Un environnement de bureau t'offre une expérience globale : des panneaux, des menus système et des applets d'état. Il vient avec ses propres applications (système) et son propre style visuel et ses propres habitudes d'usage. La plupart des environnements de bureau proposent une configuration standard complète, et beaucoup offrent des options avancées de personnalisation. Va voir leurs sites, lis leurs principes de conception, et choisis ce qui te plaît. Les environnements de bureau courants pour Debian sont :
- GNOME : https://www.gnome.org et https://wiki.debian.org/Gnome
- Plasma de KDE : https://kde.org/plasma-desktop et https://wiki.debian.org/KDE
- XFCE : https://xfce.org et https://wiki.debian.org/Xfce
- LXDE : https://lxde.org et https://wiki.debian.org/LXDE
- MATE : https://mate-desktop.org et https://wiki.debian.org/MATE
Gestionnaire de fenêtres
Contrairement à un environnement de bureau complet, un gestionnaire de fenêtres sert uniquement à gérer les fenêtres des applications. On le choisit parce qu'il est extrêmement minimal : tout le reste, c'est à l'utilisateur de l'ajouter à la main. Si tu aimes prendre tes propres décisions, un gestionnaire de fenêtres est peut-être un bon point de départ pour ton interface graphique. Les plus courants :
- awesome : https://awesomewm.org
- Openbox : http://openbox.org/
- i3wm : https://i3wm.org
- dwm : https://dwm.suckless.org
- xmonad : https://xmonad.org
Prends vraiment ton temps pour décider : la base de l'interface graphique pèse énormément sur toute l'expérience. C'est un choix personnel, guidé par tes préférences et par ta volonté de tout régler à la main. Mon choix, parce que je le pratique depuis des années, c'est le gestionnaire de fenêtres Openbox, avec quelques outils en plus qui optimisent mon expérience.
Optimiser l'expérience
C'est une étape essentielle quand tu installes un système d'exploitation libre sur un ordinateur. Après l'installation, les réglages par défaut ne sont souvent pas adaptés à ton matériel, à tes préférences et à tes usages.
Voici certaines des choses que j'ai faites par-dessus le gestionnaire de fenêtres Openbox :
- Passer de la version « stable » standard de Debian à sa branche « unstable », plus à la pointe. Ça veut dire que tu reçois les nouvelles versions des logiciels plus vite, mais que des choses peuvent parfois casser. J'aime les logiciels récents (je suis développeur), à toi de voir si tu veux faire pareil.
- Installer divers pilotes non libres (firmware) pour que tous les composants matériels fonctionnent. Debian a une page détaillée à ce sujet : https://wiki.debian.org/Firmware. Il faut parfois un peu de recherche et d'analyse de fichiers de log pour trouver quel firmware ton ordinateur demande.
- Utiliser gnome-network-manager et son applet pour voir l'état du WiFi et me connecter rapidement à différents réseaux sans fil
- Installer Sound on Debian pour faire marcher le haut-parleur de la tablette. Vérifie bien les options de volume et de sourdine avant de croire que ton système audio est cassé (par défaut, il est muet !)
- Installer Blueman pour pouvoir me connecter à différents appareils Bluetooth
- Utiliser tint2 comme barre d'état, barre des tâches et barre de lancement rapide (avec des raccourcis vers les applis les plus utilisées)
- Créer un script qui fait pivoter automatiquement l'écran quand je tourne la tablette
- Installer tlp pour améliorer radicalement l'autonomie de la batterie
- Installer Compton pour réduire fortement les saccades (et gagner en fluidité) quand je fais défiler en mode portrait
- Installer mes applis préférées sur Debian GNU/Linux : les navigateurs web Firefox et Chromium, l'appli de courrier, calendrier et contacts Evolution, le gestionnaire de fichiers Thunar, l'émulateur de terminal XFCE-terminal, GIMP pour la retouche d'images, Inkscape pour les graphiques vectoriels, le client SFTP FileZilla, Libre Office, et Xournal pour écrire au stylet et prendre des notes
- Installer onboard, un clavier virtuel qui permet de saisir du texte quand le clavier physique est débranché.
- Appliquer à la main un correctif du noyau Linux pour que le stylet de la Surface fonctionne avec le noyau Linux le plus récent, ce qui m'a obligé à compiler mon propre noyau patché.
- Désactiver Secure Boot pour que mon noyau Linux personnalisé puisse démarrer







Conclusion
Après de longues heures d'expérimentations et de réglages, j'ai créé une expérience de système d'exploitation pour tablette qui fonctionne. Je peux m'en servir pour lire, dessiner, programmer et concevoir.
Le sentiment de comprendre ce qui se passe, tout au long de ce « fabrique ton propre OS », est incroyable, aussi bien sur le plan technique que sur celui de l'interaction avec l'utilisateur. C'est une belle occasion d'apprendre et d'affûter tes compétences !
Mise à jour :
Lis mes articles suivants sur :
- Comment migrer et gérer ta photothèque avec des logiciels libres : j'utilise maintenant ma tablette « WillemOS » pour ça !
- Mettre en place une synchronisation de fichiers transparente entre ta tablette et ton smartphone avec des protocoles ouverts et des logiciels libres.
- Affiner mon système pour tablette avec Surface Go 2, i3wm et 4G/LTE