Nvidia( X )

De Diablotins.org.


Les pilotes pour cartes graphiques Nvidia
Image:brush.png
Vous utilisez une carte graphique Nvidia dont vous souhaitez utiliser les performances et les possibilités.
En d'autres termes, soyons francs: vous voulez jouer.
Il existe trois pilotes pour X-Window,
les deux premiers sont libres
l'autre est fourni par Nvidia.


Sommaire

Les pilotes libres

Ces pilotes sont moins performants que le suivant, mais ils ont l'avantage d'être très simple à installer et de fonctionner sur toutes les plate-formes.

Installé en général par défaut, il vous suffit de définir dans /etc/X11/xorg.conf l'entrée “Driver” de la section “Device” associée à votre serveur X à:

Section "Device"
Identifier "GeForce"
Driver "nv"

De fait, cette rubrique n'est même pas nécessaire; par défaut, Xorg va utiliser ce pilote.


Le tout dernier, encore en cours de test, car il nécessite le pilote «drm».
Contrairement au précédent, il supporte le protocole OpenGL.
Installez le port x11-drivers/xf86-video-nouveau et suivez les instructions qui s'affichent à la fin de l'installation, soit:

david:~>cat /usr/ports/x11-drivers/xf86-video-nouveau/pkg-message
...
Installing it should be as simple as below procedure provided you have
base sources in /usr/src.

    # cd /usr/src/sys
    # fetch http://people.freebsd.org/~rnoland/drm-nouveau-062309.patch
    # patch -sp0 -i drm-nouveau-062309.patch
    # cd modules/drm
    # make depend all install

Puis utilisez «nouveau» dans /etc/X11/xorg.conf.

Section "Device"
Identifier "GeForce"
Driver "nouveau"

Le pilote Nvidia

Ce pilote est plus complexe à installer; cependant, écrit par le constructeur, il est bien plus adapté à votre carte.

Pré-requis

Ce pilote requiert la compatibilité Linux si vous souhaitez utiliser la 3D dans les applications Linux et, si vous utilisez une branche supérieure, la compatibilité 5.x.
Si vous utilisez déjà un pilote Nvidia, relancez X11 avec le pilote libre du paragraphe précédent le temps de mettre à jour ce dernier.
Je recommande de plus de ne pas faire tourner X-Window du tout.

Installation par le port

Pour obtenir une version pour des cartes modernes, il suffit d'installer le port, sans préciser d’extension:

  • Actuellement, il s'agit par défaut du pilote 256.xx.yy, pour les cartes les plus modernes ( Quatro, GeForce 7, etc.) : x11/nvidia-driver.
  • Pour 'vieilles' GEForces: “x11/nvidia-driver-96xx”.
  • Pilote officiellement supporté par FreeBSD, toutes cartes: “x11/nvidia-driver-71xx”.

Pour être sûr du pilote à installer, consulter la liste des cartes située à l'annexe E de la documentation d'un des pilotes.

Nvidia ayant parfois du mal à suivre les évolutions de FreeBSD et de Xorg, parfois rapides,
-à moins que ce ne soit l'inverse, -
je vous conseille néanmoins d'essayer le paragraphe qui suit.

Installation manuelle

Enregistrez le pilote qui vous est proposé sur le site dans le répertoire de votre choix et décompressez le:

tar -xf NVIDIA-FreeBSD-x86-v.x-n.tar.gz        v.x-n est le numéro de version

Entrez dans le répertoire ainsi créé:

cd NVIDIA-FreeBSD-x86-v.x-n

Installez le pilote:

make install 

ou

make all install X11BASE=/usr/X11R6    Versions de Xorg précédants la 7.0

Désormais, X11 utilise le dernier pilote écrit par Nvidia. Et surtout, ce pilote a écrasé la version des pilotes OpenGL et GLX de Xorg, nécéssaire au bon fonctionnement de votre station de jeux. Vous allez rapidement voir la différence entre les temps d'éxécutions des applications OpenGL.

Une fois que le bon fonctionnement du pilote est avéré, conservez surtout dans un coin ce pilote; il vous sera très utile, notamment lors d'une mise à jour de Xorg, qui a la facheuse habitude d'installer ses propres modules GLX et OpenGL.

Module

Une fois le module installé, vous devriez le retrouver dans /boot/modules/nvidia.ko et dans les clefs du systèmes hwnvidia:

david:~>sysctl hw.nvidia
hw.nvidia.version: NVIDIA UNIX x86_64 Kernel Module  270.41.03  Sat Apr  9 00:04:34 PDT 2011
hw.nvidia.registry.EnableVia4x: 0
hw.nvidia.registry.EnableALiAGP: 0
hw.nvidia.registry.NvAGP: 1
hw.nvidia.registry.ReqAGPRate: 15
hw.nvidia.registry.EnableAGPSBA: 0
hw.nvidia.registry.EnableAGPFW: 0
hw.nvidia.registry.Mobile: 4294967295
hw.nvidia.registry.ResmanDebugLevel: 4294967295
hw.nvidia.registry.RmLogonRC: 1
hw.nvidia.registry.ModifyDeviceFiles: 1
hw.nvidia.registry.DeviceFileUID: 0
hw.nvidia.registry.DeviceFileGID: 0
hw.nvidia.registry.DeviceFileMode: 438
hw.nvidia.registry.RemapLimit: 0
hw.nvidia.registry.UpdateMemoryTypes: 4294967295
hw.nvidia.registry.InitializeSystemMemoryAllocations: 1
hw.nvidia.registry.UseVBios: 1
hw.nvidia.registry.RMEdgeIntrCheck: 1
hw.nvidia.registry.UsePageAttributeTable: 4294967295
hw.nvidia.registry.EnableMSI: 0
hw.nvidia.registry.MapRegistersEarly: 0
hw.nvidia.registry.RegisterForACPIEvents: 1
hw.nvidia.registry.dwords: 
hw.nvidia.cards.0.model: GeForce 6150SE nForce 430
hw.nvidia.cards.0.irq: 22
hw.nvidia.cards.0.vbios: 05.61.32.19.04
hw.nvidia.cards.0.type: PCI

Configurer X

Éditez le fichier /etc/X11/xorg.conf et définissez le pilote du terminal qui vous intéresse à “nvidia”:

Section "Device"
 Identifier "GeForce"
 Driver "nvidia"
 BoardName   "GeForce2 Go"

D'autre part, supprimez ou commentez le module suivant:

 Load "GLCore"

Inhibez les modules suivants:

 Disable "dri"

Ajoutez enfin celui-ci:

 Load "glx"

Enfin, relancez X.

Le bus AGP

Certains pilotes anciens, disponibles pour les branches IV de FreeBSD par exemple, exigent l'utilisation du propre pilote du bus AGP de nvidia.
En ce cas, retirer le pilote le périphérique AGP du noyau, chargez le pilote AGP de nvidia par le Gestionnaire de démarrage et définissez l'entrée suivante dans xorg.conf:

Option "NvAGP" "1"

nvidia settings

Vous pouvez installer cet outil via le port x11/nvidia-settings.
Ensuite, lancez simplement “nvidia-settings”.
Ce dernier est une interface graphique qui vous permet d'effectuer quelques réglages, de les enregistrer puis de les appliquer (nvidia-settings -l) et, enfin de consulter l'état de votre carte.

C'est re-devenu lent?

Réinstallez le pilote par le port ou le pilote manuel que vous avez évidemment conservé suivant mes conseils.
Une mise à jour a certainement écrasé les modules de Nvidia.

Variables de contrôle

Vous pouvez vérifier vos paramètres par quelques variables systèmes.

  • Version du pilote
david:~>sysctl hw.nvidia.version
hw.nvidia.version: NVIDIA UNIX x86_64 Kernel Module  275.09.07  Wed Jun  8 14:13:48 PDT 2011
  • Vos cartes:
david:~>sysctl hw.nvidia.cards
hw.nvidia.cards.0.model: GeForce 6150SE nForce 430
hw.nvidia.cards.0.irq: 22
hw.nvidia.cards.0.vbios: 05.61.32.19.04
hw.nvidia.cards.0.type: PCI
  • Tout un tas d'options pour les spécialistes:
david:~>sysctl hw.nvidia.registry

AMD64

Il n'existe depuis fin 2009 un pilote pour la plateforme AMD64, à partir des branche 8 et 7.3.
Nvidia requiert certaines fonctionnalités dans le noyau de FreeBSD pour écrire son pilote. Dont voici la liste.

Xgl,Composite

Compiz et KDE3

Xgl, comme AIGLX, sont une couche de Xorg qui permet de confier le gros du travail d'affichage à votre carte graphique.
Ils sont nécessaires pour obtenir les effets de compiz fusion.
Mais, même si vous ne désirez pas ces effets ( transparence, 3D, fenêtres élastiques etc. ), cela donnera un coup de fouet à votre PC, le ou les processeurs étant libérés des tâches d'affichage.
Installez x11-wm/compiz-fusion, puis configurez Xorg comme suit:

Section "Module"
    Load  "extmod"
    Load  "glx"
    Disable  "dri"
    Load  "dbe"
    Load  "record"
    Load  "xtrap"
    Load  "type1"
    Load  "freetype"
    Load  "vbe"
EndSection
Section "Device"
    Identifier     "Card0"
    Driver         "nvidia"
    VendorName     "nVidia Corporation"
    BoardName      "NV43 [GeForce 6600/GeForce 6600 GT]"
    Option         "RenderAccel" "True"
    Option         "AddARGBGLXVisuals" "True"
    Option          "DamageEvents" "True"
EndSection
Section "Extensions"
Option         "Composite" "Enable"
EndSection

Précisez la profondeur de l'affichage, si ce n'est pas déjà le cas:

    Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
   DefaultDepth    24
    Option         "AddARGBGLXVisuals" "True"
#...
SubSection     "Display"
        Viewport    0 0
        Depth       24
        Modes      "1280x1024"
    EndSubSection
EndSection


Kwin pour KDE4 intègre de base les effets composites.
KDE4


Pour les autres, pour demander les effets, tapez:

compiz --replace --sm-disable --ignore-desktop-hints ccp &
emerald --replace &

Utilisez ccsm pour configurer les effets.

En savoir plus

Note

Je sens qu'il va m'arriver des bricoles

L'auteur, une fois la configuration effectuée, profitant de la 3D, a démarré une partie de bzflag.
Il n'en est toujours pas revenu. Ce qui explique le caractère incomplet de ce document.

Projets :