Xorg - Compiler les drivers 2D et MESA depuis les sources du git

Pour quoi faire ?

Quelques vérifications

Connaître le modèle de la carte graphique

lspci | grep VGA

retourne quelque chose comme :

00:0X.0 VGA compatible controller: Blabla Graphics Controller

Connaître la version actuelle du moteur de rendu

glxinfo | grep OpenGL

Retourne par exemple :

OpenGL vendor string: Tungsten Graphics, Inc OpenGL
renderer string: Swrast OpenGL version string: 2.1 Mesa 7.8 OpenGL
shading language version string: 1.20   

Dans ce cas précis, c'est "swrast" (software rasterizer) qui est utilisé, autrement dit, un rendu logiciel... En terme de performance, ce n'est pas forcément génial...

Pour utiliser le rendu matériel, on va demander au serveur graphique d'utiliser un nouveau pilote qu'on va compiler à partir des sources du GIT.

Les sources d'un git sont en constante évolution, et la compilation peut résulter en un pilote instable !

Installation des dépendances nécessaires à la compilation

 sudo apt-get install build-dep xserver-xorg-video-ati python-libxml2 bison flex mesa-common-dev x11proto-gl-dev libdrm-dev x11proto-xf86dri-dev xserver-xorg-dev 

En fonction de votre carte graphique, vous pouvez avoir besoin de certains firmwares qui ont été séparés du noyau Gnu/linux en installant le paquet firmware-linux-nonfree. La compilation de Gallium nécessite l'installation du paquet llvm.

Driver 2D

Driver 3D ( Mesa )

Une fois le git cloné, il est possible de lister les différentes branches de développement avec la commande : git branch -r et d'en sélectionner une pour la compilation avec la commande :

 git checkout -b $BRANCHE origin/$BRANCHE

où $BRANCHE est une des branches listées par la commande précédente.

cd mesa
./autogen.sh --prefix=/opt/xorg
make
sudo make install 

Si vous désirez ne compiler qu'un driver spécifique, il est possible de passer en paramêtre de l'autogen l'option --with-dri-drivers=$DRI_DRIVERS, où $DRI_DRIVERS représente le nom du driver (i915, radeon...).

Vous pouvez Ă©galement exporter une variable d'environnement du type :

 DRI_DRIVERS="radeon,r200,r300,r600,swrast"

puis utiliser littéralement l'option --with-dri-drivers=$DRI_DRIVERS.

Ex :

 DRI_DRIVERS="i915,radeon,swrast" && ./autogen.sh --prefix=/opt/xorg --with-dri-drivers=$DRI_DRIVERS 

Configurer le système pour utiliser les fichiers compilés

Section "Files"

    ModulePath "/opt/xorg/lib/xorg/modules,/usr/lib/xorg/modules" 

EndSection

sudo touch /etc/ld.so.conf.d/a-local-xorg.conf echo "/opt/xorg/lib" | sudo tee -a /etc/ld.so.conf.d/a-local-xorg.conf sudo touch /etc/environment echo "LIBGL_DRIVERS_PATH=/opt/xorg/lib/dri/" | tee -a /etc/environment



Un petit reboot devrait mettre tout ça en place.

## Liens

http://www.x.org/wiki/  

http://www.intellinuxgraphics.org/