URL: https://linuxfr.org/news/etat-des-pilotes-graphiques-libres-pour-soc Title: État des pilotes graphiques libres pour SoC Authors: antistress Nÿco, claudex, Benoît Sibaud, karteum59 et Olivier Esver Date: 2013年05月01日T17:18:54+02:00 License: CC By-SA Tags: graphique, pilote_libre et arm Score: 62 Si les lecteurs de LinuxFr.org sont généralement bien au fait de l'état de prise en charge des puces graphiques de leur PC (Intel HD Graphics, AMD Radeon, NVIDIA GeForce) par les pilotes libres, il n'en est pas toujours de même s'agissant de la prise en charge des puces graphiques embarquées dans les [SoC](http://fr.wikipedia.org/wiki/SoC "Définition Wikipédia") (« _System on Chip_ », système sur puce, contenant en général processeur, mémoire, stockage et périphériques). Or ces SoC, principalement basés sur l'[architecture ARM](http://fr.wikipedia.org/wiki/architecture ARM "Définition Wikipédia") actuellement. sont devenus omniprésents depuis l’avènement des ordiphones et des tablettes, et le problème de l'existence ou non de pilotes libres devient de plus en plus aigu, spécialement si on souhaite pouvoir tourner une distribution GNU/Linux sur ces engins sans s'embêter. ---- [Open source drivers for SoC GPUs - Emmanuel Deloget](http://blog.emmanueldeloget.com/index.php?post/2013/01/12/Open-source-drivers-for-SoC-GPUs) [The SoC GPU driver interview - Emmanuel Deloget ](http://blog.emmanueldeloget.com/index.php?post/2013/03/08/The-SoC-GPU-driver-interview) ---- # Panorama Les SoC embarquent généralement l'une des puces graphiques suivantes : ##PowerVR Series 5 (SGX) d'Imagination Les [PowerVR](http://fr.wikipedia.org/wiki/PowerVR "Définition Wikipédia") Series 5 (SGX) sont conçus par Imagination qui est réputé pour ne pas être enclin à l'ouverture (c'est un euphémisme) : ni spécifications ni pilotes libres. Ces cœurs graphiques se retrouvent notamment dans les SoC TI [OMAP](http://fr.wikipedia.org/wiki/OMAP "Définition Wikipédia") 3 et 4 qui équipent respectivement les carte [Beagleboard](http://fr.wikipedia.org/wiki/Beagleboard "Définition Wikipédia") et PandaBoard mais aussi en combinaison avec des processeurs [x86](http://fr.wikipedia.org/wiki/x86 "Définition Wikipédia") [Atom](http://fr.wikipedia.org/wiki/Intel_Atom "Définition Wikipédia") dans [certains chipsets Intel](https://fr.wikipedia.org/wiki/Intel_GMA#Puces_produites_sous_licence_d.27Imagination_Technologies). À noter que les puces PowerVR équipent les iPhone d'Apple et sont donc largement répandues. Compte tenu de l'architecture alambiquée de la puce, [il est peu probable qu'un pilote libre voie le jour](http://blog.emmanueldeloget.com/index.php?post/2013/01/12/Open-source-drivers-for-SoC-GPUs#c2102) et ce, malgré [le souhait de la FSF](http://powervr.gnu.org.ve/doku.php). ##VideoCore de Broadcom Le [VideoCore](http://fr.wikipedia.org/wiki/VideoCore "Définition Wikipédia") est conçu par [Broadcom](http://fr.wikipedia.org/wiki/Broadcom "Définition Wikipédia"). Il équipe le SoC ARM du [Rapsberry Pi](https://fr.wikipedia.org/wiki/Raspberry_Pi "Définition Wikipédia") par exemple. Malgré [l'annonce](http://www.raspberrypi.org/archives/2221) qui en a été faite, Broadcom [ne](http://airlied.livejournal.com/76383.html) [propose](http://marc.info/?l=openbsd-misc&m=135109499020826&w=2) [pas](http://www.raspberrypi.org/archives/2221#comment-35048) de pilote libre. Cependant, et [malgré l'architecture alambiquée de la puce](http://phoronix.com/forums/showthread.php?80092-The-State-Of-ARM-SoC-GPU-Linux-Drivers&p=327787#post327787), une initiative de pilote libre est actuellement menée par Herman H Hermitage : _[videocoreiv](https://github.com/hermanhermitage/videocoreiv "videocoreiv sur GitHub")_. Le projet en est à ses débuts (initialisation du cœur). ##GeForce ULP (Tegra) de NVIDIA Le GeForce ULP (pour _Ultra Low Power_) est conçu par [NVIDIA](http://fr.wikipedia.org/wiki/NVIDIA "Définition Wikipédia") dont il équipe les SoC ARM [Tegra](http://fr.wikipedia.org/wiki/Tegra "Définition Wikipédia"). On retrouve le Tegra dans de nombreux appareils comme [Samsung Galaxy Tab](http://fr.wikipedia.org/wiki/Samsung Galaxy Tab "Définition Wikipédia") 10.1, [Microsoft Surface](http://fr.wikipedia.org/wiki/Microsoft Surface "Définition Wikipédia"), [Nexus 7](http://fr.wikipedia.org/wiki/Nexus 7 "Définition Wikipédia"), [Ouya](http://fr.wikipedia.org/wiki/Ouya "Définition Wikipédia")... Un pilote libre 2D/3D est en cours de développement par [rétro-ingénierie](http://fr.wikipedia.org/wiki/rétro-ingénierie "Définition Wikipédia") à l'initiative de Erik Faye-Lund alias kusma ([site web](http://kusma.demoscene.no/)) et, exceptionnellement, [avec l'aide de NVIDIA](http://www.phoronix.com/scan.php?page=news_item&px=MTM1MDQ) : _[grate](https://github.com/grate-driver "grate sur GitHub")_. ##Mali d'ARM Les cœurs graphiques [Mali](http://fr.wikipedia.org/wiki/Mali_(GPU\) "Définition Wikipédia") sont conçus par [ARM](http://fr.wikipedia.org/wiki/ARM_%28soci%C3%A9t%C3%A9%29 "Définition Wikipédia") sur la base d'une technologie brevetée [initialement développée et licenciée par Mediatek](http://www.arm.com/about/newsroom/25487.php). Ils se retrouvent dans certains SoC [Exynos](http://fr.wikipedia.org/wiki/Exynos "Définition Wikipédia") de Samsung (appareils [Samsung Galaxy S II](http://fr.wikipedia.org/wiki/Samsung Galaxy S II "Définition Wikipédia"), [ Samsung Galaxy Note 10.1](http://fr.wikipedia.org/wiki/ Samsung Galaxy Note 10.1 "Définition Wikipédia"), Samsung Galaxy Note 8.0, cartes Hardkernel O-DROID...), les [A1X](http://fr.wikipedia.org/wiki/AllWinner_A1X "Définition Wikipédia") de AllWinner Technology (tablettes à bas prix type Carrefour CMP4708T mais aussi carte [Cubieboard](http://fr.wikipedia.org/wiki/Cubieboard "Définition Wikipédia")...), certains SoC [WonderMedia](http://fr.wikipedia.org/wiki/WonderMedia "Définition Wikipédia") de VIA, certains SoC [AMLogic](http://fr.wikipedia.org/wiki/AMLogic "Définition Wikipédia") ou [Rockchip](http://fr.wikipedia.org/wiki/Rockchip "Définition Wikipédia"). ARM n'a pas réalisé de pilote libre, mais un pilote 2D/3D libre [Gallium3D](http://fr.wikipedia.org/wiki/Gallium3D "Définition Wikipédia") est activement développé, pour les modèles Mali 200 et Mali 400 pour commencer, par rétro-ingénierie sous l’impulsion de la société Codethink (au sein de laquelle principalement Luc Verhaegen alias libv – [blogue](http://libv.livejournal.com/)) depuis début 2011 et est bien avancé : _[Lima](http://limadriver.org/ "Site officiel")_. Les résultats sont encourageants et le pilote libre peut s'avérer plus rapide que son pendant non-libre au final. ##Adreno de Qualcomm [Adreno](http://fr.wikipedia.org/wiki/Adreno "Définition Wikipédia") est conçu par [Qualcomm](http://fr.wikipedia.org/wiki/Qualcomm "Définition Wikipédia") dont il équipe les SoC ARM [Snapdragon](http://fr.wikipedia.org/wiki/Snapdragon "Définition Wikipédia"). Pour l'anecdote, la partie 3D est dérivée des puces Radeon d'AMD (dont Adreno est un anagramme). On retrouve le Snapdragon dans de nombreux appareils comme [HTC Legend](http://fr.wikipedia.org/wiki/HTC Legend "Définition Wikipédia"), [HTC Desire](http://fr.wikipedia.org/wiki/HTC Desire "Définition Wikipédia"), [Nexus One](http://fr.wikipedia.org/wiki/Nexus One "Définition Wikipédia"), HP TouchPad, [Sony Xperia](http://fr.wikipedia.org/wiki/Sony_xperia "Définition Wikipédia") E/T/J/Z, [Nexus 4](http://fr.wikipedia.org/wiki/Nexus 4 "Définition Wikipédia"), [Nokia Lumia](http://fr.wikipedia.org/wiki/Nokia Lumia "Définition Wikipédia") 520/620/720/820/920, [Samsung Galaxy S4](http://fr.wikipedia.org/wiki/Samsung Galaxy S4 "Définition Wikipédia")... Qualcomm n'a pas réalisé de pilote libre, mais un pilote 2D/3D libre Gallium3D est activement développé par rétro-ingénierie notamment par Rob Clark ([blogue](http://bloggingthemonkey.blogspot.fr/)), développeur actuellement chez Red Hat et [précédemment chez Texas Instrument](http://www.phoronix.com/scan.php?page=news_item&px=MTMwMjA), sur son temps libre : _[freedreno](https://github.com/freedreno/freedreno "freedreno sur GitHub")_. Le projet semble bien avancer et concerne tant les a2xx que les a3xx. ##Vivante de Vivante Corp Le cœur graphique Vivante est conçu par [Vivante Corp](http://fr.wikipedia.org/wiki/Vivante_corporation "Définition Wikipédia"). Il est largement répandu et se retrouve par exemple dans de nombreux SoC [Marvell](http://fr.wikipedia.org/wiki/Marvell "Définition Wikipédia") ([Cubox](http://fr.wikipedia.org/wiki/Cubox "Définition Wikipédia")...), la série [i.MX](http://fr.wikipedia.org/wiki/i.MX "Définition Wikipédia")6 de Freescale ou le Rockchip RK2918. Vivante Corp a publié un pilote libre partiel (la partie noyau seulement, sous licence GPL, mais rien concernant le pilote en espace utilisateur) qui est actuellement complété à l'initiative de Wladimir J. van der Laan ([blogue](https://blog.visucore.com/)) qui travaille sur un pilote Gallium3D : [_etna_viv_](https://github.com/laanwj/etna_viv "etna_viv sur GitHub"). Le travail pour les GC600/800 semble bien avancer, et celui sur GC880 ne serait pas loin. Le travail sur GC2000 viendrait plus tard. ##À venir : HD Graphics (Valley View) d'Intel Vous aurez remarqué que ce panorama de SoC est jusqu'ici très largement dominé par l'architecture ARM – ce qui n'est pas une nouveauté, Intel s'étant engagé tardivement dans la course à la consommation électrique. Intel a fini par annoncer Valley View, un SoC à base de processeur Atom (architecture x86) qui utilisera pour la première fois une solution graphique propre puisqu'il s'agira d'un cœur [HD Graphics](http://fr.wikipedia.org/wiki/HD Graphics "Définition Wikipédia") de septième génération (la même que celle que l'on trouve dans les actuels processeurs Ivy Bridge et les futurs Haswell) pour lequel le fondeur fournit directement un pilote libre. La date de sortie de ce SoC n'est toutefois pas connue à ce jour. # Remarques finales ## Quel cœur graphique privilégier dans l'optique d'un pilote libre ? Les quatre prétendants (bientôt cinq) Si les cœurs graphiques PowerVR d'Imagination sont à fuir comme la peste, les GeForce ULP (Tegra), Mali (200/400), Adreno et Vivante sont à privilégier pour qui espère un pilote libre à court ou moyen terme (Adreno semblant faire la course en tête). Il n'est pas interdit d'imaginer un jour un pilote libre pour les VideoCore, mais l'architecture alambiquée de la puce – tout comme celle des PowerVR – incite à la prudence. Enfin, une fois le SoC Valley View d'Intel sorti, on pourra l'ajouter à la liste qui totalisera ainsi cinq prétendants. ## Pilote libre : merci qui ? Il est regrettable de constater qu'à de rares exceptions près (Intel et, dans une moindre mesure, NVIDIA et Vivante Corp), les concepteurs de solutions graphiques pour SoC refusent (pour l'instant ?) de jouer le jeu de l'Open Source en libérant leurs pilotes ou, au moins, en publiant les spécifications de leur matériel (toutefois certains concepteurs peuvent ne pas avoir tous les droits sur leur technologie compte tenu des brevets tiers qu'ils peuvent exploiter sous licence). Les pilotes libres en cours de développement le sont donc par des tiers qui pratiquent la rétro-ingénierie : sacrée perte de temps (cela dit, la lecture des brevets sur le matériel a parfois pu faire office de documentation en permettant aux développeurs de progresser dans leur travail de compréhension des mécanismes mis en œuvre par le matériel...). Et encore : les développeurs compétents dans ce domaine étant déjà employés par des sociétés travaillant sur certaines de ces solutions graphiques sous [accord de non-divulgation](http://fr.wikipedia.org/wiki/Accord de non-divulgation "Définition Wikipédia"), ils ne peuvent écrire du code pour des pilotes libres concernant ces matériels. Du coup on assiste à un jeu de participations croisées : Luc Verhaegen alias libv et Rob Clark ne pouvant coder sur PowerVR, le premier se rabat alors sur Mali, [lequel Rob Clark ainsi que Erik Faye-Lund alias kusma ne pouvant de leur côté coder sur Mali, se rabattent respectivement sur Adreno et Tegra](http://phoronix.com/forums/showthread.php?80092-The-State-Of-ARM-SoC-GPU-Linux-Drivers&p=327764#post327764)...

AltStyle によって変換されたページ (->オリジナル) /