Installazione driver proprietari Nvidia: differenze tra le versioni

restyiling
(restyiling)
Riga 3: Riga 3:
L'installazione dei driver proprietari Nvidia su Debian si può fare in tre modi, tutti abbastanza semplici da mettere in pratica.
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 di utilizzare l'installer automatico fornito da Nvidia: si tratta di uno script per la shell che tramite un menù ci guida nell'installazione. Questo metodo, per quanto semplice e funzionale, ha uno svantaggio: aggira 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 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 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.
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 prevede l'installazione dei driver proprietari utilizzando i pacchetti presenti nei repository di Debian.
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.
{{Box|Nota:|con l'inserimento dell'infrastruttura DKMS questo metodo non è più necessario e viene mantenuto per retrocompatibilità.}}


{{Warningbox|Si raccomanda di usare <b>uno solo</b> dei tre metodi proposti.}}
{{Warningbox|Si raccomanda di usare <b>uno solo</b> dei tre metodi proposti.}}
Riga 17: Riga 19:
* 9xxx (beta): versione di sviluppo (necessaria se si vuole usare compiz).
* 9xxx (beta): versione di sviluppo (necessaria se si vuole usare compiz).


== Metodo 1: l'installer Nvidia ==
 
== 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 <code>non-free</code> in corrispondenza della sorgente dei pacchetti in <code>/etc/apt/sources.list</code>. Ad esempio (per Squeeze):
<pre>
deb http://ftp.it.debian.org/debian/ squeeze main contrib non-free
</pre>
* Aggiornare la lista dei pacchetti:
<pre>
# apt-get update
</pre>
* Installare i pacchetti necessari al funzionamento della scheda, gli headers del kernel attualmente in uso e il tool di configurazione grafico:
<pre>
# apt-get install nvidia-glx nvidia-settings linux-headers-`uname -r`
</pre>
come dipendenze verranno anche installati i pacchetti: <code>dkms, nvidia-kernel-common</code> e <code>nvidia-kernel-dkms</code>
* Modificare o creare la sezione Device in <code>/etc/X11/xorg.conf</code> in modo da ottenere qualcosa di simile:
<pre>
Section "Device"
Identifier "nVidia Corporation NV44 [GeForce 6200 TurboCache(TM)]"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
</pre>
se il file <code>/etc/X11/xorg.conf</code> non fosse presente allora bisogna crearlo con:
<pre>
# Xorg -configure
# mv ~/xorg.conf.new /etc/X11/xorg.conf
</pre>
rimuovendo le parti non necessarie e adattando le voci al proprio hardware. <br>
In alternativa ci si può affidare a nvidia-settings.
 
Se tutto è andato a buon fine, possiamo far riavviare il server grafico.
 
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 <code>linux-headers-2.6-*</code>.
 
 
== Verifica ==
Da console eseguire
<pre>$ glxinfo | grep rendering
direct rendering: Yes
</pre>
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.
 
 
=== Nvidia-settings ===
Insieme ai driver, l'installer Nvidia provvede ad installare anche il tool di configurazione <code>nvidia-settings</code>.<br/>
Questa utility permette di regolare alcuni parametri legati alla scheda video e al monitor, eseguire:
<pre>
$ nvidia-settings
</pre>
o utilizzare l'apposita voce nel menu dei programmi.<br/>
Alcune modifiche apportate con <code>nvidia-settings</code>, per avere effetto, hanno bisogno di essere scritte nel file <code>/etc/X11/xorg.conf</code>. Affinché ciò avvenga, è necessario lanciare <code>nvidia-settings</code> con i permessi di root attraverso <code>kdesu</code> oppure <code>gksu</code>.
 
 
== Metodo 2: l'installer Nvidia ==
=== Occorrente ===
=== Occorrente ===
Ecco di cosa abbiamo bisogno per l'installazione:
Ecco di cosa abbiamo bisogno per l'installazione:
Riga 31: Riga 94:


=== Cosa fare ===
=== Cosa fare ===
Prima di tutto occorre chiudere X. Non basta fare logout, bisogna proprio killare il server grafico: se avete installato un desktop manager andate in una console non grafica (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 non grafica (per es. con <code>Ctrl+Alt+F1</code>), e usate, da root:


<pre>
<pre>
Riga 55: Riga 118:
In caso contrario,  
In caso contrario,  


<pre> ln -s /usr/src/linux-`uname -r` linux </pre>
<pre>
ln -s /usr/src/linux-`uname -r` linux
</pre>


Si noti che i sorgenti <b>devono</b> essere configurati esattamente come il nostro kernel corrente.
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:
Per fare un esempio supponiamo di aver installato il .deb dei sorgenti, e di doverli quindi configurare:
Riga 67: Riga 132:
$ make oldconfig
$ make oldconfig
</pre>
</pre>
dopo di che siamo pronti per avviare l'installazione.


{{Warningbox|Potreste aver già installato un driver NVIDIA, in questo caso:
{{Warningbox|Potreste aver già installato un driver NVIDIA, in questo caso:
#Se lo avete installato voi, allora questa guida non vi serve perché sapete già come fare :)
#Se lo avete installato voi, allora questa guida non vi serve perché sapete già come fare :)
#Se ve lo ha installato un'altra persona, allora potete tranquillamente dire all'installer di sovrascriverlo se state installando una versione più aggiornata.}}
#Se ve lo ha installato un'altra persona, allora potete tranquillamente dire all'installer di sovrascriverlo se state installando una versione più aggiornata.}}
Attualmente in Squeeze con il kernel 2.6.32-5 il driver libero nouveau è caricato in modo predefinito e interferirà con quello proprietario.
Occorre disattivare il caricamento di nouveau inserendo in <code>/etc/modprobe.d/blacklist.conf</code> le seguenti righe:
<pre>
blacklist nouveau
options nouveau modeset=0
</pre>
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:
Per avviare l'installazione dobbiamo spostarci nella directory dove abbiamo salvato il driver Nvidia e dare il comando:
Riga 85: Riga 159:
Con le versioni più recenti dei driver la specificazione del percorso può essere omessa.}}
Con le versioni più recenti dei driver la specificazione del percorso può essere omessa.}}


Una volta avviato l'installer comparirà un menù interattivo che ci guiderà nell'installazione, dove dovremo rispondere alle domande dicendo che vogliamo installare il driver.
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 <code>xorg.conf</code>. Potete farlo anche a mano, semplicemente editando il file <code>/etc/X11/xorg.conf</code> come indicato nella sezione successiva.
Il nuovo installer permette l'aggiornamento automatico di <code>xorg.conf</code>. Potete farlo anche a mano, semplicemente modificando il file <code>/etc/X11/xorg.conf</code> come indicato nel metodo 1.


{{ Warningbox |  
{{ Warningbox |  
Riga 101: Riga 175:
# CC=/usr/bin/gcc-4.3 sh NVIDIA*.run
# CC=/usr/bin/gcc-4.3 sh NVIDIA*.run
</pre>
</pre>
Attualmente in Squeeze con il kernel 2.6.32-5 si possono riscontrare interferenze
nell'installazione del driver proprietario da parte di nouveau.
Occorrerà blacklistare nouveau inserendo in <code>/etc/modprobe.d/blacklist.conf</code> le seguenti righe:
<pre>
blacklist nouveau
options nouveau modeset=0
</pre>
quindi riavviare il sistema e rieseguire 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.''}}


Se tutto è andato a buon fine, possiamo far ripartire il server grafico con il comando:
Se tutto è andato a buon fine, possiamo far ripartire il server grafico con il comando:
Riga 133: Riga 195:
se il vostro desktop manager è KDM.
se il vostro desktop manager è KDM.


=== Nvidia-settings ===
Insieme ai driver, l'installer Nvidia provvede ad installare anche il tool di configurazione <code>nvidia-settings</code>.<br/>
Questa utility permette di regolare alcuni parametri legati alla scheda video e al monitor; per lanciarla:
<pre>
$ nvidia-settings
</pre>
o utilizzare l'apposita voce nel menù dei programmi.<br/>
Alcune modifiche apportate con <code>nvidia-settings</code>, per avere effetto, hanno bisogno di essere scritte nel file <code>/etc/X11/xorg.conf</code>. Affinché ciò avvenga, è necessario lanciare <code>nvidia-settings</code> con i permessi di root attraverso <code>kdesu</code> oppure <code>gksu</code>.


=== Driver Nvidia per diversi kernel ===
=== 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.
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 <code>-K</code>. In questo modo verrà installato solo il modulo Nvidia per il kernel corrente senza disinstallare il precedente driver:
Per evitare questo fastidio basta lanciare l'installer passandogli l'opzione <code>-K</code>. In questo modo verrà installato solo il modulo Nvidia per il kernel corrente senza disinstallare il precedente driver:
<pre>$ sh NVIDIA-* -K</pre>
<pre>
# sh NVIDIA-* -K
</pre>
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.
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 ===
=== Disinstallazione ===
Riga 154: Riga 211:
</pre>
</pre>


== Metodo 2: module-assistant ==
 
== Metodo 3: module-assistant ==
=== Occorrente ===
=== Occorrente ===
Per usare questo metodo è sufficiente una connessione ad internet, oltre, ovviamente, a module-assistant: se non l'abbiamo:
Per usare questo metodo è sufficiente una connessione ad internet, oltre, ovviamente, a module-assistant: se non l'abbiamo:
Riga 160: Riga 218:


=== Cosa fare ===
=== Cosa fare ===
Come per l'altro metodo, bisogna fermare il server grafico, e poi non dobbiamo fare altro che lanciare module-assistant:
Come per l'altro metodo, bisogna arrestare il server grafico, e poi non dobbiamo fare altro che eseguire module-assistant:
<pre>
<pre>
<Ctrl+Alt+F1> ----> login come root
<Ctrl+Alt+F1> ----> login come root
Riga 177: Riga 235:
il tutto senza uscire da m-a.
il tutto senza uscire da m-a.


{{Box|Nota:|module-assistant si occupa automaticamente di installare un compilatore se non l'avete, e anche gli headers del kernel. Se possedete già gli headers giusti, o anche l'intero kernel (che, ricordo, deve essere configurato esattamente come il vostro kernel), è sufficiente controllare di avere impostato il link simbolico <code>/usr/src/linux</code> in modo che punti agli headers o ai sorgenti:
{{Box|Nota:|module-assistant si occupa automaticamente di installare un compilatore se non l'avete, e anche gli headers del kernel. Se possedete già gli headers giusti, o anche l'intero kernel (che, ricordo, deve essere configurato esattamente come il vostro kernel) è sufficiente controllare di avere impostato il link simbolico <code>/usr/src/linux</code> in modo che punti agli headers o ai sorgenti:
<pre># ln -s /usr/src/linux-headers-xxx /usr/src/linux</pre>}}
<pre>
# ln -s /usr/src/linux-headers-xxx /usr/src/linux
</pre>}}


A questo punto bisogna modificare <code>/etc/X11/xorg.conf</code>, nella sezione "Device", in modo che nella riga "Driver" sia scritto <code>'''nvidia'''</code> (di solito al posto di <code>'''nv'''</code> o <code>'''vesa'''</code>), inoltre bisogna sostituire, nella sezione "Module", le righe:
A questo punto bisogna modificare <code>/etc/X11/xorg.conf</code>, nella sezione "Device", in modo che nella riga "Driver" sia scritto <code>'''nvidia'''</code> (di solito al posto di <code>'''nv'''</code> o <code>'''vesa'''</code>), inoltre bisogna sostituire, nella sezione "Module", le righe:
Riga 199: Riga 259:
</pre>
</pre>


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ò lanciare X:
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:
<pre>
<pre>
# aptitude install nvidia-glx nvidia-settings
# aptitude install nvidia-glx nvidia-settings
Riga 205: Riga 265:
</pre>
</pre>


== Metodo 3: 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 <code>non-free</code> in corrispondenza della sorgente dei pacchetti in <code>/etc/apt/sources.list</code>. Ad esempio (per Squeeze):
<pre>
deb http://ftp.it.debian.org/debian/ squeeze main contrib non-free
</pre>
* Aggiornare la lista dei pacchetti:
<pre>
# apt-get update
</pre>
* Arrestare il server grafico come descritto nei due metodi precedenti.
* Installare i pacchetti necessari al funzionamento della scheda, gli headers del kernel attualmente in uso e il tool di configurazione grafico:
<pre>
# apt-get install nvidia-glx nvidia-settings linux-headers-`uname -r`
</pre>
come dipendenze verranno anche installati i pacchetti: <code>dkms, nvidia-kernel-common</code> e <code>nvidia-kernel-dkms</code>
* Modificare la riga seguente in <code>/etc/X11/xorg.conf</code> nella sezione Device:
<pre>
Section "Device"
...
Driver      "nvidia"
...
EndSection
</pre>
se il file <code>/etc/X11/xorg.conf</code> non fosse presente allora bisogna crearlo con:
<pre>
# Xorg -configure
# mv ~/xorg.conf.new /etc/X11/xorg.conf
</pre>
* Riavviare il server grafico come spiegato nei due metodi sopra proposti o riavviare direttamente il PC.
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.
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 <code>linux-headers-2.6-*</code>.
== Verifica ==
Da console eseguire
<pre>$ glxinfo | grep rendering
direct rendering: Yes
</pre>
Nel caso di risposta affermativa, i vostri driver dovrebbero essere pronti all'utilizzo.
In alterrnativa è 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.


== Opzioni utili ==
== Opzioni utili ==
271

contributi