PDA

Visualizza versione completa : [Guida] Installare correttamente il driver proprietario NVIDIA



ginalfa
20-06-15, 12: 32
Le distribuzioni linux più diffuse utilizzano il modulo kernel nouveau in presenza di chip grafici NVIDIA.

Il modulo governa solo l'accelerazione 2D, mentre non permette di sfruttare le potenzialità openGL.
NVIDIA però si cura di rilasciare con buona cadenza anche i driver restricted per i propri chip grafici, che hanno un proprio binario di installazione e che quindi può creare qualche problema ai chi non è uno jedi del terminale.

Un altro problema che si verifica con i chip NVIDIA è che la schermata grub e quella di boot nei sistemi *buntu passa in bassa risoluzione, cosa che è dovuta ad un bug (o meglio ad una mancata configurazione) del sottosistema "plymouth".

Terzo problema è che anche dopo l'installazione del driver restricted, il modulo nouveau viene comunque caricato all'avvio, cosa che non crea problemi, ma a me dà fastidio avere moduli inutili in giro per il kernel :tong2.
E' possibile scaricare il driver restricted direttamente dal sito NVIDIA (http://www.nvidia.it/Download/index.aspx?lang=it).

E' però altamente probabile che a causa di quella "errata configurazione" dell'ambiente grafico in presenza di chip NVIDIA non sarà affatto semplice installare i driver proprietario.
Difatti l'installer richiede che il server "X" non sia attivo il che significa che tutta l'operazione va eseguita da una console testuale "pura" (non quella emulata presente nell'abiente grafico) raggiungibile con CTRL+ALT+F1.
E qui cade la prima tegola: se provata a switchare alla console con ua sceha NVIDIA molto probabilmente vi ritroverete una enignatica schermata nera con , nella migliore delle ipotesi un laconico trattino lampeggiante e nulla di più, con il risultato che non potretet procedere a far girare l'installer.
Ho cercato per un pò in giro la soluzione che è efficace ma non è semplicissima, anche perchè per metterla in pratica servono alcuni pacchetti non più distribuiti dai repo ufficiali *buntu.

Ho quindi pensato di scrivere questa guida (con un grazie agli autori degli script) per aiutare chi voglia godere delle potenzialità 3D anche in abiente linux con GPU nvidia.

Tutti i file necessari li trovate allegati in formato .zip e c'è anche uno script per ripristinare le modifiche.
I pacchetti sono quelli per sistemi a 64 bit, ormai prevalenti.

STEP 1:
Fix del sottosistema "plymouth" - Ripristino del layout di grub, splashscreen e (soprattutto) della console.

pacchetti necessari

v86d (presente nei repositories ufficiali)
libhal1_0.5.14-8_amd64.deb (presente nell'archivio allegato)
libhd16_16.0-2.2_amd64.deb (presente nell'archivio allegato)
hwinfo_16.0-2.2_amd64.deb (presente nell'archivio allegato)


Script da utilizzare:
fixplymouth se la vostra distro è anteriore alla 14.10
oppure
fixplymouth_utopic a partire dalla 14.10 in poi.

Scaricate l'archivio allegato ed individuate i file necessari.

Procediamo.

Questa fase può essere eseguita nel vostro ambiente grafico.

Aprite una finestra di terminale nella cartella dove avete posizionato i file.
Mediante il vostro gestore dei pacchetti installate v86d
oppure da terminale

Only registered members can view code.

di seguito installate i pacchetti che trovate nell'archivio allegato (basta un doppio click sul .deb)

1. libhal1_0.5.14-8_amd64.deb
2. libhd16_16.0-2.2_amd64.deb
3. hwinfo_16.0-2.2_amd64.deb

A questo punto assicuratevi che lo script che dovrete utilizzare abbia i permessi di esecuzione


Only registered members can view code.
dalla finestra terminale lanciare lo script

Only registered members can view code.

ATTENZIONE
A partire da *buntu 14.10 bisogna usare lo script fixplymouth_utopic invece di fixplymouth oppure (per i più raffinati) applicare la patch utopic.diff allo script:


Only registered members can view code.

Riavviate il sistema: la schermata grub e lo splashscreen dovrebbero essere tornati in alta risoluzione, così come sarà utilizzabile la console (CTRL-ALT-F1~F6).


STEP 2: installare il driver NVIDIA proprietario

Andate sul sito NVIDIA (http://www.nvidia.it/Download/index.aspx?lang=it), individuate e scaricate i driver per la vostra GPU e posizionate il file nella vostra home o in una cartella facilmente raggiungibile, visto che tra poco sarete nella console testuale.

Io userò il nome del file che ho utilizzato. Ovviamente andrà sostituito con quello che avrete scaricato.

Switchate alla console con CTR-ALT-F1 ed eseguite il login.

Spostatevi (se non ci siete già) nella cartella dove avete posizionato il driver NVIDIA;
spegniamo il gestore grafico lightDM;


Only registered members can view code.

(riceverete un messaggio di conferma)

Accertiamoci che il file del driver sia eseguibile


Only registered members can view code.

Lanciare l'installer con l'ozione -Z, che dovrebbe rimuovere anche i driver nouveau (procedura non testata perchè ho preferito farlo io come descritto in seguito).


Only registered members can view code.

Confermare tutte le richieste ed ignorare il messaggio che vi dirà che lo script di preinstallazione ha fallito.

riavviare il sistema da console

Only registered members can view code.
oppure

Only registered members can view code.

dopo il riavvio controllate la presenza dei moduli nvidia in un terminale


Only registered members can view code.
e di nouveau

Only registered members can view code.

se il modulo nvidia è presente l'installazione è andata a buon fine.
se è ancora presente il modulo nouveau (driver open 2D nvidia) e la cosa vi dà fastidio passate allo

STEP 3: rimozione manuale del modulo nouveau

aprite il solito terminale


Only registered members can view code.

se tutto è andato bene al successivo riavvio eseguendo da terminale


Only registered members can view code.

non dovreste più trovare il modulo nouveau..

ULTIMO AVVERTIMENTO

Purtroppo l'installazione del modulo nvidia effettua la compilazione on-the-fly del modulo per la versione del kernel che avete in uso.
Questo comporta che ad ogni update del kernel bisognerà ripetere l'installazione del driver (step 2).
Conservare l'installer è quindi buona pratica, per non stare a riscaricarlo ogni volta.

:bai3181

Andy86
20-06-15, 13: 10
:bai

Solo una cosa, se c'è un pacchetto nei repository già pronto io sconsiglierei di installare il driver dallo script ufficiale perché equivale ad installare da sorgenti e lascia in giro un sacco di sporcizia che poi da problemi quando il sistema cerca di aggiornare il driver con la versione dei repository che prima o poi risulterà più nuova di quella installata a mano. (io su chakra ho la 346.59 :tong2)

A questo proposito per chi volesse fare pulizia per poi installare la versione dei repository aggiungerei che lo script scaricato dal sito nvidia ha un comando in proposito:

Only registered members can view code.Che rimuove tutto quello che ha messo.



Lanciare l'installer con l'opzione -Z, che dovrebbe rimuovere anche i driver nouveau


Io mi ricordavo che lanciando lo script normalmente appariva una procedura grafica che ad un certo punto chiedeva se si volevano blacklistare i nouveau, comunque io li avevo tenuti quando avevo problemi di v-sync con Wine e ogni tanto dovevo switchare tra i due driver, il modulo non sale comunque finché lo xorg.conf dice di caricare nvidia.



Il modulo governa solo l'accelerazione 2D, mentre non permette di sfruttare le potenzialità openGL.

Sei rimasto indietro. Il direct rendering con openGL funziona anche con i noveau, male, ma funziona.

ginalfa
20-06-15, 23: 11
Le GPU più recenti non sono supportate dai driver restricted nei repo.
Solo i nouveau le supportano ma, come hai detto tu, questi supportano male Opengl, il che equivale a non supportarlo.
Di pixel shader non se ne parla nemmeno...:ohoh
Io speravo che dopo oltre un lustro dall'uscita dei nouveau qualcosa si fosse mosso, ma vedo che siamo quasi al punto di partenza o poco più.
Prova a mandare in standby il PC ed a tentare di farlo ripartire con i nouveau o con buona parte dei restricted.:ghgh

Non sono d'accordo sulla roba lasciata in giro dall'installer "ufficiale" che compila il modulo per ogni kernel.
Quel che va a duplicarsi è, appunto, solo il modulo, che viene eliminato assieme al vecchio kernel, se e quando decidi di farlo.
Del resto, un kernel pesa oltre 100 MB e tenersene una ventina è ben più impegnativo che pensare ai pochi kb di un modulo.

Naturalmente, chi preferisce i nouveau o i restricted è libero di non usare i driver proprietari.
Una guida è una guida e serve a chi ne dovesse avere bisogno.
:bai2

Andy86
21-06-15, 00: 01
:bai

Scusa, ma cosa intendi esattamente per driver restricted?
Io dai repo installo proprio i driver proprietari.
Forse ti riferisci al fatto che su ubuntu non si aggiorna da solo finché non fai l'avanzamento?



Non sempre i driver proprietari sono presenti nei repository. Spesso non sono nemmeno pacchettizzati per la distro, e si installano in modi atroci facendo cose tutt'altro che consigliabili. Quindi, quando sono già nei repository, usateli: qualcuno si è preso la fatica di installarli a mano, verificare che non esplodessero cose, spostare al posto giusto le librerie vaganti, modificare i percorsi e reimpacchettare tutto per evitare di farvi bestemmiare.
Almeno provateli prima di meditare di scaricarli dal sito del produttore o da terze parti. Fasciarsi la testa prima di rompersela solitamente porta solo a problemi aggiuntivi (librerie incompatibili, modulo non utilizzabile su tale versione kernel, ecc...).