C'est une année impaire, il y a donc une nouvelle version majeure de Debian, et nous publions maintenant la version correspondante du système d'exploitation Raspberry Pi.


La version Debian de cette année s’appelle Bookworm. (Comme vous le savez probablement, les versions Debian portent le nom de personnages de la franchise Toy Story de Disney/Pixar, mais il y a eu tellement de versions que tous les personnages dont vous avez peut-être entendu parler ont déjà été utilisés. Bookworm était un personnage mineur dans Toy Story. 3 — et non, je ne me souvenais pas de lui non plus…)


Alors, quoi de neuf dans Bookworm ? Enfin, pas grand-chose… et pourtant à peu près tout. Permettez-moi de vous expliquer.


Debian Bookworm lui-même est principalement constitué de mises à jour incrémentielles du logiciel présent dans la version précédente de Debian Bullseye. Il y a quelques petits changements – jetez un œil ici pour la liste – mais ils n’affecteront pour la plupart pas les utilisateurs de Raspberry Pi. Donc Bookworm lui-même n’a pas vraiment entraîné beaucoup de changements.


Cependant, depuis environ un an, nous travaillons sur des changements architecturaux majeurs du Raspberry Pi Desktop, et ceux-ci sont lancés pour la première fois dans la version Bookworm. Et c’est là que vous remarquerez peut-être certaines différences.


Wayland

Le plus important d’entre eux est le passage à l’utilisation de Wayland plutôt que de X11 comme système d’affichage.


Depuis environ 35 ans, la plupart des environnements de bureau Unix, y compris Raspberry Pi Desktop, sont basés sur le système de fenêtres X11. Mais, comme cela n’est guère surprenant pour un logiciel vieux de plusieurs décennies, X11 présente diverses limitations lorsqu’il est utilisé sur des ordinateurs modernes. Pour résoudre ces problèmes, la plupart des distributions Linux utilisent Wayland ; ceux qui ne l’ont pas encore fait envisagent de le faire à l’avenir.


Le principal avantage de Wayland est la performance. Sous X11, il existe deux applications distinctes impliquées dans le dessin d'une fenêtre. Le serveur d'affichage permet de créer des fenêtres sur l'écran et de donner aux applications un endroit pour dessiner leur contenu ; le gestionnaire de fenêtres permet de positionner les fenêtres les unes par rapport aux autres et de décorer les fenêtres avec des barres de titre et des cadres. Dans un système Wayland, ces deux fonctions sont combinées dans une seule application, appelée le compositeur, de sorte qu'une application n'a besoin de parler qu'à une chose plutôt qu'à deux pour que ses fenêtres soient dessinées.


Cela donne également un avantage en matière de sécurité. Étant donné que sous X11, toutes les applications communiquaient avec le serveur d'affichage et que cette communication était bidirectionnelle, toutes les applications pouvaient échanger des informations entre elles. Sous Wayland, les applications sont toutes isolées les unes des autres au niveau du compositeur, donc aucune application ne peut voir ce que fait une autre application.


Wayland lui-même n'est qu'un protocole. Pour l'utiliser, vous avez besoin d'un compositeur prenant en charge Wayland. Dans la version précédente de Raspberry Pi OS, nous utilisions le gestionnaire de fenêtres Mutter, qui pouvait fonctionner comme un compositeur Wayland. Mais cela s’est avéré être un mauvais choix ; c'était relativement lent et fastidieux, et un peu dépassé, c'est pourquoi nous n'avons proposé le support de Wayland qu'à titre expérimental sous Bullseye.


Pour Bookworm, nous utilisons un compositeur appelé Wayfire. Cela utilise une bibliothèque Wayland standard appelée wlroots, qui est utilisée par plusieurs compositeurs Wayland modernes. Et comme Wayfire fonctionne bien mieux que Mutter en tant que compositeur Wayland sur Raspberry Pi, Wayland est désormais le mode de fonctionnement par défaut pour le bureau. (Avec une mise en garde : pour l'instant, Wayland n'est que la valeur par défaut sur Raspberry Pi 4 et 5. Les performances de Wayfire sur les plates-formes antérieures sont toujours en cours d'optimisation, donc pour l'instant, ils continueront à exécuter l'ancien serveur d'affichage X11 et le gestionnaire de fenêtres Openbox. , mais à un moment donné, ces plates-formes seront également basculées vers Wayfire.)


Si vous démarrez Raspberry Pi OS sur un Pi 4 ou 5, vous obtiendrez désormais un bureau Wayfire. Il devrait être à peu près identique au bureau auquel vous êtes habitué de Bullseye, mais les apparences sont trompeuses : il a fallu beaucoup de travail pour arriver au point où les deux environnements de bureau se ressemblent !


Il y a toujours une barre des tâches en haut de l'écran qui permet de lancer des applications et de voir l'état des différents systèmes, mais il s'agit d'une application totalement nouvelle. Sous Bullseye, il s'agissait d'une application appelée lxpanel, mais elle a maintenant été remplacée par wf-panel-pi (abréviation de « wayfire panel for Raspberry Pi »).


Ceci était basé sur wf-shell, l'exemple d'application de panneau des auteurs de Wayfire, mais nous l'avons considérablement modifié pour ressembler et fonctionner comme lxpanel. La plus grande partie de ce travail a consisté à porter tous les plugins lxpanel existants — les icônes qui contrôlent le volume, le réseau, le Bluetooth, etc. — afin qu'ils fonctionnent désormais tous avec wf-panel-pi.


L'arrière-plan du bureau lui-même est toujours dessiné par l'ancien gestionnaire de fichiers pcmanfm qui était utilisé sous Bullseye, mais celui-ci a été modifié pour qu'il utilise Wayland comme protocole d'affichage plutôt que X11, c'est donc maintenant une application Wayland native.


Le fonctionnement des applications individuelles dans un environnement Wayland dépend de la manière dont elles sont écrites. Les boîtes à outils graphiques standard, comme GTK et Qt, sont désormais compatibles avec Wayland : elles peuvent détecter lorsqu'une application qui les utilise s'exécute dans un environnement Wayland, puis acheminer tous les appels graphiques via le protocole Wayland, s'exécutant en tant qu'applications Wayland natives. La plupart des applications préinstallées dans le cadre de Raspberry Pi Desktop utilisent l'une de ces boîtes à outils et s'exécutent donc désormais en tant qu'applications Wayland.


Quelques applications utilisent une boîte à outils qui n'est pas compatible avec Wayland, ou contournent complètement une boîte à outils en effectuant des appels directs vers X11. Bien qu’il semble que ces applications ne fonctionneraient pas sur Wayland, il existe un correctif pour cela. Notre implémentation Wayland comprend un logiciel appelé XWayland — il s'agit d'un serveur d'affichage X11 situé au-dessus de Wayland. Il gère toutes les parties non graphiques de X lui-même et transmet toutes les parties graphiques à l'implémentation Wayland sous-jacente. XWayland est conçu pour se lancer automatiquement dès qu'une application demande quelque chose à X, donc tout devrait fonctionner de manière transparente.


Voilà donc Wayland. Fondamentalement, tout ce que vous voyez sur le bureau est maintenant dessiné complètement différemment de la façon dont il était dessiné sous Bullseye — mais si j'ai bien fait mon travail, vous ne devriez pas remarquer de différences significatives ! Une chose que vous remarquerez peut-être est que Wayland nous permet d'ajouter de jolis bonbons pour les yeux ; les fenêtres ont désormais des ombres subtiles et s'ouvrent et se ferment avec des animations plutôt que de simplement apparaître et disparaître.


Nous avons également ajouté quelques nouveaux plugins. Le plugin « Power » est activé par défaut et surveille les problèmes d'alimentation tels qu'une faible tension d'alimentation ou un courant USB excessif. Si l'un ou l'autre se produit, une notification s'affichera pour vous informer de ce qui s'est passé, et une icône s'affichera ensuite sur la barre des tâches. En cliquant dessus, vous accéderez à une page Web contenant plus d'informations sur le problème et les correctifs possibles.


L'autre nouveau plugin est "GPU", qui affiche un graphique de la charge sur le GPU du Raspberry Pi, similaire à celui que le plugin CPU existant montrait pour le CPU. Ceci n'est pas activé par défaut, mais peut être ajouté en cliquant avec le bouton droit sur la barre des tâches et en choisissant « Ajouter/Supprimer des plugins ».


Comme mentionné ci-dessus, les travaux sur Wayland/Wayfire sont en cours : nous sommes toujours en train d'optimiser le matériel des modèles précédents de Raspberry Pi et espérons pouvoir déployer l'expérience de bureau Wayland pour tous les modèles de Raspberry Pi en temps voulu.

PipeWire

Nous avons donc modifié ce qui est utilisé pour dessiner tous les graphiques. Pour accompagner cela, nous avons également modifié ce qui est utilisé pour contrôler le son.


À l'origine, le bureau utilisait l'interface audio Linux ALSA pour communiquer avec le matériel audio. Cela fonctionnait, mais était assez primitif et présentait de nombreuses limitations. Il y a quelques années, nous avons opté pour l'interface PulseAudio, qui se trouve au-dessus de la couche ALSA de bas niveau. Cela a ajouté beaucoup plus de flexibilité : cela a facilité la gestion d'éléments tels que les appareils audio Bluetooth, a permis de mélanger l'audio de plusieurs applications et a permis de basculer facilement l'audio entre les sorties pendant la lecture.


Pour cette version, PulseAudio a été remplacé par le nouveau système audio PipeWire. Cela s'appuie sur les fonctionnalités offertes par PulseAudio, notamment en fournissant une meilleure prise en charge de l'audio accompagnant la vidéo. Cela réduit la latence, ce qui est important dans de nombreuses applications. Il gère mieux les appareils audio Bluetooth, en mémorisant ceux qui étaient utilisés à la mise hors tension et en les reconnectant automatiquement au démarrage. Enfin, il est conçu pour mieux fonctionner dans l’environnement Wayland plus sécurisé, où les applications sont isolées les unes des autres.


Du point de vue de l'utilisateur, PipeWire peut être contrôlé avec n'importe quelle application qui contrôle PulseAudio, de sorte que les commandes de volume et de microphone sur la barre des tâches fonctionnent exactement comme sous PulseAudio, mais sous Bookworm, ils parlent à PipeWire plutôt qu'à PulseAudio.


Networking

Les graphismes et le son sont alors tous deux nouveaux – quoi d’autre ?

Pendant Bullseye, nous avons déployé l'utilisation du contrôleur réseau NetworkManager comme option pouvant être sélectionnée dans raspi-config. Il s'agit désormais du mécanisme de contrôle standard pour la mise en réseau dans la plupart des distributions Linux, et constitue désormais le contrôleur réseau par défaut pour Bookworm, remplaçant le système précédent, dhcpcd. NetworkManager fait tout ce que dhcpcd a fait, mais ajoute de nombreuses fonctionnalités supplémentaires, notamment la possibilité de se connecter à des réseaux sans fil cachés, de se connecter à des réseaux privés virtuels (VPN) et d'utiliser un Raspberry Pi comme point d'accès sans fil. Il comprend également beaucoup plus d'options de personnalisation pour ceux qui souhaitent jouer avec les détails de leur connexion réseau.

Le plugin réseau sur la barre des tâches semble presque identique à celui qui contrôlait dhcpcd dans Bullseye, mais comporte désormais un élément « Options avancées » en bas – cela vous permet d'accéder à la nouvelle fonctionnalité offerte par NetworkManager.

Firefox

Un autre changement important est que nous proposons désormais une deuxième option de navigateur, avec le lancement d'une version de Mozilla Firefox optimisée pour Raspberry Pi.


C'est la première fois que nous prenons officiellement en charge Firefox. Auparavant, la seule version disponible était une ancienne version de Debian, alors que nous avons maintenant effectué beaucoup de travail pour garantir la meilleure expérience possible lors de l'exécution de la dernière version de Firefox sur Raspberry. Pi. Nous avons travaillé en étroite collaboration avec Mozilla et la communauté Firefox, et nous contribuons à notre travail en amont au bénéfice des utilisateurs de Firefox sur toutes les plateformes.

Une fonctionnalité clé a permis la prise en charge du codec V4L2 afin que Firefox puisse utiliser le décodeur matériel h.264 sur Raspberry Pi. Sur les anciens modèles de Raspberry Pi, cela améliore considérablement les performances et réduit la charge du processeur lors de la lecture de vidéos HD. Nous avons activé la prise en charge de Widevine DRM, qui est utilisé par un certain nombre de services de streaming vidéo, et avons contribué à des optimisations graphiques qui améliorent les performances sur une gamme de sites Web sur des appareils à faible consommation. Pour les appels vidéo, nous nous sommes assurés que Firefox sur Raspberry Pi OS fonctionne immédiatement avec les caméras CSI (en utilisant libcamera) et le partage de bureau sur Wayland.