Gentoo Logo

Ghid Gentoo pentru nVidia

Conţinut:

1.  Introducere

nVidia au publicat driver-ele lor proprii de Linux ce oferă performanţe bune şi accelerare 3D totală. Versiunile publicate ale driver-elor sunt împărţite în două părţi: nvidia-kernel şi nvidia-glx.

nvidia-kernel este un driver de kernel ce manipulează o comunicare la nivelul inferior cu componentele video hardware. Acesta constă pur şi simplu într-un modul de kernel, denumit nvidia, ce se instalează utilizând sursele dvs. de kernel şi este necesar a fi încărcat de oricâte ori doriţi să utilizaţi driver-ele nvidia.

La fel ca şi driver-ul de kernel, trebuie să instalaţi nivelul GLX pentru X11 (nvidia-glx). Acesta este utilizat de X pentru a interpreta informaţiile grafice, ce utilizează intern driver-ul de kernel nvidia-kernel pentru a interfaţa cu componentele hardware.

2.  Configurarea Plăcii Dumneavoastră

Configurarea Kernel-ului

Aşa cum am menţionat anterior, driver-ul de kernel nVidia se instalează şi rulează pe baza kernel-ului ce rulează curent. Se compilează ca modul, deci are sens suportul kernel-ului dvs. pentru încărcarea modulelor de kernel. Dacă aţi folosit genkernel ca să configuraţi kernel-ul sunteţi pregătiţi. Dacă nu, mai faceţi încă o verificare în configurarea kernel-ului pentru ca acest suport să fie activ:

Cod 2.1: Activarea Încărcării de Module

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

Va trebui, de asemenea, să activaţi în kernel opţiunea Memory Type Range Register:

Cod 2.2: Activarea MTRR

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

De asemenea, va trebui să adăugaţi suportul agpgart în kernel-ul dvs., fie compilat, fie ca modul:

Cod 2.3: Activarea agpgart

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

Note specifice de arhitectură

Important: Pentru procesoarele x86 şi AMD64, dacă driver-ul integrat în kernel intră în conflict cu driver-ul binar oferit de nVidia. Dacă vă veţi compila kernel-ul pentru aceste procesoare, trebuie să îndepărtaţi complet suportul pentru driver-ul din kernel, ca mai jos:

Cod 2.4: Îndepărtarea driver-ului din kernel

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

O alternativă bună de framebuffer este VESA:

Cod 2.5: Activarea suportului VESA

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

Apoi, sub "VESA driver type" selectaţi fie vesafb sau vesafb-tng:

Cod 2.6: Selectaţi tipul de framebuffer

( ) vesafb
(X) vesafb-tng

Pentru mai multe informaţii, puteţi consulta /usr/src/linux/Documentation/fb/vesafb.txt dacă utilizaţi vesafb sau căutaţi documentaţia de framebuffer în /usr/src/linux/Documentation/fb/.

Continuarea Configurării Kernel-ului

Modulele nVidia şi librăriile sunt găsite în două pachete: nvidia-glx şi nvidia-kernel. Primele sunt librăriile X11 GLX în timp ce ultimele sunt modulele de kernel.

Ebuild-ul pachetului nvidia-kernel descoperă automat versiunea dvs. de kernel pe baza link-ului simbolic /usr/src/linux. Vă rugăm să vă asiguraţi că acest link simbolic indică spre sursele corecte de kernel şi că acestea sunt configurate corect. Vă rugăm să consultaţi secţiunea despre Configurarea Kernel-ului din Manualul de Instalare pentru detalii despre configurarea kernel-ului dvs.

Dacă utilizaţi gentoo-sources-2.6.11-r6, conţinutul directorului /usr/src ar trebui să fie ca în următorul exemplu:

Cod 2.7: Verificaţi link-ul simbolic /usr/src/linux

# cd /usr/src
# ls -l
(Verificaţi că linux indică spre directorul corect)
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

În textul afişat mai sus, veţi observa că link-ul simbolic linux indică spre kernel-ul linux-2.6.11-gentoo-r6.

Dacă link-ul simbolic nu indică spre sursele corecte, trebuie să îl actualizaţi în modul următor:

Cod 2.8: Creaţi/Actualizaţi link-ul simbolic /usr/src/linux

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

Opţional: Verificarea Suportului pentru Plăcile Vechi

Notă: Din păcate, unele plăci video mai vechi nu sunt suportate de către versiunile mai noi de nvidia-glx şi nvidia-kernel. nVidia oferă o listă de plăci suportate. Vă rugăm să verificaţi lista înainte de a instala driver-ele.

Urmează o listă de plăci video vechi nesuportate:

Cod 2.9: Plăci nesuportate

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

Dacă aveţi una din aceste plăci va trebui să mascaţi versiunile mai noi ale driver-elor nVidia şi să instalaţi o versiune mai veche:

Cod 2.10: Mascarea driver-elor mai noi

# 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

Instalarea Driver-elor Aferente

Acum este timpul să instalaţi nvidia-kernel şi nvidia-glx. Deoarece nvidia-glx depinde de nvidia-kernel, instalarea nvidia-glx este suficientă:

Cod 2.11: Instalarea modulelor nVidia

# emerge nvidia-glx

Important: De fiecare dată când compilaţi un nou kernel sau îl recompilaţi pe cel curent, trebuie să rulaţi şi emerge nvidia-kernel pentru a reinstala modulele nVidia. nvidia-glx nu este afectat de modificările de kernel şi nu trebuie reinstalat nici măcar când recompilaţi/actualizaţi X.

Odată ce instalarea s-a finalizat, executaţi comanda modprobe nvidia pentru a încărca modulele de kernel în memorie.

Cod 2.12: Încărcarea modulelor de kernel

# modprobe nvidia

Pentru a preveni încărcarea manuală a modulului la fiecare pornire a sistemului, probabil că doriţi această operaţie să fie efectuată automat de fiecare dată când sistemul dumneavoastră porneşte, aşa că editaţi /etc/modules.autoload.d/kernel-2.6 (sau kernel-2.4) şi adăugaţi nvidia în acesta. Nu uitaţi să rulaţi modules-update ulterior.

Important: Dacă aţi compilat agpgart ca modul, va trebui să-l adăugaţi în fişierul /etc/modules.autoload.d/kernel-2.6 (sau kernel-2.4, în funcţie de versiunea dvs. de kernel).

Cod 2.13: Rularea modules-update

# modules-update

Configurarea Serverului X

Odată ce driver-ele aferente au fost instalate trebuie să configuraţi Serverul X (XFree86 sau Xorg) pentru a folosi driver-ul nvidia în loc de driver-ul nv implicit.

Deschideţi /etc/X11/xorg.conf (sau /etc/X11/XF86Config dacă încă mai utilizaţi locaţia mai veche a fişierului de configurare) cu editorul dumneavoastră favorit (spre exemplu nano sau vim) şi căutaţi linia cu secţiunea Device. În aceea secţiune, schimbaţi linia Driver:

Cod 2.14: Schimbarea de la nv la nvidia în configuraţia X

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

Apoi căutaţi secţiunea Module şi asiguraţi-vă că modulul glx este definit pentru a fi încărcat şi că modulul dri, nu:

Cod 2.15: Actualizarea secţiunii Module

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

Apoi, în secţiunea Screen, asiguraţi-vă, fie că directiva DefaultDepth este setată la 16 sau 24, fie că aveţi subsecţiuni Display cu setări Depth la 16 sau 24. Fără aceasta, extensiile nvidia-glx nu vor porni.

Cod 2.16: Actualizarea secţiunii Screen

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

Rulaţi eselect pentru ca aplicaţia server X să folosească librăriile nVidia GLX:

Cod 2.17: Rularea eselect

# eselect opengl set nvidia

Adăugarea de Utilizatori în Grupul video

Va trebui să adăugaţi utilizatorul dvs. în grupul video pentru a avea acces la fişierele dispozitiv nvidia:

Cod 2.18: Adăugarea utilizatorului dvs. în grupul video

# gpasswd -a youruser video

Aceasta nu este în totalitate necesar dacă nu utilizaţi udev, dar nu vă poate afecta în nici un mod, şi vă va pregăti sistemul pentru viitor :)

Testarea plăcii dumneavoastră

Pentru a testa placa dumneavoastră nVidia, lansaţi X şi rulaţi comanda glxinfo | grep direct. Ar trebui să afişeze că direct rendering este activat:

Cod 2.19: verificarea stării direct rendering

$ glxinfo | grep direct
direct rendering: Yes

Pentru a monitoriza FPS (numărul de cadre pe secundă), rulaţi glxgears.

Activarea Suportului nvidia

Unele utilitare, cum ar fi mplayer şi xine-lib, utilizează un indicator USE local, denumit "nvidia" care activează suportul XvMCNVIDIA, util în cazul filmelor cu rezoluţie mare. Adăugaţi "nvidia" în definiţia variabilei dvs. USE din /etc/make.conf sau adăugaţi-l ca indicator USE pentru media-video/mplayer şi/sau media-libs/xine-lib în /etc/portage/package.use.

Apoi, rulaţi emerge -uD --newuse world pentru a recompila toate aplicaţiile ce beneficiază de modificarea acestui indicator USE.

Folosirea Utilitarului NVidia Settings

Începând din momentul în care NVidia a publicat versiunea 1.0.6106, v-a oferit, de asemenea, o unealtă de setare. Acest utilitar vă permite să modificaţi setările grafice fără a reporni server-ul X şi este disponibilă în Portage ca media-video/nvidia-settings.

3.  Probleme

Activarea funcţionalităţilor 2D pe maşinile cu mai mult de 4GO Memorie

Dacă aveţi probleme cu accelerarea 2D de la nVidia, cel mai probabil nu puteţi seta o plajă valorică pentru proprietatea write-combining cu MTRR. Pentru a verifica, analizaţi conţinutul fişierului /proc/mtrr:

Cod 3.1: Verificarea dacă este activată proprietatea write-combining

# cat /proc/mtrr

Fiecare linie ar trebui să conţină "write-back" sau "write-combining". Dacă este o linie ce conţine "uncachable" în acest fişier, va trebui să schimbaţi o setare din BIOS pentru a repara eroarea.

Reporniţi şi intraţi în mediul BIOS, căutaţi setările MTRR (probabil sub "CPU Settings"). Schimbaţi setarea din "continuous" în "discrete" şi porniţi înapoi în Linux. ACum, veţi observa că nu mai există nici o intrare cu valoarea "uncachable" şi accelerarea 2D funcţionează fără probleme.

Primesc mesaje de eroare despre mărimi de stivă de 4K nesuportate (unsupported 4K stack sizes)

Pachetele nvidia-kernel mai vechi de versiunea 1.0.6106 suportă doar versiuni de kernel ce utilizează mărimea stivei de 8K. Versiunile mai recente de kernel (2.6.6 sau mai noi) conţin suport pentru mărimea stivei de 4K, de asemenea. Nu selectaţi mărimea stivei de 4K în configuraţia dvs. de kernel, dacă utilizaţi o asemenea versiune a pachetului nvidia-kernel. Puteţi găsi această opţiune în secţiunea Kernel Hacking.

Când încerc să încarc un modul de kernel primesc mesajul "no such device"

Aceasta se întâmplă, de obicei, când nu aveţi o placă video care să se potrivească. Asiguraţi-vă că aveţi o placă grafică de la nVidia (puteţi să verificaţi încă o dată acest lucru utilizând lspci).

Dacă sunteţi convins că aveţi o placă nVidia, verificaţi in sistemul BIOS dacă aveţi activată directiva Assign IRQ to VGA.

Primesc erori "no screens found" iar în loguri este scris mesajul "Failed to initialize the NVIDIA kernel module!"

Cel mai probabil este fapul că vă lipsesc fişierele dispozitiv /dev/nvidia*. Creaţi-le utilizând NVmakedevices.sh:

Cod 3.2: Crearea nodurilor dispozitiv nvidia

# /sbin/NVmakedevices.sh

Dacă dispozitivele dvs. /dev/nvidia încă lipsesc de fiecare dată când reporniţi, atunci cel mai probabil este din cauza faptului că udev nu creează în mod automat nodurile dispozitiv. Puteţi repara această problema prin rularea din nou a NVmakedevices.sh, şi apoi editarea fişierului /etc/conf.d/rc ca:

Cod 3.3: Editarea /etc/conf.d/rc

RC_DEVICE_TARBALL="yes"

Aceasta vă va păstra nodurile dvs. /dev/nvidia chiar şi dacă reporniţi.

Notă: Alternativ, aţi putea să încercaţi să instalaţi ultima versiune a nvidia-kernel şi nvidia-glx din seria 8xxx. În momentul redactării, ambele sunt încă marcate ~arch. Aceste driver-e nu se mai bazează pe hotplug sau udev pentru a crea nodurile dispozitiv, deci nu va mai trebui să rulaţi NVmakedevices.sh. În loc, însuşi driver-ul X vă va crea fişierele /dev/nvidia când porniţi X. Totuşi, aceasta va necesita utilizarea unui kernel recent (2.6.14 sau mai nou).

4.  Configurare Avansată

Documentaţie

Pachetul driver-ului nVidia conţine, de asemenea, o documentaţie comprehensivă. Aceasta este instalată în /usr/share/doc şi poate fi vizualizată cu următoarea comandă:

Cod 4.1: Vizualizarea documentaţiei NVIDIA

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

Parametrii modulelor de kernel

Modulul de kernel nvidia acceptă un număr de parametri (opţiuni) ce pot fi utilizaţi pentru a personaliza comportamentul driver-ului. Cei mai mulţi dintre aceştia sunt menţionaţi în documentaţie. Pentru a adăuga sau modifica valorile acestor parametri, editaţi fişierul /etc/modules.d/nvidia. Amintiţi-vă să rulaţi modules-update după ce modificaţi acest fişier şi ţineţi minte că trebuie să reîncărcaţi modulul nvidia înainte ca setările să aibă efect.

Cod 4.2: Ajustarea opţiunilor nvidia

(Editaţi /etc/modules.d/nvidia cu editorul dvs. favorit)
# nano -w /etc/modules.d/nvidia
(Actualizaţi informaţiile despre module)
# modules-update
(Descărcaţi modulul nvidia...)
# modprobe -r nvidia
(...şi încărcaţi-l încă o dată)
# modprobe nvidia

Configurare avansată pentru X

Nivelul GLX are, de asemenea, o mulţime de opţiuni ce pot fi configurate. Acestea controlează configuraţia ieşirii TV, afişări pe două monitoare, detecţia frecvenţei monitorului, etc. Din nou, toate aceste opţiuni disponibile sunt detaliate în documentaţie.

Dacă doriţi să utilizaţi oricare din aceste opţiuni, va trebui să le includeţi în secţiunea Device relevantă din fişierul de configurare al X (de obicei /etc/X11/xorg.conf). Spre exemplu, presupunând că se doreşte dezactivarea imaginii logo:

Cod 4.3: Configurare avansată pentru nvidia în configuraţia X

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


Imprimare

Actualizat la 26 Mai 2006

Versiunea originală a acestui document a fost actualizată ultima dată la 6 Martie 2008

Sumar: Mulţi utilizatori Gentoo au pe sistemul lor un chipset nVidia. nVidia asigură drivere specifice pentru Linux pentru a îmbunătăţi performanţele plăcii. Acest ghid vă informează cum să instalaţi şi să configuraţi aceste drivere.

Sven Vermeulen
Autor

M Curtis Napier
Editor

Joshua Saddler
Editor

Talos Teodor
Translator

Alin Dobre
Translator

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Bytemark

Bytemark

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