Installazione driver proprietari Nvidia: differenze tra le versioni
S3v (discussione | contributi) mNessun oggetto della modifica |
|||
Riga 297: | Riga 297: | ||
Ci sono molte altre opzioni possibili, che trovate elencate, su Debian, in <code>/usr/share/doc/nvidia-glx/README.txt.gz</code>. | Ci sono molte altre opzioni possibili, che trovate elencate, su Debian, in <code>/usr/share/doc/nvidia-glx/README.txt.gz</code>. | ||
===Creazione del file xorg.conf=== | |||
<span id="xtemplate">Se il file <code>/etc/X11/xorg.conf</code> non fosse presente e si necessita averlo anche solo come template allora bisogna crearlo.</span> <br> | <span id="xtemplate">Se il file <code>/etc/X11/xorg.conf</code> non fosse presente e si necessita averlo anche solo come template allora bisogna crearlo.</span> <br> | ||
Prima di tutto occorre chiudere X. Non basta fare logout, bisogna proprio arrestare il server grafico: se avete installato un desktop manager andate in una console testuale (per es. con <code>Ctrl+Alt+F1</code>), e usate, da root: | Prima di tutto occorre chiudere X. Non basta fare logout, bisogna proprio arrestare il server grafico: se avete installato un desktop manager andate in una console testuale (per es. con <code>Ctrl+Alt+F1</code>), e usate, da root: |
Versione delle 18:31, 20 ott 2011
Versioni Compatibili Tutte le versioni supportate di Debian |
Introduzione
L'installazione dei driver proprietari Nvidia su Debian si può fare in tre modi, tutti abbastanza semplici da mettere in pratica.
Il primo metodo prevede l'installazione dei driver proprietari utilizzando i pacchetti presenti nei repository di Debian. Il vantaggio di questo metodo è la possibilità di usufruire degli aggiornamenti direttamente dai repository di Debian oltre al fatto di non dover ricompilare il modulo della scheda video all'aggiornamento del kernel. Di questo se ne occuperà il DKMS.
Il secondo metodo prevede di utilizzare l'installer automatico fornito da Nvidia: si tratta di uno script per la shell che tramite un menu ci guida nell'installazione, questo è però destinato agli sviluppatori pertanto ne è sconsigliato l'uso all'utente finale; se si intraprende questa strada verrà aggirato il sistema di gestione dei pacchetti (APT nel caso di Debian, ma anche qualunque altro), con il risultato che questo non saprà mai dell'esistenza del modulo e non potrà aiutarci nella gestione di eventuali dipendenze o conflitti con altri pacchetti.
Il terzo metodo utilizza un tool specifico di Debian: module-assistant. Module-assistant è un programma che permette di automatizzare la compilazione di molti moduli proprietari, e la creazione di pacchetti .deb contenenti i moduli compilati, per la successiva installazione tramite APT. Lo svantaggio di questo metodo è che non tutte le versioni dei driver sono disponibili (vedi il paragrafo successivo "Versioni del driver") e, per quelle che ci sono, gli aggiornamenti arrivano sempre con qualche giorno di ritardo rispetto all'installer, come è ovvio che sia.
Nota: con l'inserimento dell'infrastruttura DKMS questo terzo metodo non è più necessario e viene mantenuto per retrocompatibilità. |
ATTENZIONE Si raccomanda di usare uno solo dei tre metodi proposti. |
Versioni del driver
Attualmente esistono tre serie di driver NVIDIA:
- 7xxx (legacy): supporta solo le schede video più datate.
- 8xxx (stabile): supporta le schede video più recenti
- 9xxx (beta): versione di sviluppo (necessaria se si vuole usare compiz).
Metodo 1: driver proprietari pacchettizzati
Utilizzando questo metodo i passi da seguire sono i seguenti, tutti abbastanza semplici se non banali.
- Assicurarsi che sia presente la sezione
non-free
in corrispondenza della sorgente dei pacchetti in/etc/apt/sources.list
. Ad esempio (per Squeeze):
deb http://ftp.it.debian.org/debian/ squeeze main contrib non-free
- Aggiornare la lista dei pacchetti:
# apt-get update
- Installare i pacchetti necessari al funzionamento della scheda, gli headers del kernel attualmente in uso e il tool di configurazione grafico:
# apt-get install nvidia-glx nvidia-settings linux-headers-`uname -r`
come dipendenze verranno anche installati i pacchetti: dkms, nvidia-kernel-common
e nvidia-kernel-dkms
.
A questo punto si hanno due scelte:
- modificare la voce «Driver» nella sezione «Device» in
/etc/X11/xorg.conf
- inserire la suddetta sezione in un file in
/usr/share/X11/xorg.conf.d/
con estensione.conf
e un nome a piacere, ad esempionvidia.conf
La sezione conterrà qualcosa di simile:
Section "Device" Identifier "nVidia Corporation NV44 [GeForce 6200 TurboCache(TM)]" Driver "nvidia" BusID "PCI:1:0:0" EndSection
I dati qui sopra riportati, in particolare le voci «Identifier» e «BusID», sono solo di esempio ed equivalgono all'output opportunatamente adattato di
$ lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation NV44 [GeForce 6200 TurboCache(TM)] (rev a1)
non vanno assolutamente presi alla lettera, se non si è sicuri usare i configuratori grafici appositi come illustrato più avanti.
Per informazioni sul file /etc/X11/xorg.conf
si veda la sezione apposita.
Se l'aggiornamento del kernel comporta un salto di minor revision, ad esempio da 2.6.30 a 2.6.32 oppure da 2.6.32 a 2.6.34, bisogna necessariamente installare gli headers del nuovo kernel. Ciò avverrà in automatico se si è provveduto ad installare il metapacchetto linux-headers-2.6-*
.
Se si utilizza Debian stable e si ha una scheda grafica abbastanza recente, è facile che la versione di nvidia-glx
presente nei repository sia troppo vecchia e il server X non parta lamentando qualcosa di simile a
Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
Prima di valutare se tentare la sorte di apt-pinning selvaggi (se stai leggendo questa guida è probabilmente sconsigliato) o di passare al metodo due, è utile accertarsi che gli attuali driver supportino il modello della scheda:
$ zless /usr/share/doc/nvidia-glx/README.txt.gz
una volta aperto il file premere il tasto "/" (slash), inserire a fianco il numero di serie della scheda ottenuto con:
$ lspci | grep VGA 01:00.0 VGA compatible controller: nVidia Corporation NV44 [GeForce 6200 TurboCache(TM)] (rev a1)
quindi in questo caso sarà "GeForce 6200" e premere il tasto "Return" (invio):
/GeForce 6200 <invio>
Si giungerà alla sezione che elenca tutte le serie supportate (è una semplice ricerca nel testo, più semplice a farsi che spiegarlo :)
Se la vostra serie non risulta disinstallate tutto e procedete con il metodo due:
# aptitude purge ~nnvidia
Verifica
Da terminale eseguire
$ glxinfo | grep rendering direct rendering: Yes
Nel caso di risposta affermativa, i vostri driver dovrebbero essere pronti all'utilizzo.
In alternativa è possibile usare come strumento glxgears, che si trova all'interno del pacchetto mesa-utils.
Glxgears è un semplicissimo programma che produce in una finestra l'animazione di tre ruote dentate che girano, e nel frattempo conta quanti frame al secondo riesce a generare il vostro sistema.
Non è pensato per effettuare un vero benchmark, ma è solo un test indicativo, e i suoi risultati dipendono vistosamente dal moltissimi fattori come carico della CPU, dimensione della finestra di esecuzione e altri ancora.
Configuratori grafici
nvidia-xconfig
aiuta a modificare i file di configurazione di X (quindi xorg.conf e simili) per inserire opzioni a volte difficili da comprendere o scovare.
nvidia-settings
permette di regolare alcuni parametri legati alla scheda video e al monitor quali luminosità, gamma, attributi XVideo, temperatura e configurazione OpenGL.
Alcune modifiche apportate, per avere effetto o per essere applicate in modo definitivo, richiedono che questi strumenti vengano eseguiti con i permessi di root attraverso kdesu
oppure gksu
.
Metodo 2: l'installer Nvidia
Occorrente
Ecco di cosa abbiamo bisogno per l'installazione:
- Headers del kernel che stiamo utilizzando (occhio alle subversion, per controllare si può usare
uname -r
) o, in alternativa, i sorgenti dello stesso kernel (gli headers fanno parte dei sorgenti, ed esistono come pacchetto indipendente solo ed esclusivamente per poter compilare moduli fuori dal kernel senza dover scaricare tutto il kernel).
Per installarli, è sufficiente digitare:
# apt-get install linux-headers-`uname -r`
- Driver corretto per la nostra architettura scaricabile da www.nvidia.com
Nota: se avete compilato un kernel personalizzato, il pacchetto degli headers per il vostro kernel può non esistere, nel qual caso dovete usare i sorgenti del kernel configurati; se avete compilato un kernel personalizzato con kernel-package (Debian Kernel Howto), invece, potete generare e utilizzare il pacchetto kernel-headers con la stessa utility. |
Cosa fare
Prima di tutto occorre chiudere X. Non basta fare logout, bisogna proprio arrestare il server grafico: se avete installato un desktop manager andate in una console testuale (per es. con Ctrl+Alt+F1
), e usate, da root:
# invoke-rc.d gdm stop
se il vostro desktop manager è GDM, oppure:
# invoke-rc.d gdm3 stop
se il vostro desktop manager è GDM3, oppure:
# invoke-rc.d kdm stop
se il vostro desktop manager è KDM.
Ora, controllate (con ls -l
) che il link /usr/src/linux
punti agli headers del kernel in funzione o ai sorgenti.
In caso contrario,
# ln -s /usr/src/linux-`uname -r` linux
Si noti che i sorgenti devono essere configurati esattamente come il nostro kernel corrente.
Per fare un esempio supponiamo di aver installato il .deb dei sorgenti, e di doverli quindi configurare:
$ cd /usr/src $ tar xvfj linux-source-xxx $ cd linux-source-xxx $ cp /boot/config-`uname -r` .config $ make oldconfig
In una nuova installazione da Squeeze con il kernel 2.6.32-5 in poi, il driver libero nouveau è caricato in modo predefinito e interferirà con quello proprietario.
Occorre disattivare il caricamento di nouveau inserendo in /etc/modprobe.d/blacklist.conf
le seguenti righe:
blacklist nouveau options nouveau modeset=0
quindi riavviare il sistema ed eseguire l'installer.
The first line will prevent Nouveau’s kernel module from loading automatically at boot. It will not prevent manual loading of the module, and it will not prevent the X server from loading the kernel module. The second line will prevent Nouveau from doing a kernel modeset. Without the kernel modeset, it is possible to unload Nouveau’s kernel module, in the event that it is accidentally or intentionally loaded.}}
Per avviare l'installazione dobbiamo spostarci nella directory dove abbiamo salvato il driver Nvidia e dare il comando:
# sh NVIDIA-*
dove NVIDIA-*
è il nome del driver che abbiamo scaricato.
Una volta avviato l'installer comparirà un menu interattivo che ci guiderà nell'installazione, dove dovremo rispondere alle domande dicendo che vogliamo installare il driver.
Il nuovo installer permette l'aggiornamento automatico di xorg.conf
. Potete farlo anche a mano, semplicemente modificando il file /etc/X11/xorg.conf
come indicato nel metodo 1.
Se tutto è andato a buon fine, possiamo far ripartire il server grafico con il comando:
# invoke-rc.d gdm start
se il vostro desktop manager è GDM, oppure:
# invoke-rc.d gdm3 start
se il vostro desktop manager è GDM3, oppure:
# invoke-rc.d kdm start
se il vostro desktop manager è KDM.
Driver Nvidia per diversi kernel
Molto spesso si avverte l'esigenza di dover avviare il driver Nvidia per ciascun kernel presente nel nostro sistema. L'installazione di default del driver per uno specifico kernel, infatti, rimuove una precedente installazione eseguita per un kernel differente; questo costringe ad avviare l'installer Nvidia ogni volta che si avvia un diverso kernel dal menù di Grub.
Per evitare questo fastidio basta lanciare l'installer passandogli l'opzione -K
. In questo modo verrà installato solo il modulo Nvidia per il kernel corrente senza disinstallare il precedente driver:
# sh NVIDIA-* -K
Questo comando presuppone che il driver Nvidia sia già stato installato almeno una volta con il metodo descritto nel precedente paragrafo e che la versione del driver sia esattamente la stessa del modulo che si va ad installare.
Disinstallazione
Per rimuovere i driver installati con questo metodo, è sufficiente arrestare il server grafico ed eseguire:
# sh NVIDIA*.run --uninstall
Metodo 3: module-assistant
Occorrente
Per usare questo metodo è sufficiente una connessione ad internet, oltre, ovviamente, a module-assistant: se non l'abbiamo:
# aptitude install module-assistant
Cosa fare
Come per l'altro metodo, bisogna arrestare il server grafico, e poi non dobbiamo fare altro che eseguire module-assistant:
<Ctrl+Alt+F1> ----> login come root # invoke-rc.d kdm stop # m-a
module-assistant ci mostra un menu grafico (ncurses) tramite il quale dobbiamo, nell'ordine:
- aggiornare la lista dei pacchetti disponibili;
- preparare il sistema per la compilazione;
- selezionare il modulo da compilare dalla lista fornita;
- compilare;
- installare il pacchetto ottenuto;
il tutto senza uscire da m-a.
A questo punto bisogna modificare /etc/X11/xorg.conf
, nella sezione "Device", in modo che nella riga "Driver" sia scritto nvidia
(di solito al posto di nv
o vesa
), inoltre bisogna sostituire, nella sezione "Module", le righe:
Load "dri" Load "GLcore"
con la riga:
Load "glx"
Se invece di una nuova installazione state facendo un aggiornamento, è probabile che sia ancora in memoria il modulo vecchio: potete controllare con:
$ lsmod | grep nvidia
se il modulo viene elencato non dovete fare altro che rimuoverlo prima di riavviare il server grafico (da root):
# rmmod nvidia
Ora non resta che installare i driver per xfree/xorg (che sono sempre proprietari, ma non sono da compilare, e in Debian sono in un pacchetto a parte) e, volendo, anche il tool grafico per configurarli, e poi si può avviare X:
# aptitude install nvidia-glx nvidia-settings # invoke-rc.d kdm start
Opzioni utili
In /etc/X11/xorg.conf
ci sono alcune opzioni specifiche del driver Nvidia che si possono inserire nella sezione "Device", per esempio se non vogliamo vedere il logo Nvidia ad ogni avvio possiamo inserire:
Option "NoLogo" "1"
invece per usare il codice AGP del driver proprietario invece di quello libero possiamo inserire:
Option "NvAGP" "On"
personalmente con questa opzione attivata riscontro con glxgears un aumento di prestazioni pari al 50%.
In certi casi ci possono essere dei problemi nell'uso di un monitor esterno su di un laptop: per ovviare all'inconveniente si può provare ad aggiungere:
Option "UseEDID" "0"
Per abilitare l'uso dell'uscita TV come monitor addizionale (ove disponibile):
Option "TwinView"
Se l'immagine sulla TV risulta essere in bianco e nero o con i colori falsati occorre impostare lo standard video utilizzato:
Option "TVStandard" "PAL-B"
Ci sono molte altre opzioni possibili, che trovate elencate, su Debian, in /usr/share/doc/nvidia-glx/README.txt.gz
.
Creazione del file xorg.conf
Se il file /etc/X11/xorg.conf
non fosse presente e si necessita averlo anche solo come template allora bisogna crearlo.
Prima di tutto occorre chiudere X. Non basta fare logout, bisogna proprio arrestare il server grafico: se avete installato un desktop manager andate in una console testuale (per es. con Ctrl+Alt+F1
), e usate, da root:
# invoke-rc.d gdm stop
se il vostro desktop manager è GDM, oppure:
# invoke-rc.d gdm3 stop
se il vostro desktop manager è GDM3, oppure:
# invoke-rc.d kdm stop
se il vostro desktop manager è KDM.
Quindi eseguire:
# Xorg -configure
Il file in questione è generato tramite un rivelamento automatico dell'hardware ma di fatto contiene parecchie voci ormai inutili come ad esempio i moduli o i path dei font che vengono già normalmente caricati. È utile per prendere spunto sulla sintassi e fare modifiche particolari ma non direttamente necessario al funzionamento dei driver.
Una volta creato si consiglia di dargli una bella pulita e usare solo le parti necessarie quindi spostarlo nella giusta posizione:
# mv /root/xorg.conf.new /etc/X11/xorg.conf
o meglio ancora utilizzare le configurazioni modulari come descritto nel metodo uno.
Quindi possiamo far ripartire il server grafico:
# invoke-rc.d gdm start
se il vostro desktop manager è GDM, oppure:
# invoke-rc.d gdm3 start
se il vostro desktop manager è GDM3, oppure:
# invoke-rc.d kdm start
se il vostro desktop manager è KDM.
Autore: Bedo
Correzioni, metodo 2, verifica e opzioni utili aggiunti da tindal
Opzioni TV e altre correzioni minori test
Modifica nota per kernel personalizzati (kernel-package) by die_z
Verifica barabba