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 ](git://anongit.freedesktop.org/xorg/driver/xf86-video-XXX)
où 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 ](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
http://www.x.org/wiki/
http://www.intellinuxgraphics.org/