Fabriquer mon propre système d'exploitation pour tablette

É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.

Microsoft Surface Go : une tablette tactile ultraportable de 10 pouces (avec clavier, stylet et adaptateur USB-C vers Ethernet et USB 3.0)
Microsoft Surface Go : une tablette tactile ultraportable de 10 pouces (avec clavier, stylet et adaptateur USB-C vers Ethernet et USB 3.0)

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 !

Vérifie les mises à jour à la main avec Windows Update
Vérifie les mises à jour à la main avec Windows Update
Regarde tous ces firmwares à mettre à jour : on ne peut les installer que depuis Windows
Regarde tous ces firmwares à mettre à jour : on ne peut les installer que depuis Windows
Ça peut prendre du temps, sois patient ou prends des photos :-)
Ça peut prendre du temps, sois patient ou prends des photos :-)

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.

Debian GNU/Linux : le système d'exploitation universel
Debian GNU/Linux : le système d'exploitation universel

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.

Tu peux utiliser un autre ordinateur pour créer une clé USB bootable, j'ai pris mon ThinkPad X1
Tu peux utiliser un autre ordinateur pour créer une clé USB bootable, j'ai pris mon ThinkPad X1

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.

Branchement de la clé USB bootable à la tablette Surface avec l'adaptateur USB-C vers USB 3.0 et Ethernet
Branchement de la clé USB bootable à la tablette Surface avec l'adaptateur USB-C vers USB 3.0 et Ethernet

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.

« Options de démarrage avancées » dans les paramètres de Windows : pour démarrer depuis une clé USB
« Options de démarrage avancées » dans les paramètres de Windows : pour démarrer depuis une clé USB
Choisis « Linpus Lite » pour lancer l'installateur
Choisis « Linpus Lite » pour lancer l'installateur

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.

Menu de l'installateur Debian GNU/Linux sur la Surface Go : moi, tout content
Menu de l'installateur Debian GNU/Linux sur la Surface Go : moi, tout content

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).

Sans le firmware manquant, le matériel est inutilisable pendant l'installation
Sans le firmware manquant, le matériel est inutilisable pendant l'installation

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.

Installation en cours : remarque le câble réseau branché
Installation en cours : remarque le câble réseau branché

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 :

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 :

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
Compilation de mon noyau Linux personnalisé
Compilation de mon noyau Linux personnalisé
Compiler le noyau Linux sur une Surface Go prend quelques heures
Compiler le noyau Linux sur une Surface Go prend quelques heures
Le clavier virtuel « onboard »
Le clavier virtuel « onboard »
Le stylet fonctionne avec mon noyau Linux personnalisé et l'appli Xournal
Le stylet fonctionne avec mon noyau Linux personnalisé et l'appli Xournal
J'utilise le système personnalisé sur la tablette pour créer du contenu pour ce blog
J'utilise le système personnalisé sur la tablette pour créer du contenu pour ce blog
Lecture d'un article sur ma tablette en mode portrait
Lecture d'un article sur ma tablette en mode portrait
La Surface Go personnalisée (à droite) pour programmer, comme je le fais avec un iPad Pro (à gauche)
La Surface Go personnalisée (à droite) pour programmer, comme je le fais avec un iPad Pro (à gauche)

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 :

← Plus d'écrits