NVIDIA/nvidia-drivers/it

Article description::The package contains the proprietary graphics driver for NVIDIA graphic cards. An open source alternative is nouveau.

This proprietary driver contains some wrapper functions that will compile against the Linux kernel and a binary blob that does the heavy lifting for talking to the card. The driver consists of two parts: a kernel module and an X11 driver. Both parts are included in a single package. Due to the way the drivers are packaged, it is necessary to make some choices before installing the drivers.

The package contains the latest drivers from NVIDIA with support for most NVIDIA graphic cards, with several versions available depending on the age of the card. It uses an eclass to detect what kind of card the system is running so that it installs the proper version.

Compatibilità hardware
The package supports a range of available NVIDIA cards. Multiple versions are available for installation, depending on the card(s) that the system has. See the official NVIDIA documentation, What's a legacy driver?, to find out what version of should be used. A pretty decent way to find this out through an interactive form. Enter the graphics card that is used by the system (mind the Legacy option in the 'Product Type' field) and the form should end up with the best supported version.

Se la scheda è stata identificata come legacy, mascherare le più recenti releases di, cioè

Si noti che Gentoo non fornisce la versione 71.86.xx. Se il sistema dispone di una scheda che ha bisogno di queste versioni di drivers, allora è consigliabile utilizzare il driver nouveau.

Kernel
As mentioned above, the NVIDIA kernel driver installs and runs against the current kernel. It builds as a module, so the kernel must support the loading of kernel modules (see below).

Il modulo del kernel è costituito da una parte proprietaria (comunemente nota come "binary blob") che pilota il chip grafico, e una parte open source (detta "glue") che durante il fuzionamento opera come intermediario tra la parte proprietaria e il kernel. Questi tutti hanno bisogno di lavorare bene insieme, altrimenti l'utente potrebbe trovarsi di fronte alla perdita di dati (attraverso kernel panic, X server crashing con i dati non salvati nelle applicazioni X) e anche guasti hardware (surriscaldamento e altre questioni di alimentazione relative che potrebbero venire in mente).

Compatibilità del kernel
Di tanto in tanto, una nuova release del kernel cambia l'ABI interno per i drivers, il che significa che tutti i drivers che utilizzano tali ABI devono essere modificati di conseguenza. Per i drivers open source, in particolare quelli distribuiti con il kernel, questi cambiamenti sono banali da risolvere dal momento che l'intera catena di chiamate tra i drivers e le altre parti del kernel possono essere riviste abbastanza facilmente. Per i drivers proprietari come nvidia.ko, non è proprio la stessa cosa. Quando l'ABI interno viene cambiato non è possibile sistemare semplicemente il "glue", perché nessuno sa come tale "glue" (collante) è utilizzato dalla parte proprietaria. Anche dopo essere riusciti a sistemare le cose e anche dopo che queste sembra funzionino bene, l'utente rischia ancora l'esecuzione di nvidia.ko nel nuovo kernel non supportato, e ciò porterà alla perdita di dati e guasti hardware.

When a new, incompatible kernel version is released, it is probably best to stick with the newest supported kernel for a while. NVIDIA usually takes a few weeks to prepare a new proprietary release they think is fit for general use. Just be patient. If absolutely necessary, then it is possible to use the epatch_user command with the nvidia-drivers ebuilds: this allows the user to patch nvidia-drivers to somehow fit in with the latest, unsupported kernel release. Do note that neither the nvidia-drivers maintainers nor NVIDIA will support this situation. The hardware warranty will most likely be void, Gentoo's maintainers cannot begin to fix the issues since it's a proprietary driver that only NVIDIA can properly debug, and the kernel maintainers (both Gentoo's and upstream) will certainly not support proprietary drivers, or indeed any "tainted" system that happens to run into trouble.

Se per configurare il kernel è stato utilizzato, ogni cosa è impostata. Se non è stato utilizzato, invece, va fatto un doppio controllo nella configurazione del kernel, in modo che il seguente supporto sia abilitato:

Abilitare anche il "Memory Type Range Register" nel kernel:

Se il sistema ha una scheda grafica AGP, abilitare opzionalmente l'agpgart supportato dal kernel, sia compilato direttamente nel kernel sia come modulo. Se il modulo agpgart compilato direttamente nel kernel non viene utilizzato, i drivers utilizzeranno la propria implementazione agpgart, chiamata NvAGP. Su alcuni sistemi, questa si comporta meglio rispetto alla agpgart compilata direttamente sul kernel, e su altri, invece, si comporta peggio. Valutare la scelta sul proprio sistema per ottenere le migliori prestazioni. Quando incerti sul da farsi, utilizzare l'agpgart compilato nel kernel:

Un'alternativa al framebuffer è uvesafb, che può essere installato parallelamente al pacchetto.

For (U)EFI systems, uvesafb will not work. Be warned that enabling efifb support in kernel causes intermittent problems with the initialization of the NVIDIA drivers. There is no known alternative framebuffer for (U)EFI systems.

Gli ebuild nvidia-drivers rilevano automaticamente la versione del kernel basato sul link simbolico. Si prega di assicurarsi che tale link simbolico punti ai sorgenti corretti e che il kernel sia configurato correttamente. Si prega di consultare la sezione "Configuring the Kernel" del Gentoo Handbook per dettagli sulla configurazione del kernel.

Primo, scegliere la giusta sorgente del kernel utilizzando. Quando si utilizza la versione 3.7.10 del pacchetto per esempio, la lista dei kernel potrebbe essere simile a questa:

In the above output, notice that the linux-3.7.10-gentoo kernel is marked with an asterisk to show that it is the kernel that the symbolic link points to.

Se il link simbolico non punta ai sorgenti corretti, aggiornare il collegamento selezionando il numero della versione del kernel desiderata, come nell'esempio precedente.

Drivers
Ora è tempo di installare i drivers. Primo, segui la guida X Server Configuration Guide e imposta  su. Durante l'installazione del server X, verrà installata la versione corretta del pacchetto.

Una volta terminata l'installazione, eseguire il comando per caricare il modulo del kernel in memoria. Se si tratta di un aggiornamento, rimuovere il modulo precedente.

Per evitare di dover caricare manualmente il modulo ad ogni avvio, per far si che questo sia fatto automaticamente ogni volta che il sistema viene avviato, editare ed aggiungerci.

Firmare i moduli del kernel (opzionale)
If secure boot kernel signing is used, then the NVIDIA kernel modules need to be signed before they can be loaded.

This can be accomplished by using the kernel-provided script as follows.

Come per la versione del driver 358.09, è stato fatto un nuovo modulo per la gestione della modalità monitor e per questa versione del driver deve essere firmato tale modulo.

Once the modules are signed, the driver will load as expected on boot up. This module signing method can be used to sign other modules too - not only the nvidia-drivers. Just modify the path and corresponding module accordingly.

L'X server
Una volta che i driver appropriati sono installati, configurare il server X per utilizzare il driver  invece che quello di default.

Run so that the X server uses the NVIDIA GLX libraries:

Abilitazione del supporto globale nvidia
Alcuni pacchetti, come ad esempio e, utilizzano una USE flag locale chiamata   la quale abilita il supporto XvMCNVIDIA, utile quando si guardano filmati ad alta risoluzione. Aggiungere  nella variabile USE sul file  o aggiungerla come USE flag su  e/o  su.

Le serie GeForce 8 e quelle successive sono dotate di supporto VDPAU che ha sostituito il supporto XvMCNVIDIA. Vedere l'articolo VDPAU per abilitare il supporto VDPAU.

Ci sono anche alcune applicazioni che utilizzano la USE flag, così che potrebbe essere una buona idea aggiungerla su.

Quindi, eseguire per ricompilare le applicazioni che beneficiano della variazione della USE flag.

Utilizzare lo strumento di impostazioni nVidia
NVIDIA also provides a settings tool. This tool allows the user to monitor and change graphical settings without restarting the X server and is available through Portage as part of with the   USE flag set.

Abilitazione OpenGL/OpenCL
Per abilitare OpenGL e OpenCL attraverso il dispositivo, eseguire:

Assicurarsi che il server Xorg non sia in esecuzione durante queste variazioni.

Testare la scheda
To test the NVIDIA card, fire up X and run, which is part of the package. It should say that direct rendering is activated:

Per monitorare gli FPS, eseguire.

Risoluzione dei problemi
For an overview of the currently open bugs reported against the package, take a look at the.

FATAL: modpost: GPL-incompatible module *.ko uses GPL-only symbol
When the ebuild is complaining about the 'mutex_destroy' GPL-only symbol:

Be sure to disable CONFIG_DEBUG_MUTEXES in the kernel's file, as suggested by this forum thread.

Il driver non viene inizializzato quando gli interrupt MSI sono abilitati
Il driver Linux NVIDIA utilizza Message Signaled Interrupts (MSI) come impostazione predefinita. Questo offre vantaggi di compatibilità e scalabilità, dovuti principalmente alla prevenzione di condivisione IRQ. Alcuni sistemi hanno problemi di supporto MSI, mentre lavorano bene con i virtual wire interrupts. Questi problemi si manifestano come l'incapacità di lanciare X con il driver NVIDIA, o errori di inizializzazione CUDA.

MSI interrupts può essere disabilitato tramite il parametro del modulo del kernel NVIDIA. Questo può essere impostato nella linea di comando durante il caricamento del modulo, o più appropriatamente tramite i files di configurazione del modulo del kernel della distribuzione (come quelli sotto ).

Per esempio:

Ottenere l'accelerazione 2D su macchine con memoria da 4 GB in su
When NVIDIA 2D acceleration is giving problems, then it is likely that the system is unable to set up a write-combining range with MTRR. To verify, check the contents of :

Ogni riga dovrebbe contenere  o. Quando una linea contiene  è necessario variare l'impostazione del BIOS per risolvere.

Riavviare e accedere al BIOS, poi trovare le impostazioni MTRR (probabilmente sotto "Impostazioni della CPU"). Modificare l'impostazione da  a   e avviare Linux. A questo punto non c'è più  e l'accelerazione 2D ora funziona senza errori.

"no such device" appare quando si cerca di caricare il modulo del kernel
Questo in genere è causato da uno dei seguenti problemi:


 * 1) The system does not have a NVIDIA card at all.  Check  output to confirm that the system has a NVIDIA graphics card installed and detected.
 * 2) The currently installed version of  does not support the installed graphics card model.  Check the README file in /usr/share/nvidia-drivers-*/ for a list of supported devices, or use the driver search at http://www.geforce.com/drivers.
 * 3) Another kernel driver has control of the hardware. Check  to see if another driver like "nouveau" is bound to the graphics card. If so, disable or blacklist this driver.

Xorg dice che non può trovare nessuno schermo
Quando l'avvio del sistema finisce con uno schermo nero o riga di comando invece dell'interfaccia grafica GUI, digitare ++ per spostarsi su una console virtuale. Successivamente eseguire:

per vedere il risultato di Xorg. Se uno dei primi errori è che Xorg non può trovare nessuno schermo, seguire i passi successivi per risolvere il problema.

Dovrebbe essere sufficiente eseguire il seguente comando prima dell'avvio:

Ma se non funziona, eseguire e notare che la scheda video inizia in questo modo:

Prendere il primo bit,  e metterlo nel file  con l'opzione  :

Direct rendering non è abilitato
Se direct rendering non funziona, questo può derivare dal fatto che il kernel ha Direct Rendering Manager attivato, il quale va in conflitto con il driver. Vedere lo stato di direct rendering seguendo le istruzioni nella sezione Testing the card.

Per prima cosa, disabilitare Direct Rendering Manager nel kernel:

Successivamente, ricostruire il pacchetto dal momento che il driver possa aver compilato il DRM del kernel. Questo dovrebbe risolvere il problema.

Riproduzione video a scatti o lenta
Lately there seems to be some breaking with playback of some types of video with the NVIDIA binary drivers, causing slow video playback or significant stuttering. This problem seems to be occurring within the Intel CPU Idle replacement instead of the common ACPI CPU idling method for certain CPU's.

Disable the Intel CPU idling method using  on the kernel command line boot method, which should cause the kernel to automatically fall back to the normal or older ACPI CPU idling method. Also, disabling the NVIDIA Powermizer feature, or setting Powermizer to maximum performance within has been said to help. Although the Intel CPU idling method recently was introduced as the default CPU idling method for i5 and i7 CPUs (versus using ACPI CPU idling) is the root cause here. This idling method significantly solves the problem, however some minimal stuttering or slow video is encountered if deinterlacing was enabled; this is when the video is likely already deinterlaced (ie. alias  with something similar to   as a work around.)

Nessuna sincronizzazione verticale (no VSync, lacerazione) nelle applicazioni OpenGL
Aggiungere la seguente opzione alla sezione screen, previene l'effetto lacerazione su GTX 660, 660 Ti, e probabilmente qualche altra GPUs (reference):

Documentazione
Anche il pacchetto viene fornito con una documentazione completa. Questo è installato dentro e può essere consultato con il seguente comando:

Parametri del modulo del kernel
The  kernel module accepts a number of parameters (options) which can be used to tweak the behavior of the driver. Most of these are mentioned in the documentation. To add or change the values of these parameters, edit the file. Remember to run after modifying this file, and bear in mind to reload the   module before the new settings take effect.

Edit the file, and afterwards update the module information:

Scaricare il modulo ...

... e caricarlo nuovamente:

Configurazioni di X avanzate
Anche GLX ha una vastità di opzioni che possono essere configurate. Queste controllano la configurazione di uscita TV, dual displays, la rilevazione della frequenza del monitor, ecc... Anche in questo caso, tutte le opzioni disponibili sono descritte nella documentazione.

Per utilizzare ognuna di queste opzioni, elencarle nella relativa sezione Device del file di configurazione di X (in genere ). Per esempio, per disabilitare il logo splash:

Vedi anche

 * nouveau & nvidia-drivers switching - Modalità grafica ibrida utilizzando i driver open-source.
 * NVIDIA Optimus - Configurare un sistema per utilizzare i driver closed-source per la grafica ibrida (modesetting).