Gentoo Logo

Disclaimer : Dit document is niet juist en is niet meer onderhouden.


Gentoo Linux nVidia Guide

Inhoud:

1.  Inleiding

nVidia geven hun eigen Linux drivers vrij die goede prestaties en volledige 3d acceleratie leveren. De driver versies zijn opgesplitsts in twee delen : nvidia-kernel en nvidia-glx.

nvidia-kernel is een kernel driver die laag-level communicatie doet met je video hardware. Dit is een simpele kernel module genaamd, nvidia, die in je kernel bronnen wordt geinstalleerd en geladen moet worden wanneer je die drivers wilt gebruiken.

Ook zoals de kernel driver, moet je ook de X11 GLX laag (nvidia-glx) installeren. Deze is gebruikt door X om afbeeldingen te renderen, die intern de nvidia-kernel gebruikt om met de hardware te communiceren.

2.  Je Kaart Configureren

Kernel Configuratie

Zoals hierboven vermeld installeert en start de nVidia kernel driver op je huidige kernel. Het bouwt een module, dus is het duidelijk dat je kernel enkele opties moet bevatten voor het laden van kernel modules. Als je de genkernel gebruikt om je kernel te configureren dan ben je al klaar. Indien niet, controleer je kernel configuratie voor als de ondersteuning voor de volgende zaken zijn ingeschakelt:

Codevoorbeeld 2.1: Inschakelen van ondersteuning voor het laden van Kernel Modules

Loadable module support --->
  [*] Enable loadable module support

Je moet ook ondersteuning voor Memory Type Range Register inschakelen in je kernel:

Codevoorbeeld 2.2: Inschakelen van MTRR

Processor and Features --->
  [*] MTRR (Memory Type Range Register) support

Je zult ook moeten ondersteuning inschakelen voor agpgart in je kernel (gecompileerd, of als module).

Codevoorbeeld 2.3: Inschakelen van agpgart

Device Drivers --->
Character devices --->
<*> /dev/agpgart (AGP Support)

Arch-specifieke nota's

Belangrijk: Voor x86 en AMD64 proccesoren, de in-kernel driver zal conflicten brengen met de binary driver gelevert door nVidia. Als je je kernel compileert voor deze CPUs, moet je ondersteuning voor in-kernel compleet uitschakelen zoals hieronder omschreven:

Codevoorbeeld 2.4: Verwijderen van de in-kernel driver

Device Drivers --->
Graphics Support --->
< >   nVidia Framebuffer Support
< >   nVidia Riva support

Een goed framebuffer alternatief is VESA:

Codevoorbeeld 2.5: Schakel VESA ondersteuning in

Device Drivers --->
Graphics Support --->
<*>   VESA VGA graphics support

Daarna, onder "VESA driver type", selecteer vesafb of vesafb-tng:

Codevoorbeeld 2.6: Selecteer framebuffer type

( ) vesafb
(X) vesafb-tng

Voor meer informatie, kun je volgende documentatie lezen: /usr/src/linux/Documentation/fb/vesafb.txt als je vesafb gebruikt of zoek voor je framebuffer documentatie onder /usr/src/linux/Documentation/fb/.

Verdergaan met Kernel Configuratie

nVdidia's modules en bibliotheken zijn gecombineerd in twee pakketen: nvidia-glx en nvidia-kernel. De eerste zijn de X11 GLX bibliotheken terwijl de laatste de kernel modules zijn.

De nvidia-kernel ebuilds vindt autmatisch je kernel versie gebaseerd op de /usr/src/linux snelkoppeling. Controleer dat je deze snelkoppeling verwijst naar de juiste bronnen en dat je kernel correct is geconfigureerd. Bekijk het "Configureer de kernel" hoofdstuk van de Installatie Handboek voor details over hoe je, je kernel kan configureren.

Als je gentoo-sources-2.6.11-r6 gebruikt, kan je /usr/src map zo eruit zien:

Codevoorbeeld 2.7: Controleer je /usr/src/linux snelkoppeling

# cd /usr/src
# ls -l
(Controleer dat linux wijst naar de juiste map)
lrwxrwxrwx   1 root root   22 Apr 23 18:33 linux -> linux-2.6.11-gentoo-r6
drwxr-xr-x   4 root root  120 Apr  8 18:56 linux-2.4.26-gentoo-r4
drwxr-xr-x  18 root root  664 Dec 31 16:09 linux-2.6.10
drwxr-xr-x  18 root root  632 Mar  3 12:27 linux-2.6.11
drwxr-xr-x  19 root root 4096 Mar 16 22:00 linux-2.6.11-gentoo-r6

In de teruggave hierboven, zul je merken dat de linux snelkoppeling wijst naar de linux-2.6.11-gentoo-r6 kernel.

Als je snelkoppeling niet wijst naar de juiste bron, moet je de link updaten zoals hieronder omschreven:

Codevoorbeeld 2.8: Creeer/update de /usr/src/linux snelkoppeling

# cd /usr/src
# ln -snf linux-2.6.11-gentoo-r6 linux

optioneel: controle op ondersteuning van verouderde kaarten

Nota: Jammer genoeg zijn zekere kaarten niet meer ondersteund door de nieuwere versies van nvidia-glx en nvidia-kernel. nVidia levert een lijst met alle ondersteunde kaarten. Controleer de lijst vooraleer de drivers te installeren.

De volgende lijst is een niet officiele lijst van niet ondersteunde video kaarten:

Codevoorbeeld 2.9: niet-ondersteunde kaarten

TNT2
TNT2 Pro
TNT2 Ultra
TNT2 Model 64 (M64)
TNT2 Model 64 (M64) Pro
Vanta
Vanta LT
GeForce 256
GeForce DDR
GeForce2 GTS
GeForce2 Pro
GeForce2 Ti
GeForce2 Ultra
GeForce2 MX Integrated graphics
Quadro
Quadro2 Pro
Quadro2 EX

Als je een van deze kaarten bezit, zul je de nieuwere versie moeten wijgeren en een oudere versie vand e nVidia drivers installeren:

Codevoorbeeld 2.10: Masken van de nieuwere drivers

# echo ">media-video/nvidia-kernel-1.0.6629-r5" >> /etc/portage/package.mask
# echo ">media-video/nvidia-glx-1.0.6629-r7" >> /etc/portage/package.mask

Installeren van de aangewezen drivers

Installeer nu nvidia-kernel en nvidia-glx.

Codevoorbeeld 2.11: Installeren van de nVidia modules

# emerge nvidia-glx

Belangrijk: Elke keer je een nieuwe kernel compileert of je huidige hercompileert moet je de nVidia modules opnieuw installeren. Dit kun je doen door emerge nvidia-kernel uit te voeren. nvidia-glx is onaangetast bij het veranderen van de kernel. Je hoeft het zelfs niet hercompileren na een recompilatie/update van X.

Eenmaam de installatie is afgerond, voer modprobe nvidia uit om de kernel module in het gegeugen te laden.

Codevoorbeeld 2.12: Inladen van de kernel module

# modprobe nvidia

Om te voorkomen dat je steeds de module manueel moet laden bij het opstarten van de pc, moet je /etc/modules.autoload.d/kernel-2.6 (of kernel-2.4, hangt af van welke kernel-versie je gebruikt) aanpassen en nvidia aan dit bestand toevoegen. Vergeet niet om modules-update achteraf uit te voeren.

Belangrijk: Als je agpgart als een module hebt gecompileerd, moet je deze ook toevoegen aan /etc/modules.autoload.d/kernel-2.6 (of kernel-2.4, hangt af van welke kernel-versie je gebruikt).

Codevoorbeeld 2.13: Uitvoeren van modules-update

# modules-update

De X Server Configureren

Eenmaal de bijhorende drivers geinstalleerd zijn, moet je je X Server configureren (XFree86 of Xorg) om de nvidia driver te gebruiken in plaats van de standaard nv driver.

Open /etc/X11/xorg.conf (of /etc/X11/XF86Config als je nog steeds het oude configuratiebestands-locatie gebruikt) met je favoriete editor (zoals nano of vim) en ga naar het device hoofdstuk. In dat hoofdstuk moet je de lijn met Driver veranderen:

Codevoorbeeld 2.14: Veranderen van nv naar nvidia in de X Server configuratie

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  VideoRam   65536
EndSection

Ga dan naar het Module hoofdstuk en controleer dat de glx module geladen wordt terwijl de dri module niet geladen wordt:

Codevoorbeeld 2.15: Updaten van het Module hoofdstuk

Section "Module"
  (...)
  # Load  "dri"
  Load  "glx"
  (...)
EndSection

Vervolgens, in het Screen hoofdstuk, controleer dat DefaultDepth ingesteld staat op 16 of 24; of dat je display subsecties met depth instellingen alleen maar 16 of 24 zijn. Zonder dat zal de nvidia-glx extensie niet starten.

Codevoorbeeld 2.16: Updaten van het Screen hoofdstuk

Section "Screen"
  (...)
  DefaultDepth 16
  Subsection "Display"
  (...)
EndSection

Voer eselect uit zodat de X Server de nVidia GLX bibliotheken gebruikt:

Codevoorbeeld 2.17: Uitvoeren van eselect

# eselect opengl set nvidia

Gebruikers toevoegen aan de groep video

Je moet ook je lokale gebruiker toevoegen aan de groep video zodat hij toegang heeft om de nVidia bestanden te kunnen raadplegen:

Codevoorbeeld 2.18: Je gebruiker teovoegen aan de video groep

# gpasswd -a youruser video

Dit is misschien niet helemaal nodig als je udev gebruikt, maar het kan ook geen kwaad en het maakt je systeem toekomst-veilig :)

Testen van je kaart

Om je nVidia kaart te testen, start X op en voer het glxinfo | grep direct uit. Het zou moeten zeggen dat direct renderen geactiveerd is.

Codevoorbeeld 2.19: Checking the direct rendering status

$ glxinfo | grep direct
direct rendering: Yes

Om je FPS te bekijken, start glxgears.

Inschakelen van nvidia ondersteuning

Sommige programmas, zoals mplayer en xine-lib, gebruiken een lokale USE variabele genaamd "nvidia" die XvMCNVIDIA ondersteuning aanschakelt. Dit is handig als je naar hoge-resolutie films kijkt. Voeg "nvidia" toe aan je USE variabelen in /etc/make.conf of voeg het toe als USE variabele in media-video/mplayer en/of media-libs/xine-lib in /etc/portage/package.use.

Voer dan emerge -uD --newuse world om je systeem te herbouwen met de USE-variabelen ondersteuning voor de programma's die die kunnen gebruiken.

De nVidia Instellingen Hulpprogramma gebruiken

Sinds nVidia versie 1.0.6106 op de markt heeft gebracht, bied het je ook een instellingen hulpprogramma aan. Dit programma laat je toe om grafische veranderingen aan te brengen zonder daarvoor te moeten de X server te herstarten. Dit programma is beschikbaar in de Portage als media-video/nvidia-settings.

3.  Probleemoplossing

2D werkend krijgen voor machines met meer dan 4 Gb of meer gegeugen

Als je problemen hebt met de nVidia 2d acceleratie is het goed mogelijk dat je niet mogelijk bent om een schrijf-combinatie afstand met MTRR in te stellen. Om te controleren, bekijk je best de inhoud van /proc/mtrr:

Codevoorbeeld 3.1: Controleren of je schrijf-combinatie hebt aangeschakelt

# cat /proc/mtrr

Iedere lijn zou moeten "write-back" of "write-combining" bevatten. Als je een lijn met "uncachable" erin ziet, zul je moeten je bios instellingen veranderen.

Reboot en ga naar de BIOS, zoek de MTRR instelling (waarschijnlijk onder "CPU instelingen"). Verander de optie van "continuous" naar "discrete" en start terug op in Linux. Je zult nu merken dat er geen "uncachable" meer is, en 2D acceleratie nu gewoon werkt zonder problemen.

Ik krijg waarschuwingen over niet geondersteunde 4K stack grootte

nvidia-kernel pakketten die ouder zijn dan 1.0.6106 ondersteunen alleen maar kernels die een 8K stack grootte. Meer recentere kernels (2.6.6 en hoger) hebben ook ondersteuning voor 4k stack groottes. Selecteer niet "4k stack size" in je kernel configuratie als je zo'n nvidia-kernel pakket gebruikt. Je kunt deze optie vinden in de sectie Kernel Hacking.

Als ik probeer om de kernel module te laden, krijg ik "no such device"

Dit komt meestal voora ls je geen kaart hebt die overeen komt met je video kaart. Controleer dat je een nVidia-ondersteunende kaart hebt. (Je kunt dit hercontroleren met lspci).

Als je zeker bent dat je een nVidia kaart hebt, controleer je BIOS en kijk of de richtlijn Assign IRQ to VGA ingeschakeld is.

Ik krijg "no screens found" en vindt in de logs "Failed to initialize the NVIDIA kernel module!"

Je mist hoogst waarschijnlijk de /dev/nvidia* apparaat bestanden. Maak ze aan door NVmakedevices.sh te gebruiken:

Codevoorbeeld 3.2: Aanmaken van nvidia aparaat bestanden

# /sbin/NVmakedevices.sh

Als je /dev/nvidia* aparaten steeds verdwijnen na het opnieuw opstarten; dan heb je hoogst waarschijnlijk een verkeerde instelling in /etc/conf.d/rc pas dit bestand als volgt aan:

Codevoorbeeld 3.3: Editing /etc/conf.d/rc

RC_DEVICE_TARBALL="yes"

Dit zal de bestanden /dev/nvidia* reserveren zelfs na opnieuw op te starten.

Nota: Als alternatief kun je ook proberen de laatste nvidia-kernel en nvidia-glx van de 8xxx series installeren. Op het moment van dit schrijven, zijn bijde nog steeds onder "~arch" geplaatst. Deze drivers hangen niet meer af van hotplug of udev om de nodige apparaatbestanden aan te maken. Dit zal wel een recente kernel vereisen (2.6.14 en hoger).

4.  Configuratie voor experten

Documentatie

De nVidia driver pakket heeft ook zijn eigen documentatie. Die is geinstalleerd in /usr/share/doc en kan bekeken worden met het volgende commando:

Codevoorbeeld 4.1: Bekijken van de NVIDIA documentatie

# less /usr/share/doc/nvidia-glx-*/README.txt.gz

Kernel module parameters

De nvidia kernel module accepteerd een aantal parameters (opties) die je toelaten het gedrag van de driver te veranderen. Meeste van die parameters staan vermeld in de documentatie. Pas het /etc/modules.d/nvidia bestand aan en voer modules-update uit na het aanpassen. Daarna moet je de nvidia module opnieuw laden vooraleer je iets merkt.

Codevoorbeeld 4.2: Aanpassen van nvidia opties

(Pas /etc/modules.d/nvidia aan in je favoriete programma)
# nano -w /etc/modules.d/nvidia
(Updaten van de module informatie)
# modules-update
(Ontladen van de nvidia module...)
# modprobe -r nvidia
(... en terug laden)
# modprobe nvidia

Gevorderde X configuratie

De GLX laag heeft ook een overvloed aan opties die kunnen ingesteld worden. Deze controleren de configuratie van de TV-uitgang, meerdere monitors, frequentie detectie enz. Al deze opties staan uigebreid uitgelegt in de documetatie.

Als je wenst om enige van deze opties te gebruiken, moet je ze gebruiken zoals hieronder beschreven. Deze natuurlijk in het "device" sectie van je X configuratie bestand (meestal /etc/X11/xorg.conf). Voor een voorbeeld-configuratie, neem nu dat je het opstartlogo niet wilt zien:

Codevoorbeeld 4.3: Gevorderde nvidia configuratie in de X configuratie

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  Option     "NoLogo" "true"
  VideoRam   65536
EndSection


Print

Upgedate op 26 mei 2006

De originele versie van dit document wordt niet meer onderhouden

Korte inhoud: Veel Gentoo-ers hebben een nVidia chipset op hun systeem. nVidia levert specefieke Linux drivers om de prestraties van je kaart te verbeteren. Deze gids informeert je hoe je die kunt installeren en hoe je die drivers kunt configureren.

Sven Vermeulen
Author

M Curtis Napier
Editor

Joshua Saddler
Editor

Dimitry Bradt
Translator

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.