Guida nVidia per Gentoo Linux
1.Introduzione
nVidia rilascia i propri driver Linux che forniscono buone performance e piena accelerazione 3D.
I rilasci di driver sono divisi in due parti: nvidia-kernel e nvidia-glx.
nvidia-kernel è un driver del kernel che manipola le comunicazioni di basso livello
con la scheda grafica. Si tratta semplicemente di un modulo del kernel, chiamato
nvidia, che si installa nei sorgenti del kernel e necessita di essere caricato ogni volta
che si vogliono usare i driver nvidia.
Così come i driver del kernel, si devono installare le librerie X11 GLX
(nvidia-glx). Che viene usata da X per la renderizzazione grafica, che usa
internamente nvidia-kernel driver del kernel che si interfacciano con l'harware.
2.Configurare la scheda
Installare i drivers appropriati
Come detto prima, i driver nVidia si installano e girano nel kernel in uso.
Vengono compilati come modulo, per cui è necessario che il kernel supporti il caricamento dei moduli.
Se si usa genkernel per configuare il kernel è già impostato. In caso contrario, verificare
che il kernel sia abilitato al supporto.
Esempio 1: Abilitare il caricamento dei moduli del kernel |
Loadable module support --->
[*] Enable loadable module support
|
E' anche necessario abilitare Memory Type Range Register nel kernel:
Esempio 2: Abilitare MTRR |
Processor and Features --->
[*] MTRR (Memory Type Range Register) support
|
I moduli e le librerie nVidia sono organizzate in due pacchetti: nvidia-glx
e nvidia-kernel. Il primo è la libreria X11 e GLX mentre il secondo è
modulo del kernel.
L' ebuild nvidia-kernel rileva automaticamente la versione del kernel basandosi sul
link simbolico /usr/src/linux. Assicurarsi di avere questo link simbolico
che punti ai sorgenti corretti e che il kernel sia configurato correttamente.
Consultare la sezione di configurazione del kernel di Manuale di installazione per i dettagli di configurazione
Se si usano i gentoo-sources-2.6.11-r6, la directory /usr/src sarà:
Esempio 3: Verificare il collegamento simbolico /usr/src/linux |
# cd /usr/src
# ls -l
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
|
Nell' output riportato sopra, si noterà che i link simbolico linux punta
al kernel linux-2.6.11-gentoo-r6.
Se il link simbolico non punta ai sorgenti corretti, si può aggiornare il link
in questo modo:
Esempio 4: Creare/Aggiornare il link simbolico /usr/src/linux |
# cd /usr/src
# ln -snf linux-2.6.11-gentoo-r6 linux
|
E' arrivato il momento di installare nvidia-kernel e nvidia-glx.
Visto che nvidia-glx dipende da nvidia-kernel, è sufficiente installare
nvidia-glx:
Esempio 5: Installare i moduli nVidia |
# emerge nvidia-glx
|
Importante:
Ogni qual volta si compilerà un nuovo
kernel o si ricompilerà quello corrente, sarà necessario lanciare emerge
nvidia-kernel per reinstallare i moduli nvidia. nvidia-glx non risente dei cambiamenti di kernel
e non necessita di essere reinstallato quando si ricompila/aggiorna il kernel.
|
Una volta completata l'installazione, lanciare modprobe per caricare il
modulo del kernel in memoria.
Esempio 6: Caricare il modulo del kernel |
# modprobe nvidia
|
Per evitare di dover caricare manualmente il modulo ad agni avvio, si vorrà
probabilmente fare in modo che che questo avvenga in automatico ad ogni accensione del sistema,
per cui editare /etc/modules.autoload.d/kernel-2.6 (oppure kernel-2.4,
in realzione alla versione di kernel usata) e aggiungere nvidia.
Non dimenticarsi di lanciare modules-update dopo
Esempio 7: Lanciare modules-update |
# modules-update
|
Configurare il server X
Una volta che i driver appropriati sono installati è necessario configurare il server X
(Xfree86 o Xorg) per usare i driver nvidia al posto dei driver di default
nv.
Aprire /etc/X11/xorg.conf (oppure /etc/X11/XF86Config
se si usa ancora la vecchia configurazione)con l'editor preferito (per esempio
nano o vim) e andare alla sezione Device. In quella sezione
, cambiare cambiare la linea Driver:
Esempio 8: Cambiare nv in nvidia nella configurazione di X Server |
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
VideoRam 65536
EndSection
|
Poi andare nella sezione Module ed assicurarsi che il modulo glx venga caricato
mentre il modulo dri no.
Esempio 9: Aggiornare la sezione Module |
Section "Module"
# Load "dri"
Load "glx"
EndSection
|
Poi nella sezione Screen, assicurarsi che la direttiva DefaultDepth
sia settata a 16 o a 24, o che si abbia solamente la subsezione Display
con Depth settata a 16 o 24. Senza di questo, le estensioni nvidia-glx
non funzioneranno.
Esempio 10: Aggiornare la sezione Screen |
Section "Screen"
DefaultDepth 16
Subsection "Display"
EndSection
|
Lanciare opengl-update in modo che X server usi le librerie nVidia GLX:
Esempio 11: Lanciare opengl-update |
# opengl-update nvidia
|
Aggiungere gli utenti al gruppo video
Si deve aggiungere l'utente al gruppo video in modo che possa accedere
ai file della periferica nvidia.
Esempio 12: Aggiungere gli user al gruppo video |
# gpasswd -a youruser video
|
Questo potrebbe non essere necessario se non si usa udev ma neanche
danneggiare il sistema e renderlo a prova di futuro :)
Testare la scheda
Per testare la scheda nVidia, avviare X e dare il comando glxinfo | grep direct.
Si dovrebbe avere il direct rendering attivato:
Esempio 13: Verificare lo stato del direct rendering |
$ glxinfo | grep direct
direct rendering: Yes
|
Per monitorare l' FPS, lanciare glxgears
Attivare nvidia Support
Alcuni tools come mplayer e xine-lib usano una USE flag chiamata
"nvidia" che abilita il supporto XvMCNVIDIA, utile quando si guardano film ad alta
risoluzione. Aggiungere "nvidia" tra le USE presenti in /etc/make.conf
oppure aggiungerlo come USE flag a media-video/mplayer e/o
media-libs/xine-lib in /etc/portage/package.use.
Poi lanciare emerge -uD --newuse world per reinstallare le applicazioni
che beneficeranno dal cambiamento delle USE flag.
Usare il tool Nvidia Setting
Dalla versione 1.0.6106 NVvdia fornisce un tool di settaggio.
Questo tool permette di cambiare le impostazioni grafiche senza riavviare X server
e è presente nel portage in media-video/nvidia-settings
3.Risoluzione dei problemi
Far lavorare 2D su macchine con 4 Gb o piu' di memoria
Se si hanno problemi con l'accelerazione nVidia 2D è probabile che non si
riesca a settare un range write-combining con MTRR. Per verificare controllare
il contenuto di /proc/mtrr
Esempio 14: Verificare se il write-combining è abilitato |
# cat /proc/mtrr
|
Ogni linea dovrebbe contenere "write-back" o "write-combining". Se si nota
una linea con "uncachable" sarà necessario cambiare l' impostazione del BIOS.
Riavviare e entrare nel BIOS, e cercare le impostazioni MTRR (probabilmente sotto
"Impostazioni della CPU"). Cambiare le impostazioni da "continuo" a "discreto" e avviare Linux.
Ora si troverà che non c'è più "uncachable" e l'accelerazione 2D funziona senza errori.
Ho ricevuto avvisi su 4K stack sizes non supportati
I pacchetti nvidia-kernel più vecchi di 1.0.6106 supportano solo kernel che usano 8K stack size.
I kernel più recenti (2.6.6 e superiori) hanno il supporto per lo stack size 4K.
Non selezionare 4K stack size nel kernel
se si usano pachetti nvidia-kernel.
Questa opzione si trova nella sezione Kernel Hacking.
Mi aspettavo che venisse caricato il modulop del kernel e ho ricevuto "no such device"
Questo accade generalmente quando si una scheda video non compatibile.
Assicursi di avere una scheda grafica NVidia-powered (lo si può veficare
usando lspci
Se si è sicuri di avere una scheda nVidia, controllare il BIOS e verificare che la
direttiva Assign IRQ to VGA sia settata.
4.Configurazione per esperti
Documentazione
I driver nVidia vengono forniti con una documentazione completa.
Questa viene installata in /usr/share/doc e può essere
consultata con il seguente comando:
Esempio 15: Consultare la documentazione NVIDIA |
# less /usr/share/doc/nvidia-glx-*/README.txt.gz
|
Parametri dei moduli del Kernel
Il modulo nvidia accetta un numero di parametri (opzioni) che si possono
usare per migliorare il comportamento dei driver. Molti di questi sono menzionati
nella documentazione. Per aggiungere o cambiare il valore di questi editare il file
/etc/modules.d/nvidia. Ricordarsi di eseguire modules-update dopo aver
editato questo file, e sarà necessario ricaricare il modulo nvidia
prima che la nuova impostazione abbia effetto.
Esempio 16: Settaggio delle opzioni nvidia |
# nano -w /etc/modules.d/nvidia
# modules-update
# modprobe -r nvidia
# modprobe nvidia
|
Configurazione Avanzata di X
Le librerie GLX contengono una serie di opzioni che possono essere configurate.
Questi controllano la configurazione dell uscita TV, il dual display, la rilevazione
della frequenza del monitor etc...Anche per queste esiste una documentazione dettagliata.
Se si desidera usare una di queste opzioni , nella relativa sezione Device
del file di configurazione di X (generalmente /etc/X11/xorg.conf).
Per esempio, supponiamo di voler disabilare il logo allo splash:
Esempio 17: Configurazione avanzata nvidia nella configurazione di X |
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
Option "NoLogo" "true"
VideoRam 65536
EndSection
|
|