Guida nVidia per Gentoo Linux

Contenuti:

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
(Controllare che linux punti alla giusta directory)
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

(Editare /etc/modules.d/nvidia con l'editor preferito)
# nano -w /etc/modules.d/nvidia
(Aggiornare le informazioni sul modulo)
# modules-update
(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. 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


Ultimo aggiorn.:
2005-10-25
Sven Vermeulen
Autore

M Curtis Napier
Autore

Gianluca Mazza
Traduzione

Sommario:  Molti Gentooisti hanno un chipset nVidia sui loro sistemi. nVidia fornisce driver specifici per Linux per incrementare le performance della vostra scheda video. Questa guida spiega come installare e configurare questi driver.
- 2002 Gentoo.it - Domande, commenti e/o correzioni? Email gentoo-dev@gentoo.it.