Outils pour utilisateurs

Outils du site


xorg_-_compiler_les_drivers_2d_et_mesa_depuis_les_sources_du_git

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

  • Récupération des sources :

git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-XXX

XXX correspond au constructeur du matériel (ati, intel, nvidia …).

  • Compilation :

cd xf86-video-XXX
./autogen.sh --prefix=/opt/xorg # on indique un dossier optionnel pour faciliter la désinstallation
make
sudo make install

Driver 3D ( Mesa )

  • Récupération des sources :

git clone git://anongit.freedesktop.org/mesa/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.
  • Compilation :

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

  • Dans votre fichier /etc/X11/xorg.conf :

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

2013/11/05