Guida nVidia per Gentoo Linux
1.
Introduzione
I driver nVidia disponibili in Portage vengono rilasciati dalla stessa nVidia e
la loro compilazione si appoggia al kernel Linux. Contengono una piccola parte
binaria che svolge il pesante lavoro della comunicazione con la scheda grafica.
I driver consistono di due parti, un modulo del kernel e un driver per X11,
entrambi inclusi in un singolo pacchetto. A causa della modalità di rilascio dei
driver da parte di nVidia, bisognerà fare delle scelte prima di installarli nel
proprio sistema.
Il pacchetto nvidia-drivers contiene i driver più recenti rilasciati da
nVidia con il supporto per tutte le schede grafiche, con diverse versioni
disponibili in base a quanto vecchia è la propria scheda. Questo pacchetto usa
un'eclass per rilevare che tipo di scheda si sta usando in modo da installare la
giusta versione del driver.
2.
Compatibilità dei driver
Quale versione?
Il pacchetto nvidia-drivers supporta l'elenco completo delle schede
nVidia disponibili. Sono disponibili multiple versioni per l'installazione, in
base alla scheda che si possiede.
I possessori delle nuove schede appartenenti alle serie Geforce 8, 7, 6 e FX 5
dovrebbero usare i nuovi driver della serie 100.x.
Le schede più vecchie come quelle delle serie Geforce 3 o Geforce 4 richiedono
i driver 96.x. Per queste schede, bisogna mascherare
>=x11-drivers/nvidia-drivers-97.00 nel proprio file di configurazione
/etc/portage/package.mask per prevenire che vengano installate
le nuove versioni dei driver, incompatibili con la propria scheda.
Le vecchie schede basate su chip NV2x (come TNT, TNT2, Geforce e Geforce 2)
richiedono i vecchi driver 71.x (come nvidia-drivers-71.86.01). Per
queste schede bisogna mascherare >=x11-drivers/nvidia-drivers-87.00
nel proprio file di configurazione /etc/portage/package.mask.
È possibile verificare la compatibilità dei driver per la propria scheda
determinando quali driver la supportano leggendo il file README nell'appropriata
pagina di rilascio per
x86 o x86-64.
3.
Configurare la scheda
Configurazione del Kernel
Come accennato in precedenza, i driver nVidia si installano e vengono eseguiti
nel kernel in uso. Vengono compilati come modulo, per cui è necessario che il
kernel supporti il caricamento dei moduli. Se è stato usato genkernel
all per configurare automaticamente il kernel, il supporto sarà sicuramente
abilitato. In caso contrario, verificarne l'abilitazione controllando
attentamente la configurazione:
Codice 3.1: Abilitare il caricamento dei moduli del kernel |
Loadable module support --->
[*] Enable loadable module support
|
E' inoltre necessario abilitare il supporto Memory Type Range Register:
Codice 3.2: Abilitare MTRR |
Processor and Features --->
[*] MTRR (Memory Type Range Register) support
|
Inoltre, se si ha una scheda grafica AGP, si può opzionalmente abilitare il
supporto nativo agpgart del kernel, compilandolo internamente o come
modulo. Se non si usa il supporto agpgart interno al kernel, allora i driver
useranno la propria implementazione agpgart, chiamata NvAGP. In
certi sistemi ciò comporta un miglioramento delle prestazioni, mentre in altri
un peggioramento delle stesse. Si dovranno valutare personalmente le due opzioni
sul proprio sistema, per ottenere i risultati migliori. Se non si è sicuri su
che supporto usare, usare l'agpgart interno del kernel:
Codice 3.3: Abilitare agpgart |
Device Drivers --->
Character devices --->
<*> /dev/agpgart (AGP Support)
|
Nota:
Su amd64, IOMMU controlla le impostazioni di agpgart.
|
Note specifiche per le architetture
Importante:
Per i processori x86 e AMD64, i driver interni al kernel vanno in conflitto con
i driver binari forniti da nVidia. Compilando il kernel per queste CPU, si deve
rimuovere completamente il supporto ai driver interni del kernel come mostrato:
|
Codice 3.4: Rimuovere i driver interni del kernel |
Device Drivers --->
Graphics Support --->
< > nVidia Framebuffer Support
< > nVidia Riva support
|
Un'alternativa per il framebuffer è VESA:
Codice 3.5: Abilitare il supporto a VESA |
Device Drivers --->
Graphics Support --->
[*] VESA VGA graphics support
|
Altrimenti, si può provare uvesafb, un framebuffer
avanzato. Tenere presente che si può scegliere di compilarlo all'interno
del kernel, o come modulo. Il seguente esempio compila uvesafb nel kernel.
Codice 3.6: Abilitare il supporto a uvesafb |
Device Drivers --->
Graphics Support --->
<*> Userspace VESA VGA graphics support
|
Per ulteriori informazioni, leggere la documentazione per il framebuffer
prescelto in /usr/src/linux/Documentation/fb/.
Continuare con la configurazione del Kernel
L'ebuild nvidia-drivers rileva automaticamente la versione del kernel
basandosi sul link simbolico /usr/src/linux. Assicurarsi che questo
link simbolico 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.
Per prima cosa, bisogna effettuare l'emerge di eselect (se non è già
stato installato). Se si usano i gentoo-sources-2.6.18-r4, la directory
/usr/src sarà:
Codice 3.7: Verificare il collegamento simbolico /usr/src/linux |
# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.18-gentoo-r4 *
[2] linux-2.6.20-gentoo-r7
[3] linux-2.6.20-gentoo-r8
|
Nell'output riportato sopra, si noterà che il kernel
linux-2.6.18-gentoo-r4 è marcato con un asterisco (*) per
mostrare che è il kernel a cui fa riferimento il collegamento simbolico.
Se il link simbolico non punta ai sorgenti corretti, bisogna aggiornare il
collegamento selezionando il numero dei sorgenti del kernel desiderati, come
nell'esempio seguente.
Codice 3.8: Creare/Aggiornare il link simbolico /usr/src/linux |
# eselect kernel set 1
|
Installare i driver appropriati
A questo punto si devono installare i driver.
Codice 3.9: Installare i driver nVidia |
# emerge nvidia-drivers
|
Nota:
I driver possono essere installati con la flag USE gtk impostata, che
installerà media-video/nvidia-settings, un amichevole strumento grafico
per monitorare e configurare diversi aspetti della propria scheda grafica
nVidia.
|
Importante:
Ogni volta che si compilerà un nuovo
kernel o si ricompilerà quello corrente, sarà necessario lanciare
emerge nvidia-drivers per reinstallare i moduli nVidia. Un modo più
semplice per tenere traccia dei moduli installati tramite gli ebuild (come
nvidia-drivers) è installare sys-kernel/module-rebuild. Una volta
installato, basta eseguire module-rebuild populate per popolare il suo
database con un elenco dei pacchetti da ricompilare. Una volta terminata la
compilazione o la ricompilazione di un kernel, basta eseguire module-rebuild
rebuild per ricompilare i driver per il proprio nuovo kernel.
|
Una volta completata l'installazione, lanciare modprobe per caricare il
modulo del kernel in memoria. Se è stato fatto un aggiornamento, bisogna prima
rimuovere il modulo precedente.
Codice 3.10: Caricare il modulo del kernel |
# lsmod | grep nvidia && rmmod nvidia
# modprobe nvidia
|
Per evitare di dover caricare manualmente il modulo ad agni avvio, è possibile
eseguire automaticamente questa operazione ad ogni accensione del sistema
aggiungendo la voce nvidia a
/etc/modules.autoload.d/kernel-2.6. Non dimenticarsi di lanciare
update-modules subito dopo.
Importante:
Se agpgart è stato compilato come modulo, bisogna aggiungerlo a
/etc/modules.autoload.d/kernel-2.6.
|
Codice 3.11: Eseguire update-modules |
# update-modules
|
Configurare il server X
Una volta che i driver appropriati sono installati è necessario configurare
il server X per usare i driver nvidia al posto dei driver predefiniti
nv.
Aprire /etc/X11/xorg.conf con l'editor preferito (per esempio
nano o vim) e andare alla sezione Device. In quella
sezione, cambiare cambiare la linea Driver:
Codice 3.12: Cambiare nv in nvidia nella configurazione di X Server |
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
VideoRam 65536
EndSection
|
Spostarsi nella sezione Module ed assicurarsi che il modulo glx
venga caricato mentre il modulo dri no.
Codice 3.13: 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.
Codice 3.14: Aggiornare la sezione Screen |
Section "Screen"
DefaultDepth 16
Subsection "Display"
EndSection
|
Lanciare eselect in modo che X server usi le librerie nVidia GLX:
Codice 3.15: Lanciare eselect |
# eselect opengl set nvidia
|
Aggiungere gli utenti al gruppo video
È necessario aggiungere l'utente al gruppo video per permettergli di
accedere ai file di periferica nVidia.
Codice 3.16: Aggiungere gli user al gruppo video |
# gpasswd -a tuoutente video
|
Questo potrebbe non essere necessario se non si usa udev, ma non arreca
nessun danno e rende la configurazione già pronta per futuri aggiornamenti.
Testare la scheda
Per testare la scheda nVidia, avviare X e dare il comando glxinfo,
incluso nel pacchetto mesa-progs. Il rendering diretto dovrebbe essere
attivato:
Codice 3.17: Verificare lo stato del rendering diretto |
$ glxinfo | grep direct
direct rendering: Yes
|
Per monitorare gli FPS (Frame Per Second), lanciare glxgears
Attivare nvidia Support
Alcuni strumenti come mplayer e xine-lib usano una USE flag
chiamata xvmc che abilita il supporto XvMCNVIDIA, utile quando si
guardano film ad alta risoluzione. Aggiungere la voce xvmc tra le USE
presenti in /etc/make.conf oppure aggiungerla come USE flag a
media-video/mplayer e/o media-libs/xine-lib in
/etc/portage/package.use.
Ci sono anche alcune applicazioni che usano la flag USE nvidia, pertanto
è possibile aggiungerla a /etc/make.conf.
Infine lanciare emerge -uD --newuse world per reinstallare le
applicazioni che beneficeranno dal cambiamento delle USE flag.
Usare lo strumento Nvidia Setting
nVidia fornisce un strumento di configurazione che permette di monitorare e
cambiare le impostazioni grafiche senza riavviare il server X ed è presente in
Portage tramite il pacchetto media-video/nvidia-settings. Come menzionato
in precedenza, tale pacchetto verrà installato automaticamente se si installano
i driver con la flag USE gtk impostata in /etc/make.conf o
in /etc/portage/package.use.
4.
Risoluzione dei problemi
Far funzionare il 2D su macchine con 4 Gb o più di memoria
Se si hanno problemi con l'accelerazione nVidia 2D è probabile che non si
riesca ad impostare un range write-combining con MTRR. Per verificare
controllare il contenuto di /proc/mtrr
Codice 4.1: 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 ed 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 funzionerà senza errori.
Tentando di caricare il modulo del kernel si riceve il messaggio "no such
device"
Questo accade generalmente quando si ha una scheda video non compatibile.
Assicurarsi di avere una scheda grafica NVidia-powered (lo si può verificare
usando lspci)
Se si è sicuri di avere una scheda nVidia, controllare il BIOS e verificare
che la direttiva Assign IRQ to VGA sia impostata.
5.
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:
Codice 5.1: Consultare la documentazione NVIDIA |
$ less /usr/share/doc/nvidia-drivers-*/README.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
modificare il file /etc/modules.d/nvidia. Ricordarsi di eseguire
update-modules a seguito delle modifiche, e che è necessario ricaricare
il modulo nvidia per applicare la nuove impostazioni.
Codice 5.2: Impostazione delle opzioni nvidia |
# nano -w /etc/modules.d/nvidia
# update-modules
# modprobe -r nvidia
# modprobe nvidia
|
Configurazione Avanzata di X
Le librerie GLX contengono una serie di opzioni che possono essere configurate
per controllare la configurazione dell'uscita TV, il dual display, la
rilevazione della frequenza del monitor ecc... Anche per queste esiste una
documentazione dettagliata.
Se si desidera usare una di queste opzioni, specificarla nella relativa sezione
Device del file di configurazione di X (generalmente /etc/X11/xorg.conf).
Per esempio, si supponga di voler disabilitare il logo di avvio:
Codice 5.3: Configurazione avanzata nvidia nella configurazione di X |
Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
Option "NoLogo" "true"
VideoRam 65536
EndSection
|
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|