Gentoo Logo

Guida nVidia per Gentoo Linux

Indice:

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 400, 300, 200, 100, 9, 8, 7 e 6 dovrebbero usare i driver più recenti.

Le schede meno recenti come quelle delle serie FX5 dovrebbero usare i driver 173.x, per esempio nvidia-drivers-173.14.15. Per queste schede, bisogna mascherare >=x11-drivers/nvidia-drivers-174.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 schede 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.

Le schede più vecchie basate su chip NV2x (come TNT, TNT2, Geforce e Geforce 2) non sono più supportate da >nvidia-drivers. Usare, invece, un driver open-source come xf86-video-nouveau (raccomandato) o xf86-video-nv (vecchio, deprecato).

È 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 --->
Graphics Support --->
-*- /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 --->
<*> Support for frame buffer devices --->
< >   nVidia Framebuffer Support
< >   nVidia Riva support

Un'alternativa per il framebuffer è 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.5: Abilitare il supporto a uvesafb

Device Drivers --->
Graphics Support --->
<*> Support for frame buffer devices --->
<*>   Userspace VESA VGA graphics support

Oppure si può provare VESA:

Codice 3.6: Abilitare il supporto a VESA

Device Drivers --->
Graphics Support --->
<*> Support for frame buffer devices --->
[*]   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 si usano i gentoo-sources-2.6.31-r1, l'elenco dei propri kernel potrebbe apparire più o meno così:

Codice 3.7: Verificare il collegamento simbolico /usr/src/linux

# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.34-gentoo-r1 *
  [2]   linux-2.6.33-gentoo-r2
  [3]   linux-2.6.32.9
Verificare che il kernel corretto sia marcato con un asterisco

Nell'output riportato sopra, si noterà che il kernel linux-2.6.34-gentoo-r1 è 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

Selezionare il kernel corretto
# eselect kernel set 1

Installare i driver appropriati

A questo punto si devono installare i driver. È possibile farlo seguendo come prima cosa la Guida alla configurazione di X server ed impostando la variabile VIDEO_CARDS="nvidia" in /etc/portage/make.conf. Durante l'installazione di X Server, verrà scelta automaticamente la versione corretta di nvidia-drivers.

Nota: I driver possono essere installati con la flag USE gtk impostata in /etc/portage/make.conf , 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 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.9: 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/conf.d/modules.

Importante: Se agpgart è stato compilato come modulo, bisogna aggiungerlo a /etc/conf.d/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.10: 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.11: 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.12: 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.13: 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.14: 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.15: 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/portage/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/portage/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/portage/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/modprobe.d/nvidia.conf. 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


(Modificare /etc/modprobe.d/nvidia.conf con l'editor preferito)

# nano -w /etc/modprobe.d/nvidia.conf
(Aggiornare le informazioni sul modulo)
# update-modules
(Scaricare il modulo nvidia) 
# modprobe -r nvidia
(...e caricarlo nuovamente)
# 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


Stampa

Aggiornato il 24 luglio 2012

La versione originale di questo documento non è più mantenuta

Oggetto: Molti utenti di Gentoo hanno un chipset nVidia sui loro sistemi. nVidia fornisce driver specifici per Linux per incrementare le prestazioni della propria scheda video. Questa guida spiega come installare e configurare questi driver.

Sven Vermeulen
Autore

Joshua Saddler
Autore

M Curtis Napier
Redazione

Chris Gianelloni
Redazione

Davide Cendron
Traduzione

Donate to support our development efforts.

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