Guide nVidia pour Linux Gentoo
1.
Introduction
Les pilotes nVidia présents dans l'arbre sont fournis par nVidia et sont
compilés en fonction de votre noyau Linux. Ils contiennent un binaire qui
s'occupe de la communication avec la carte. Ces pilotes sont constitués de deux
parties : un module noyau et un pilote X11, qui sont tous deux contenus
dans un unique paquet. En raison de la façon qu'a nVidia de construire ses
pilotes, vous aurez quelques choix à faire avant d'installer ceux-ci.
Le paquet nvidia-drivers contient les pilotes fournis par nVidia, quelle
que soit votre carte graphique. En effet, il utilise une eclass afin de
détecter votre modèle de carte et ainsi de pouvoir télécharger la bonne version
du pilote.
2.
Compatibilité
Version du pilote
Le paquet nvidia-drivers supporte toute la gamme des cartes nVidia.
Plusieurs versions de pilote peuvent être disponibles, selon votre modèle de
carte.
Les cartes récentes, telles que les GeForce 8, 7, 6 et FX 5, utiliseront les
pilotes récents de la série 100.X.
Les cartes plus anciennes, telles que les GeForce 3 ou 4, nécessiteront les
versions 96.x des pilotes. Pour ces cartes, vous devrez ajouter
>=x11-drivers/nvidia-drivers-97.00 dans votre fichier
/etc/portage/package.mask. Cela évitera qu'une version récente du
pilote, incompatible avec votre carte, ne soit installée.
Pour les vieilles cartes basées sur les NV2X (comme les TNT, TNT2, GeForce et
GeForce 2), vous aurez besoin des versions 71.x des pilotes (telle que
nvidia-drivers-71.86.01). Pour ces cartes, masquez
>=x11-drivers/nvidia-drivers-87.00 dans le fichier
/etc/portage/package.mask.
Vérifiez le fichier LISEZ-MOI sur la page appropriée pour x86 ou
x86-64 pour savoir quel pilote utiliser avec votre carte.
3.
Configuration de votre carte
Configuration du noyau
Les pilotes nVidia dont on vient de parler sont installés et exécutés en
fonction de votre noyau courant. Puisque le pilote consiste en un module, votre
noyau doit, logiquement, supporter le chargement de modules. Si vous utilisez
genkernel all pour la configuration de votre noyau, les paramètres
appropriés ont déjà été choisis pour vous. Autrement, vérifiez vous-même votre
configuration pour vous assurer que les options appropriées sont
sélectionnées :
Exemple de code 3.1 : Activation du chargement des modules du noyau |
Loadable module support --->
[*] Enable loadable module support
|
Vous devez aussi activer l'option Memory Type Range Register :
Exemple de code 3.2 : Activer MTRR |
Processor and Features --->
[*] MTRR (Memory Type Range Register) support
|
Si vous disposez d'une carte graphique AGP, vous pouvez aussi, optionnellement,
activer le support d'agpgart dans le noyau, soit en dur, soit en module.
Si vous n'utilisez pas le agppart du noyau, les pilotes utiliseront leur propre
implémentation, appelée NvAGP. Sur certains systèmes, cette
implémentation est plus performante que le agppart du noyau, et sur d'autres
systèmes, elle l'est moins. Pour obtenir la performance maximale, vous devrez
évaluer l'une ou l'autre de ces option sur vote propre système. Si vous n'êtes
pas sûr, utiliser la version agppart du noyau :
Exemple de code 3.3 : Activer agpgart |
Device Drivers --->
Character devices --->
<*> /dev/agpgart (AGP Support)
|
Note :
Sur les AMD64, la configuration de l'AGPGART est contrôlée par le IOMMU.
|
Remarques concernant certaines architectures
Important :
Pour les processeurs x86 et AMD64, il y a conflit entre le pilote interne du
noyau et le pilote binaire fourni par nVidia. Si vous compilez votre noyau pour
ces processeurs, il faut retirer complètement le support pour le pilote
interne :
|
Exemple de code 3.4 : Retirer le pilote interne |
Device Drivers --->
Graphics Support --->
< > nVidia Framebuffer Support
< > nVidia Riva support
|
Le pilote VESA est une alternative pour le framebuffer :
Exemple de code 3.5 : Activer le support de VESA |
Device Drivers --->
Graphics Support --->
[*] VESA VGA graphics support
|
Ou bien, vous pouvez essayer uvesafb, un framebuffer avancé.
Notez que vous pouvez choisir de le compiler dans votre noyau ou en tant que
module. L'exemple suivant le compile dans le noyau.
Exemple de code 3.6 : Activation du support de uvesafb |
Device Drivers --->
Graphics Support --->
<*> Userspace VESA VGA graphics support
|
Pour plus d'informations, vous pouvez lire la documentation relative au
framebuffer choisi dans /usr/src/linux/Documentation/.
Poursuivre la configuration du noyau
L'ebuild nvidia-drivers trouve automatiquement la version de votre noyau
grâce au lien symbolique /usr/src/linux. Assurez-vous que ce lien
pointe vers les bonnes sources et que votre noyau a été configuré correctement.
Référez-vous à la section « Configurer le noyau » du Manuel Gentoo Linux pour obtenir des
instructions détaillées sur la configuration de votre noyau.
Premièrement, installez eselect (si ce n'est déjà fait). Si vous
utilisez gentoo-sources-2.6.18-r4, la liste de vos noyaux pourrait
ressembler à ce qui suit :
Exemple de code 3.7 : Vérifier le lien symbolique /usr/src/linux |
# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.18-gentoo-r4 *
[2] linux-2.6.20-gentoo-r7
[3] linux-2.6.20-gentoo-r8
|
Dans l'exemple ci-dessus, remarquez que le noyau linux-2.6.18-gentoo-r4
est marqué d'un astérisque (*), ce qui montre que le lien symbolique
pointe dessus.
Si le lien ne pointe pas vers les sources appropriées, vous devez le mettre à
jour en indiquant le numéro du noyau désiré, comme dans l'exemple ci-dessous.
Exemple de code 3.8 : Créer ou mettre à jour le lien symbolique /usr/src/linux |
# eselect kernel set 1
|
Installer les pilotes appropriés
Il est maintenant temps d'installer les pilotes.
Exemple de code 3.9 : Installation des modules nVidia |
# emerge nvidia-drivers
|
Note :
Les pilotes peuvent être installés avec le paramètre USE gtk, ce qui
installera media-video/nvidia-settings, un outil graphique pratique pour
surveiller et configurer certains aspects de votre carte nVidia.
|
Important :
Chaque fois que vous compilez un nouveau
noyau ou que vous recompilez votre noyau courant, vous devez exécuter
emerge nvidia-drivers pour réinstaller les modules nVidia. Une méthode
plus simple pour reconstruire les modules installés par des ebuilds (tels que
nvidia-drivers) est d'utiliser sys-kernel/module-rebuild. Une
fois installé, lancez simplement module-rebuild populate pour construire
une base de données contenant les paquets à reconstruire. Ensuite, après avoir
recompil" votre noyau, lancez juste module-rebuild rebuild pour
reconstruire les pilotes adaptés à votre nouveau noyau.
|
Lorsque l'installation est finie, lancez modprobe nvidia pour charger le
module du noyau en mémoire. S'il s'agit d'une mise à jour, vous devez
auparavant supprimer le module précédent.
Exemple de code 3.10 : Chargement du module du noyau |
# lsmod | grep nvidia && rmmod nvidia
# modprobe nvidia
|
Pour éviter d'avoir à charger le module à chaque démarrage, vous souhaiterez
sans doute automatiser ce processus. Pour ce faire, éditez le fichier
/etc/modules.autoload.d/kernel-2.6 et ajoutez-y nvidia.
N'oubliez pas d'exécuter update-modules par la suite :
Important :
Si vous avez compilé agpgart en module, vous devrez l'ajouter à
/etc/modules.autoload.d/kernel-2.6.
|
Exemple de code 3.11 : Lancer update-modules |
# update-modules
|
Configuration du serveur X
Une fois que les pilotes sont installés, vous devez configurer votre serveur X
pour qu'il utilise le pilote nvidia au lieu du pilote nv par
défaut.
Ouvrez /etc/X11/xorg.conf avec votre éditeur favori (nano
ou vim par exemple) et allez à la section Device. Dans cette
section, modifiez la ligne Driver :
Exemple de code 3.12 : Remplacement de nv par nvidia dans la configuration du serveur X |
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
VideoRam 65536
EndSection
|
Ensuite, allez à la section Module et assurez-vous que le module
glx se charge tandis que le module dri ne se charge pas :
Exemple de code 3.13 : Mise à jour de la section Module |
Section "Module"
# Load "dri"
Load "glx"
EndSection
|
Puis, dans la section Screen, vérifiez que la directive
DefaultDepth indique 16 ou 24, ou qu'il n'y a pas de sous-section
Display avec des directives Depth qui valent autre chose que 16
ou 24. Si vous spécifiez d'autres profondeurs de couleurs que 16 ou 24, les
extensions nVidia GLX ne fonctionneront pas.
Exemple de code 3.14 : Mettre la section Screen à jour |
Section "Screen"
DefaultDepth 16
Subsection "Display"
EndSection
|
Lancez eselect afin que le serveur X utilise les bibliothèques GLX
de nVidia :
Exemple de code 3.15 : Lancement de eselect |
# eselect opengl set nvidia
|
Ajouter des utilisateurs dans le groupe video
Afin que vos utilisateurs puissent accéder aux fichiers de périphérique nVidia,
il faut les ajouter au groupe video :
Exemple de code 3.16 : Ajout d'un utilisateur au groupe video |
# gpasswd -a nom_utilisateur video
|
Cela n'est pas forcément obligatoire si vous n'utilisez pas udev mais
cela ne vous fera pas de mal. De plus, votre système sera préparé pour
l'avenir.
Test de la carte
Pour tester votre carte nVidia, démarrez X et lancez glxinfo du paquet
mesa-progs. Cela devrait vous répondre que le rendu direct est
activé :
Exemple de code 3.17 : Vérification de l'état du rendu direct |
$ glxinfo | grep direct
direct rendering: Yes
|
Pour obtenir votre taux de FPS (images par seconde), lancez glxgears.
Activer le support nVidia
Certains paquets comme mplayer ou xine-lib ont une option USE
locale appelée xvmc qui active le support XvMCNVIDIA, utile notamment
pour visionner des films en haute résolution. Vous pouvez définir cette option
dans la variable USE de votre fichier /etc/make.conf ou bien
l'ajouter pour les paquets media-video/mplayer et/ou
media-libs/xine-lib dans le fichier
/etc/portage/package.use.
Certaines applications utilisent également le paramètre USE nvidia, que
vous pouvez donc également ajouter à votre /etc/make.conf.
Ensuite, exécutez emerge -uD --newuse world pour recompiler les
applications qui utilisent cette option.
Utiliser les outils de configuration nVidia
NVidia vous fournit également un outil de configuration qui vous permet de
modifier les réglages graphiques sans redémarrer le serveur X. Cet outil est
disponible dans Portage sous le nom de media-video/nvidia-settings.
Comme mentionné précédemment, il sera automatiquement installé si vous aviez
activé le paramètre USE gtk dans /etc/make.conf ou dans
/etc/portage/package.use avant d'installer les pilotes.
4.
Problèmes
Faire fonctionner la carte en 2D sur des machines avec 4 Go de mémoire ou plus
Si vous avez des problèmes avec l'accélération 2D, il est probable que
l'origine soit un problème d'écriture avec MTRR. Veuillez vérifier le contenu
du fichier /proc/mtrr :
Exemple de code 4.1 : Vérifier si l'option « write-combining » est activée |
# cat /proc/mtrr
|
Chaque ligne doit contenir soit « write-back », soit
« write-combining ». Si une ligne avec « uncachable »
apparaît, vous devez modifier une option de votre BIOS pour résoudre le
problème.
Redémarrez votre machine et cherchez l'option MTRR, en général, dans un menu
« CPU Settings ». Changez cette option de « continuous »
en « discrete » et redémarrez Linux. Vous ne devriez plus voir
« uncachable » dans /proc/mtrr et l'accélération 2D
devrait mieux fonctionner.
Lorsque j'essaie de charger le module noyau, je reçois un « no such
device »
Cela arrive en général lorsque vous n'avez pas de carte graphique qui
corresponde. Assurez-vous de bien avoir une carte graphique nVidia (vous pouvez
vérifier avec lspci).
Si vous êtes sûr d'avoir une carte graphique nVidia, vérifiez que la directive
Assign IRQ to VGA est bien activée dans votre BIOS.
5.
Configuration experte
Documentation
Le paquet logiciel du pilote nVidia contient une documentation exhaustive. Elle
est installée dans le répertoire /usr/share/doc et peut être
consultée avec la commande suivante :
Exemple de code 5.1 : Consulter la documentation de nVidia |
$ less /usr/share/doc/nvidia-drivers-*/README.gz
|
Paramètres du module du noyau
Le module du noyau nvidia accepte un éventail de paramètres (options)
qui permettent d'ajuster le comportement du pilote. La plupart sont mentionnés
dans la documentation. Pour ajouter ou modifier ces paramètres, éditez le
fichier /etc/modules.d/nvidia. Souvenez-vous d'exécuter
update-modules après ces modifications et gardez à l'esprit que vous
devrez recharger le module nvidia avant que ces modifications ne soient
prises en compte.
Exemple de code 5.2 : Ajuster la configuration nvidia |
# nano -w /etc/modules.d/nvidia
# update-modules
# modprobe -r nvidia
# modprobe nvidia
|
Configuration avancée de X
La couche logicielle GLX offre aussi une pléthore d'options de configuration.
Celles-ci contrôlent la sortie TV, l'utilisation simultanée de deux écrans, la
détection de la fréquence des moniteurs, etc. Ces options sont elles aussi
couvertes dans la documentation.
Si vous voulez utiliser certaines de ces options, vous devez les indiquer dans
la section Device appropriée de votre fichier de configuration de X
(habituellement /etc/X11/xorg.conf). Par exemple, supposons que
vous souhaitez désactiver le logo de démarrage :
Exemple de code 5.3 : Configuration avancée de nVidia dans X |
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
Option "NoLogo" "true"
VideoRam 65536
EndSection
|
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|