NVIDIA/nvidia-drivers/nl

x11-drivers/nvidia-drivers is de commerciële grafische driver voor nVidia grafische kaarten. Een open-bron alternatief is nouveau.

De nVidia drivers in Portage zijn door nVidia vrijgegeven en worden ten opzichte van een Linux kernel gecompileerd. Ze bevatten een binair stuk logica dat het merendeel van de ondersteuning biedt om met de grafische kaart te spreken. De drivers bevatten twee onderdelen: een kernel module en een X11 driver. Beide delen zitten in hetzelfde pakket. Door de methode die nVidia toepast om hun drivers te bundelen ga je enkele keuzes moeten maken alvorens je de drivers installeert.

De nvidia-drivers bevatten de laatste drivers van nVidia die alle kaarten ondersteunen, met daarin verschillende beschikbare versies afhankelijk van hoe oud je grafische kaart is. Het pakket maakt gebruik van een eclass om te detecteren welk soort kaart je aan het draaien bent zodat de correcte versie wordt geinstalleerd.

Driver Compatibiliteit
Het pakket ondersteunt een breed gamma aan beschikbare nVidia kaarten. Meerdere versies zijn beschikbaar voor installatie, afhankelijk van de kaart(en) die je hebt. Voor meer informatie, zie het [http://www.nvidia.com/object/IO_32667.html What's a legacy driver? (Engels)] document op de nVidia site om te weten te komen welke versie van nvidia-drivers je moet gebruiken. Een vrij nette manier om dit te ontdekken is door het interactieve formulier dat hier aangeboden is te gebruiken. Typ de grafische kaart in die je hebt (let wel op de Legacy optie in het 'Product type' veld) en je zal uiteindelijk de best ondersteunde versie onder het formulier zien.

Als je je kaart als een oude kaart hebt geidentificeerd dan kan het zijn dat je meer recente versies van zal moeten maskeren, bijvoorbeeld:

Herinner je eraan dat Gentoo niet de 71.86.xx versies aanbiedt. Als je een kaart hebt die deze drivers nodig heeft raden we je aan om de nouveau driver te gebruiken.

Kernel
Zoals hierboven vermeld, de nVidia kernel driver installeert en draait enkel op de kernel waarmee hij gebouwd is. Ze installeert als een kernel module, dus is het belangrijk dat je kernel het laden van kernel modules ondersteunt (zie onderstaand).

De kernel module (nvidia.ko) bevat een particulier deel (ook wel bekend als de "binaire blob") dewelke jouw grafische kaart(en) bestuurt, en een open source deel die tijdens uitvoering de kernel en het particulier deel aan elkaar plakt ("glue"). Deze moeten goed samen te werken om te vermijden dat je data zou kunnen verliezen (door kernel paniek, X servers die vastlopen met niet opgeslagen data in X applicaties) en zelfs hardware problemen (zoals bijvoorbeeld verhitting of andere stroom beheer gerelateerde problemen).

Kernel Compatibiliteit
Eens in de zoveel tijd veranderd een nieuw uitgebrachte kernel zijn interne driver structuur (en: ABI), dit betekent dat alle drivers die deze structuur gebruiken veranderd moeten worden om deze nieuwe structuur te ondersteunen. Voor open source drivers, en in het bijzonder die dat met de kernel gedistribueerd worden, zijn deze verandering vrij triviaal om op te lossen omdat de aanroepen tussen de drivers en de andere delen van de kernel vrij gemakkelijk ingekeken kunnen worden. Voor particuliere drivers zoals nvidia.ko, werkt het iets anders. Wanneer een interne drivers structuur veranderd, kan je niet zomaar de kleeflaag ("glue") veranderen, omdat je niet echt weet hoe de kleeflaag door het particuliere deel gebruikt word. Als je er toch in slaagt om dingen mooi te doen werken, riskeer je alsnog dat de nvidia.ko in jouw nieuw, niet ondersteunde kernel mogelijk tot het verlies van data of problemen met hardware leidt.

Wanneer een nieuwe, niet compatibele kernel versie word vrijgegeven, is het mogelijk het beste om met de laatst ondersteunde kernel versie te blijven werken. Het duurt voor Nvidia enkele weken om een nieuwe particuliere versie vrij te geven waarvan ze denken dat deze klaar is voor algemeen gebruik. Wacht het gewoon even af. Als je desondanks toch tegen alle waarschuwingen in wil gaan, dan bieden de nvidia-drivers ebuilds ondersteuning voor het epatch_user commando van eutils.eclass: Dit staat toe om nvidia-drivers te patchen en op de een of andere manier toch te doen werken met de laatste, niet compatibele kernel versie die je zo graag wil draaien. Let hier wel mee op want de nvidia-drivers onderhouders en Nvidia zullen geen support bieden wanneer je problemen oploopt. De garantie van je hardware verloopt mogelijk, Gentoo's onderhouders gaan zich niet bezig houden met het oplossen van zulke problemen omdat enkel Nvidia over de mogelijkheden beschikt om de particuliere driver te debuggen, en de kernel onderheuders (zowel die van Gentoo als die van Linux) zullen zeker geen ondersteuning willen bieden aan particuliere drivers, of eender welk "bedorven" systeem dat hierdoor problemen heeft opgedaan.

Required kernel options
If you used genkernel all to configure the kernel for you, then you're all set. If not, double check your kernel configuration so that this support is enabled:

You also need to enable Memory Type Range Register in your kernel:

Also, if you have an AGP graphics card, you can optionally enable agpgart support to your kernel, either compiled in or as a module. If you do not use the in-kernel agpgart, then the drivers will use their own agpgart implementation, called NvAGP. On certain systems, this performs better than the in-kernel agpgart, and on others, it performs worse. You will need to evaluate this on your own system to get the best performance. If you are unsure what to do, use the in-kernel agpgart:

Een alternatieve framebuffer is uvesafb, dewelke gelijktijdig kan geïnstalleerd worden met de nvidia-drivers.

De nvidia-drivers ebuild ondekt uw kernel versie automatisch gebaseerd op de symbolische link. Wees er zeker van dat de symbolische link naar de juiste kernel broncode verwijst en dat de kernel correct is geconfigureerd. De "Configuring the Kernel" sectie van het Gentoo Handboek kan bekeken worden voor meer informatie over hoe de kernel geconfigureerd kan worden.

Eerst wijst u de juist kernel broncode aan met eselect. Stel dat je gentoo-sources-3.7.10 wil gebruiken, dan zou de lijst met kernels er uit moeten zien zoals:

In bovenstaande output zal u opmerken dat de linux-3.7.10-gentoo kernel is gemarkeed met een ster (*) om aan te tonen dat het om een kernel gaat waar de symbolische link naar verwijst.

Als de symbolische link niet naar de juiste broncode verwijst, zal u deze kunnen veranderen door de juiste nummer van uw gewennste kernel broncode te kiezen; zoals in het bovenstaande voorbeeld.

Drivers
Now it's time to install the drivers. You can do this by first following the X Server Configuration HOWTO and setting VIDEO_CARDS="nvidia" in. When you install the X server, it will then install the right version of nvidia-drivers for you.

Eens de installatie gedaan is voer je modprobe nvidia uit om de kernel module in het geheugen te laden. Als dit een upgrade is dien je eerst de module te verwijderen.

Om te vermijden dat je manueel de module moet laden bij het opstarten, wil je mogelijk deze automatisch laten laden elke keer je systeem opstart, wijzig dus en voeg er nvidia aan toe.

De X Server
Eens de juiste drivers zijn geïnstalleerd zal je de X Server dienen te configureren zodat deze de nvidia driver gebruikt in plaats van de standaard nv driver.

Gebruik eselect om X Server de nVidia GLX libraries te doen gebruiken:

Je grafische kaart testen
Om je nVidia kaart te testen, start X en voer glxinfo uit, welke deel uit maakt van het x11-apps/mesa-progs pakket. Het zou moeten weergeven dat direct rendering geactiveerd is:

Om de FPS te controleren, voer je glxgears uit.

Het inschakelen van nVidia ondersteuning
Sommige programma's, zoals mplayer en xine-lib, gebruiken een lokale USE flag genaamd xvmc dewelke XvMCNVIDIA ondersteuning aanzet, dit is handig wanneer je films van hoge resolutie wil bekijken. Voeg xvmc toe aan USE in of voeg het toe als een USE flag op media-video/mplayer en/of media-libs/xine-lib in.

GeForce 8 series en latere GPUs bieden VDPAU ondersteuning die de XvMCNVIDIA ondersteuning vervangt. Zie het VDPAU artikel om VDPAU ondersteuning aan te zetten.

Er zijn sommige programma's die de nvidia USE flag gebruiken, dus je wil dit mogelijk toevoegen aan.

Nadat deze wijzigingen zijn aangebracht voer je emerge -uD --newuse @world uit om de programma's te herbouwen die van deze USE flag veranderingen kunnen profiteren.

De NVidia Instellingen gebruiken
nVidia komt ook met een programma om de instellingen te veranderen. Dit programma staat je toe om je grafische kaart te controleren en de grafische instellingen te veranderen zonder de X server te herstarten. Het is beschikbaar in Portage als media-video/nvidia-settings. Zoals eerder vermeld, zal het automatisch worden geïnstalleerd als je de drivers installeert met de gtk USE flag in of in.

OpenGL/OpenCL inschakelen
Om OpenGL of OpenCL in te schakelen:

Om OpenGL in te kunnen schakelen zal X11 op dat moment niet moeten draaien op je systeem.

Driver fails to initialize when MSI interrupts are enabled
The Linux NVIDIA driver uses Message Signaled Interrupts (MSI) by default. This provides compatibility and scalability benefits, mainly due to the avoidance of IRQ sharing. Some systems have been seen to have problems supporting MSI, while working fine with virtual wire interrupts. These problems manifest as an inability to start X with the NVIDIA driver, or CUDA initialization failures.

MSI interrupts can be disabled via the NVIDIA kernel module parameter. This can be set on the command line when loading the module, or more appropriately via the distribution's kernel module configuration files (such as those under ).

For instance:

2D werkend krijgen op machines met 4 GB of meer geheugen
Als je problemen hebt met de nVidia 2D acceleratie dan is dat mogelijk omdat je geen schrijf-combinerend bereik (EN: write-combining range) met MTRR hebt opgezet. Om dit na te gaan, controleer je de inhoud van :

Elke lijn zou "write-back" of "write-combining" moeten bevatten. Als je een lijn ziet met "uncachable" dan zal je een instelling in je BIOS moeten veranderen om dit op te lossen.

Start opnieuw op en ga in de BIOS, vind dan de MTRR instellingen (mogelijk onder "CPU Settings"). Verander de instelling van "continuous" (continu) naar "discrete" (discreet) en start opnieuw op in Linux. Je zou nu moeten zien dat er geen "uncachable" meer te zien is en dat de 2D acceleratie nu werkt zonder enige problemen.

Wanneer ik een kernel module probeer te laden, krijg ik "no such device" (geen apparaat gevonden)
Dit wordt gewoonlijk veroorzaakt door een van de volgende problemen:

1. Je hebt helemaal geen nVidia grafische kaart. Controleer de lspci output om na te gaan of je wel degelijk een nVidia grafische kaart geïnstalleerd hebt en gedetecteerd wordt.

2. De huidig geïnstalleerde versie van x11-drivers/nvidia-drivers ondersteund jouw grafische kaart model niet. Controleer het bestand in  voor een lijst van ondersteunde apparaten, of gebruik het zoek formulier op http://www.geforce.com/drivers om te vinden of jouw apparaat ondersteund wordt. Zie de Driver Compatibiliteit sectie bovenaan.

3. Een andere kernel driver heeft controle over jouw hardware. Controleer lspci -k en kijk of een andere driver zoals bijvoorbeeld "nouveau" is gebonden aan de grafische kaart. Indien dit het geval is, zal je deze dienen uit te schakelen of op de zwarte lijst te zetten (Engels: blacklist).

Xorg says it can't find any screens
When you boot up your computer and end up with a black screen or a console prompt instead of your GUI; you can press Ctrl+Alt+F2 to bring up a console prompt if you don't already have one. Then you can run:

to see the output of Xorg. If one of the first errors is that Xorg can't find any screens, then follow these steps to resolve your issue.

It should be enough to run the following command before rebooting:

But if that doesn't work, run lspci and you'll find your video card starts off like this: 01:00.0 VGA compatible controller: make and model of videocard

Take the first bit, 01.00.0 and put it in your /etc/X11/xorg.conf with the BusID option: {{FileBox|filename=/etc/X11/xorg.conf|lang=xorg_conf|1=
 * 1) this is not the whole file, only the part that needs edited
 * 2) the file should already exist after running nvidia-xconfig

Section "Device" Identifier    "Device0" Driver        "nvidia" VendorName    "NVIDIA Corporation" BusID         "PCI:1:0:0" EndSection

Direct rendering is not enabled
If Direct rendering does not work, it may be because you have Direct Rendering Manager enabled in the kernel, which conflicts with the driver. You can see Direct rendering Status by following instructions in the section "Testing your card".

First, disable Direct Rendering Manager (CONFIG_DRM) in the kernel :

And rebuild x11-drivers/nvidia-drivers since the driver may have built against the kernel DRM symbols. It should fix your problem.

Documentation
The nVidia driver package also comes with comprehensive documentation. This is installed into /usr/share/doc and can be viewed with the following command:

Kernel module parameters
De nvidia kernel module accepteert enkele parameters (opties) dewelke je kan gebruiken om de experimenteren met de werking van de driver. De meeste parameters zijn vermeld in de documentatie. Om parameters toe te voegen of te veranderen, wijzig je het bestand. Vergeet niet om update-modules uit te voeren na het wijzigen van dit bestand, en vergeet ook niet dat je de nvidia module zal moeten herladen voor dat deze nieuwe instellingen enig effect zullen hebben.

Wijzig met je favoriete tekst editor:

Vernieuw de module informatie:

Ontlaad de nvidia module...

... en laad het terug opnieuw in:

Geavanceerde X configuratie
De GLX laag heeft ook een heleboel opties die geconfigureerd kunnen worden. Deze bepalen de configuratie van de TV uitgang, meerdere schermen, detectie van de frequentie van de monitor, en zo voort... Deze beschikbare opties zijn ook gedetailleerd vermeld in de documentatie.

Als je wens een van deze opties te gebruiken, zal je deze in de relevante Device sectie van het X configuratie bestand dienen te vermelden (gewoonlijk ). Bijvoorbeeld, stel dat ik het introductie logo wil uitzetten: