Dernière mise à jour : 20/09/2004
J'ai décidé de réécrire cet article tant il se faisait vieux. Voici donc une version revisitée sur l'OpenGL sous Linux et vos différentes options avec XFree. Je me base sur XFree 4.3.x pour le moment. Je traiterais donc dans ces pages les pilotes pour cartes ATI, Nvidia et Matrox. Cette mise à jour change quelques liens selon les cartes et donne des conseils plus précis sur les carte Nvidia. La dernière mise à jour contient une procédure d'installation fournie par un ami.
ATI
ATI est un acteur respecté du marché car il fabrique des cartes vidéo de très bonne facture qui sont également intégrées massivement sur les portables. La seconde raison concerne le fait qu'il fournissait les spécifications importantes de ses cartes (jusqu'au 9000 à priori), permettant ainsi aux développeurs de XFree de pouvoir sortir des pilotes à jour pour supporter les cartes et révisions sous Linux et autres Unix. Je vous conseille donc 3 liens essentiels :
- http://www.freedesktop.org/~xorg/X11R6.8.0/doc/RELNOTES3.html#9 - Ce lien comporte la liste des cartes supportées sous le dernier X.org (remplacant libre de XFree
- http://www.ati.com/support/faq/linux.html - Ce lien vous dirigera vers le site officiel du support ATI qui a des pilotes béta Linux pour ses cartes.
- http://gatos.sourceforge.net/ - Le site du projet non Officiel GATOS qui développe des pilotes 3D pour votre Linux sur les cartes ATI.
- http://www.ati.com/support/driver.html - Lien vers le dernier pilote ATI
- http://www.nvidia.com/object/linux.html - Page de téléchargement des pilotes.
- http://www.nvidia.com/view.asp?IO=linux_display_archive - Page de téléchargement des versions précédentes
- static int NVreg_EnableVia4x = 1; (uniquement pour les possesseurs de chipset VIA)
- static int NVreg_EnableAGPSBA = 1;
- static int NVreg_EnableAGPFW = 1;
- http://www.matrox.com/mga/support/drivers/latest/home.cfm - Derniers pilotes incluant ceux pour Linux
- http://www.matrox.com/mga/support/drivers/3rd_party/home.cfm - Liste de pilotes Linux non développés par Matrox
Pour installer le pilote ATI sur XFree (devrait marcher sous X.org mais pas encore testé), le télécharger sur le site en suivant le 4ème lien donné ci-dessus. Cette procédure d'installation m'a été fournie par William dont voilà le lien (sité dédié au jeu). Aller ensuite en console (de préférence en mode texte sans X par un init 3), se logguer en tant que root, installer le rpm en faisant : rpm -ivh fglrxXXX.rpm --nodeps (un --force est envisageable mais pas vraiment conseillé). Aller ensuite dans cd /lib/modules/fglrx/build_mod puis dans le sous répertoire de compilation du module puis faire : sh make.sh. Attention : vous devez avoir préalablement compilé et redémarré sur un noyau fait main sous peine de ne pouvoir faire l'installation (ou à défaut, installer le paquet des kernel-headers que vous utilisez).
Il faut ensuite installer le module si tout s'est bien passé (si ce n'est pas le cas, dommage, mais ces pilotes sont pas encore vraiment un exemple de simplicité à installer). revenez dans le répertoire fglrx et tapez : sh make_install.sh. Il faut à présent configurer l'installation, lancez donc l'utilitaire de configuration : fglrxconfig et répondez aux questions (les choix par défaut sont généralement les bons) :
-
Do you want to initialize xfree86-dga (y/n) n
Do you want to syncronyze buffer swaps (y/n) y
Full scene Anti Aliasing (FSAA) please enter : 1
Do you want to use the external AGP Gart module (y/n) n
Do you want to enable \"AGP locked user pages\" (y/n) y
Wich storage mthode do you want to use : 2 (pour winex)
Laissez l'installateur inscrire le fichier /etc/X11/XF86Config-4 et renommez le si besoin. Sur une configuration d'une ATI 9800 PRO 256MO et Mandrake 10.0, William obtient environ 4000fps ce qui est pas trop mal (bien que clairement en dessous des performances Windows). Merci à William et Gilles pour ce rapide tutoriel.
Nvidia
Les pilotes Nvidia marchent également très bien et ce depuis maintenant plusieurs années. Il faut distinguer la version des pilotes XFree avec ceux fournis directement par Nvidia. Les pilotes XFree sont OpenSource et fournissent une parfaite accélération 2D sous Linux pour toutes les cartes (incluant les Geforce 4). Les pilotes Nvidia pour leur part sont propriétaires et ne sont distribués que sous forme de modules. Leur avantage majeur est le fait qu'ils supportent la 3D et ils la supportent très bien ! Cette section est mise à jour régulièrement lorsque les pilotes changent de procédure d'installation. Voici le lien vers la page de téléchargement :
Cette procédure n'est applicable que pour les pilotes antérieurs au 4496, regardez le paragraphe suivant pour les nouveaux. Une fois les pilotes téléchargés, vous pouvez soit installer les sources (enfin modules) ou bien les RPMs. Vous devez dans tous les cas installer NVIDIA-kernel en premier en seulement après chargement, NVIDIA-GLX.
Les derniers pilotes Nvidia sont les 6106 qui se présentent sous la forme d'un (lourd) fichier .run de 8MO et sont les premiers à présenter un panneau de configuration pour Nvidia Linux. Il tentent de s'installer tous seuls comme des grands. Le problème fondamental, c'est qu'il désactivent le Fast Write et le FBSA automatiquement. Heureusement, le readme est là pour vous indiquer la commande, décompactez donc le fichier en faisant : sh NVIDIA-Linux-x86-1.0-6106-pkg1.run --extract-only. Allez ensuite dans NVIDIA-Linux-x86-1.0-6106-pkg1/usr/src/nv/os-registry.c et faites les modifications ci-dessous.
Réservé aux utilisateurs expérimentés : Avant l'installation des pilotes, il est possible de changer les paramètres du module kernel afin de le faire aller plus vite. J'ai pour se faire modifié NVIDIA-Linux-x86-1.0-6106-pkg1/usr/src/nv/os-registry.c . Editez alors ce fichier et changez ces trois valeurs :
Pour les 5336, il vous suffit alors de lancer l'installateur dans le répertoire NVIDIA-Linux-x86-1.0-5336 par la commande : ./nvidia-installer. Il ne vous reste plus qu'a redémarrer la machine.
Pour ceux utilisant les versions antérieures au 4349, si vous avez déjà compilé le module kernel et que vous voulez appliquer ces paramètres, sortez de X (pour libérer le module) et faîtes bien un make clean ; rmmod nvidia ; rm -rf /lib/modules/2.4.XX/kernel/drivers/video/nvidia.o ; depmod -a. Si après compilation, X ne démarre pas, changez un des 3 paramètres vers 0 et recommencez.
Assurez-vous que le premier charge bien le module de la carte comme ceci :
-
[root@tux build]# lsmod |grep nvidia
nvidia 1465056 10 (autoclean)
Vous devez ensuite modifier les lignes suivantes de votre /etc/X11/XF86Config-4 (ou XF86Config si vous l'avez installé manuellement). Vous devez indiquer à XFree d'utiliser le pilote NVIDIA mais aussi de charger l'OpenGL. Voici les lignes à modifier :
-
Driver "nv" # remplacez nv par nvidia
Option "NvAGP" "1" # utilisez 1 si vous n'avez pas AGPGart compilé
Load "/usr/X11R6/lib/modules/extensions/libglx.so" # Assurez vous que la ligne existe après installation des NVIDIA-GLX.
avertissement ! : Les derniers pilotes (5328/36) ne sont plus compatibles avec AGPGart, assurez vous donc d'utiliser l'option "NvAGP" "1" sous peine ne de plus pouvoir vous logger sous X et même de pouvoir revenir en mode console. Ceci est également applicable aux possesseurs de kernel 2.6
J'ai aussi rencontré un problème sur les derniers pilotes 6106 avec WineX, les jeux sont plus lents et des textures manquent, ayant testé les pilotes uniquement le 01/07/2004, je ne pourrais pas jurer que cela vient de mon système uniquement mais si vous avez le même problème, envoyez-moi un email.
Le kernel 2.6 est enfin supporté par nvidia depuis les pilotes 5336
Après avoir redémarré votre serveur X, vous devriez voir l'écran Nvidia apparaître, cela veut dire que les pilotes ont bien chargés, pour vérifier la présence de l'OpenGL, tapez la commande ci-après. Enfin, pour être sûr que les utilisateurs non privilégiés du système peuvent accéder à l'accélération 3D de la carte, faîtes un chmod 666 /dev/nvidia*.
-
[dwight@tux dwight]$ xdpyinfo |grep GL
GLX
NV-GLX
NVIDIA-GLX
Ceci devrait vous permettre de faire tourner toutes les applications 3D sous votre Linux. N'hésitez pas enfin a analyser votre fichier XFree pour plus d'info si quelque chose ne marche pas : cat /var/log/XFree86.0.log |grep EE. EE mentionnera toutes les lignes ayant reportées des erreurs.
Pour tous ceux qui utilisent les pilotes Nvidia antérieurs aux 4349, vous devez avoir paramétré et installé un kernel disponible dans /usr/src/linux. Pour ceux qui ne l'ont pas fait, il vous sera impossible de compiler et d'installer correctement les modules.
Pour ceux utilisant les 4349 ou ultérieurs, NVIDIA avec son autoinstalleur vous a simplifié la tâche, il vous faudra juste installer le kernel source de la distribution. Ainsi les possesseurs de distributions RPMs pourront installer kernel-source contenant tout ce dont les pilotes ont besoin. Assurez vous d'avoir aussi : make, gcc et les autres outils de développement installés.
Enfin il est important de signaler que les pilotes NVIDIA officiels sont incompatibles avec rivafb. Si vous voulez utiliser le framebuffer, prenez VESA framebuffer standard sans autre option.
Précisons enfin que si vous avez compilé votre kernel avec une version différente de gcc que celle qui tente de compiler le module nvidia, vous devrez recompiler votre kernel auparavant.
Matrox
Je ne suis pas possesseur d'une carte Matrox mais j'ai fait quelques tests dessous il y a quelques temps. N'hésitez donc pas à consulter leur site web qui contient de nombreuses ressources et liens pour votre OS préféré. Le seul problème est que bien souvent, vous devez utiliser une version spécifique de XFree et que les pilotes mettent du temps à sortir.
Eh bien voilà pour la section OpenGL, cela faisait un moment que je me devais de vous livrer une page plus décente sur les pilotes OpenGL sous Linux. Je n'ai pas mentionné les cartes de Type Kyro qui ont également des pilotes (béta) pour Linux car je ne connais pas d'utilisateur en possédant.