Wayland/Weston sur Raspberry Pi progresse

Posté le par | Réponse(s) : 2

Qu'est ce que Wayland ? Wayland est un protocole de serveur d'affichage, ainsi qu'une bibliothèque logicielle libre disponible pour les systèmes Linux. Le projet commencé en 2008 avec une version 1.0 est passé en mai 2013 à une version 1.2 un peu plus exploitable. Wayland fournit un moyen, pour les gestionnaires de fenêtres (Weston), de communiquer directement avec les applications graphiques. Il est considéré par certain comme le futur remplaçant du serveur X.Org car il permet de soulager considérablement l'utilisation de CPU au bénéfice des applications utilisées. Des distributions comme Fedora et Mandriva envisagent sérieusement de l'intégrer en vue de remplacer X.Org tandis que Canonical (Ubuntu) développe en parallèle un concurrent nommé Mir dans le but d'uniformiser la distribution sur toutes ses plateformes (allant de l'ordinateur de bureau à un Ubuntu embarqué - Ubuntu Touch -).

X Window System, l'environnement graphique historique du monde Linux, ne serait plus adapté à l'utilisation actuelle des ordinateurs tournant sous GNU/Linux.

Pourquoi Wayland est-il plus performant que X Window System ?

Wayland intègre un serveur, un gestionnaire de fenêtre et un compositeur. Il n'y a pas d'API pour le rendering, les applications écrivent directement dans un buffer. Le compositeur est l'application qui se charge de regrouper les différents buffers graphiques des applications en un seul buffer affichable sur un écran. Le serveur d'affichage de Wayland est donc le compositeur et les applications dialoguent directement avec lui, le but n'étant pas de gagner en performances mais d'avoir une architecture simple et plus adaptée à l'utilisation actuelle.

Schéma 1 : architecture X, schéma 2 : architecture Wayland

Pour en savoir plus je vous invite à lire l'article sur linuxfr.org et sur la doc de Wayland (PDF).

Wayland serait donc une excellente solution pour Raspberry Pi ?

Si vous êtes familier avec Raspberry Pi et l'utilisation de Raspbian, vous avez remarqué que les fenêtres sur le bureau sont plus longues à s'ouvrir et plus lentes au déplacement que sur votre PC ou votre ordinateur portable. C'est parce que X, le logiciel de fenêtrage (ou protocole de composition) que nous utilisons, n'est pas optimisé pour utiliser le processeur graphique de la BCM2835 (la puce au cœur du Raspberry Pi). Tout le travail est effectué par le processeur ARM, ce qui ralentit le système et délaisse le cœur graphique (GPU).

Toutefois, pour vraiment profiter de ce nano-pc, le RPi va très bien exécuter des taches complexes (serveurs FTP, HTTP, traitement de bases de données, Cloud, etc.)  aussi longtemps qu'on de démarre pas l'interface X (il faut donc l'utiliser seulement à partir du réseau et SSH).

Sinon, on peut toujours jouer avec les fréquences des CPU/GPU. Overcloker son RPI en mode "Medium" le rend un peu plus réactif, mais il faut reconnaître que l'interface graphique reste modestement réactive.

Et pourtant, le RPi est peut-être bien plus puissant sur le plan graphique qu'on ne le pense. L'utilisation de Wayland/Weston sur le RPi est une vraie surprise. Le résultat est vraiment impressionnant et on peut faire le test soit-même avec peu de compilation. Le résultat obtenu donne une interface graphique fonctionnant à une vitesse satisfaisante. Les test de la fenêtre que l'on déplace avec la souris est déjà concluant.

Pour se faire, La Fondation Raspberry Pi a pris la décision de contourner le serveur X complètement. Au cours de ces derniers mois, la fondation a travaillé avec Collabora pour mettre en œuvre le protocole de composition Wayland open-source conçu pour l'échelonnage matériel vidéo du BCM2835 avec un débit d'échelle de 500 millions de pixels par seconde et un débit de mélange de 1 gigapixels par seconde le tout fonctionnant indépendamment du matériel OpenGL ES, afin de pouvoir continuer à rendre les graphismes 2D/3D à des taux pleins, très rapides.

Wayland libèrerait l'ARM du "fardeau" X11 en fournissant des fonctionnalités soignées comme les fenêtres non rectangulaires, des fondus pour les fenêtres, etc (le genre de chose que les utilisateurs Mac connaissent ou les linuxiens utilisant Compiz). Les anciennes applications X peuvent encore être prises en charge en utilisant XWayland.

Le but annoncé par collabora.com est sans équivoque (voir aussi ceci) :

  • Libérez toutes les capacités matérielles graphiques du Raspberry Pi et montrer son potentiel
  • Présentez le RPi comme une plate-forme multimédia convaincante
  • Améliorer le système multitâche et les performances de multitraitement
  • Se détacher de la partie matérielle graphique pour offrir une meilleure réactivité
  • Démontrer les nouvelles capacités de Wayland / Weston héritées de X11
  • Permettre la compatibilité avec le client X11 pour encore plus de performances que en étant exécuté nativement
  • Améliorer la viabilité de Weston en tant que plate-forme de bureau
  • Démontrer les capacités de composition 2D de Weston avec le coeur graphique du Raspberry Pi

Avant d'en arriver là, Raspberrypi.org affirme travailler en ce sens pour améliorer les performances et la consommation de mémoire, et estime ne pas être en mesure de remplacer X11 que son environnement de bureau par défaut avant la fin de l'année. Sur la dernière image 2013-07-26-wheezy-raspbian, Weston est présent et permet de faire (après quelques installations) le test succinct de ce que peut donner ce serveur d'affichage.

Les différentes vidéos que j'ai pu voir m'ont impressionnées et j'ai voulu aussi le tester et me rendre compte "par moi-même" de la réactivité de Wayland. J'ai suivi à la lettre les indications proposées par le site officiel wayland.freedesktop.org.

Bien que le développement et le portage de Wayland/Weston sur Raspberry Pi ait été accéléré ces derniers mois, l'API de Weston est pour le moment restreint et on a seulement la possibilité de lancer le Terminal Wayland. En effet, pour le moment, aucune application tournant sous X11 ne fonctionne avec les instructions de base à moins d'aller bidouiller dans le /usr/lib/weston/xwayland.so et d'essayer d'appeler xserver. Je n'y suis pas arrivé... En fouillant bien dans les réponses données par Google, il existe des manières (complexes) pour obtenir des démonstrations supplémentaires (notamment sur GitHub). J'avoue ne pas avoir le temps en ce moment pour cela et j'attends avec intérêt et impatience les versions suivantes.

Wayland est un projet vraiment ambitieux. D'une part, l'utilisateur final s'y retrouve en matière de confort d'utilisation pour gain en ressources processeur et mémoire vive et en fluidité visuelle ; d'autre part, ce projet peut favoriser l'utilisation de machines à bas coût comme le Raspberry Pi et devenir plus accessible/utilisable par  des utilisateurs dans le milieu éducatif par exemple et/ou des utilisateurs plus avertis (ou pas) transformant leur nano-pc en appareil multimédia connecté via la télévision. Enfin, je vois aussi en ce projet, un élan pour rendre des systèmes GNU/Linux présents parmi la grande famille des téléphones dits "intelligents". Mais n'allons pas trop vite et attendons de voir les évolutions de ce projet.

Sources :
http://www.raspberrypi.org/archives/4053
http://fooishbar.org/tell-me-about/wayland-on-raspberry-pi/
http://wayland.freedesktop.org/raspberrypi.html
http://raspberrypi.collabora.com/
http://ppaalanen.blogspot.co.uk/2013/05/weston-on-raspberry-pi-accelerated.html
http://linuxfr.org/news/pourquoi-wayland-veut-remplacer-x
http://linuxfr.org/news/x-org-est-mort-vive-wayland
http://linuxfr.org/news/x-org-est-mort-vive-wayland-2
http://linuxfr.org/news/x-org-est-mort-vive-wayland-3
http://www.phoronix.com/scan.php?page=news_item&px=MTM3OTc
http://www.collabora.com/services/case-studies/raspberrypi/
http://www.collabora.com/press/2013/05/collabora-brings-wayland-and-x11-graphicsperformance-to-raspberry-pi.html
http://www.collabora.com/projects/graphics/
http://lists.freedesktop.org/archives/wayland-devel/2012-November/006133.html
http://manpages.ubuntu.com/manpages/raring/man1/weston.1.html
http://raspberrypi.stackexchange.com/questions/4395/weston-examples-on-raspberry-pi
http://qt-project.org/wiki/RaspberryPi
http://www.youtube.com/watch?v=HItv4HX5r3k
http://worldofgnome.org/wayland-in-raspberry-wayland-in-gnome/
http://jollafr.org/jolla-annonce-officiellement-utiliser-le-protocole-de-serveur-daffichage-wayland-pour-sailfish-os/
http://www.tarnyko.net/?q=node/41


Licence Creative Commons
Cet article, sauf mention contraire expresse, est publié sous licence Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported Licence.

Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :
Google Plus Twitter Facebook Linkedin Framasphere email Flattr !

2 commentaires sur “Wayland/Weston sur Raspberry Pi progresse

  1. Hello,

    Je cherche désespérément à faire fonctionner correctement Wayland sur mon Rpi3. Je suis arrivé à le lancer avec Weston car j'ai installé les drivers Mesa 12.0.1 qui incluent le pilote libre du videocore vc4, mais ce dernier a un framebuffer terriblement lent, donc le bénéfice face à Xorg est nul, confirmé par le test de Weston (l'interface est lente). Il n'est plus possible d'utiliser Weston accéléré avec le driver intégré car le backend spécialement crée pour le Raspberry (nommé Rpi-backend) a été supprimé sur les versions les plus récentes de Wayland/Weston. Quelqu'un saurait comment avoir une interface Wayland assez décente sur le Rpi au jour d'aujourd'hui ? Faut-il attendre une version complète du pilote libre (vc4) pour espérer utiliser correctement Wayland sur le Raspberry ? Qui aurait plus d'infos ?

    • Plop Alex,
      Je n'ai pas retesté Wayland/Weston depuis cet article, donc merci pour ton retour. D'après ce que j'ai pu lire, Collabora (le développeur) a violemment dropé le back-end de Weston. La raison viendrait d'un problème de driver propriétaire et de DRM. Est-ce la fin du développement de Wayland/Weston ? L'avenir nous le dira...
      Quelques infos ici ou .
      À suivre mais il faudra être patient.
      Cordialement

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *