Come tutti dovremmo sapere, la soluzione open per far funzionare in ambiente Linux le nostre GPU targate Nvidia è costituita dal driver Nouveau, che spesso e volentieri svolge un ottimo lavoro assicurandoci fluidità e stabilità nell’utilizzo quotidiano del nostro sistema. Purtroppo però, questo non è sempre vero, vuoi perché abbiamo una scheda particolare o perché vogliamo un driver più performante per applicazioni che sfruttano in modo intensivo la scheda video.

In questi casi una soluzione appropriata potrebbe essere quella di installare il driver proprietario Nvidia in sostituzione di quello open-source. Molte distro offrono la possibilità di installare questo driver tramite il proprio gestore dei pacchetti, ma non è raro che la versione disponibile non sia la più aggiornata o che l’installazione via repository non sia possibile.

Quello che andremo a fare oggi è fornirvi una guida passo-passo per installare manualmente il driver proprietario Nvidia sul vostro sistema. Prima di cominciare è doveroso fare alcune considerazioni. Prima di tutto, come giustamente molti di voi staranno pensando, internet è pieno di guide che trattano l’argomento, ma per quanto ho potuto constatare tutte danno per scontati uno o più passaggi fondamentali e sono per la maggior parte in lingua inglese. Lo scopo di questa guida è quindi quello di coprire tutto il procedimento senza lasciare nulla al caso. In secondo luogo è giusto specificare che la guida prende come riferimento Debian 8.3 , ma i passaggi dovrebbero restare assolutamente validi con qualunque altra distro che abbia systemd come gestore di sistema e quindi le derivate da Debian come Ubuntu e sorelle, Arch Linux e quelle della famiglia di Gentoo, come ad esempio OpenSUSE, l’unica premura da avere è quella di adattare i comandi per le installazioni preliminari al proprio gestore di paccheti e quindi non utilizzare apt-get (ma pacman o zypper etc.).

NOTA BENE 1: i passaggi che coinvolgono systemd possono essere effettuati anche in modo diverso, gli utenti con un po’ più di esperienza possono quindi adattare la guida a qualunque altra distribuzione.

NOTA BENE 2: l’autore di questa guida non si prende responsabilità per eventuali malfunzionamenti del sistema causati da un utilizzo scorretto di questa guida.

nvidia-linux-1

Passo 1: Procurarsi il driver

La prima cosa da fare è procurarsi la versione del driver più adatta alla GPU in uso e scaricarla sul proprio PC. Il modo più rapido è andare sulla pagina di ricerca dei driver sul sito ufficiale Nvidia ed inserire il modello della propria scheda insieme al tipo di sistema per cui vogliamo effettuare l’installazione. Il sito restituirà in risposta la pagina di download del pacchetto che sarà qualcosa di simile a NVIDIA-Linux-x86_64-361.28.run A questo punto appuntiamoci da qualche parte il percorso in cui abbiamo salvato il file (la home è quella che ci permette di fare meno spostamenti, ma qualunque cartella va bene), ci servirà quando andremo ad operare da terminale.

Passo 2: Installazioni preliminari

Nel caso avessimo una vecchia versione del driver NVIDIA installata sul nostro sistema è bene rimuoverla coi comandi:

$ sudo apt-get remove nvidia*
$ sudo apt-get autoremove

L’installer NVIDIA ha alcune dipendenze che devono essere soddisfatte per poter funzionare correttamente, onde evitare che la cosa ci venga segnalata in fase di installazione è bene prepararci in anticipo ed installare quello che ci serve, i comandi da lanciare sono questi:

$ sudo apt-get update
$ sudo apt-get install dkms build-essential linux-headers-generic

Passo 3: Disattivare Nouveau

Il terzo passaggio, ed è questo che di solito le altre guide “dimenticano”, consiste nel disabilitare il driver Nouveau correntemente in uso. Se non lo facessimo, l’installer darebbe un messaggio di questo tipo:

“ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please consult the NVIDIA driver README and your Linux distribution’s documentation for details on how to correctly disable the Nouveau kernel driver.”

Poi darebbe un secondo messaggio in cui tenta di disabilitare da solo Nouveau, andando a cambiare un file di sistema (cosa che non è detto funzioni) ed infine ci costringerebbe a ricominciare la procedura da zero. Risulta molto più comodo e risolutivo disattivare Nouveau manualmente ed effettuare l’installazione in un secondo momento senza avere problemi. Il modo più corretto (e più reversibile nel caso volessimo tornare indietro) per completare l’operazione è quello di creare un file chiamato blacklist-nouveau.conf in /etc/modprobe.d/ con questo comando:

$ sudo nano /etc/modprobe.d/blacklist-nouveau.conf

Inserire nel file queste linee:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

E lanciare questi domandi per disabilitare il Kernel Nouveau:

$ echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
$ sudo update-initramfs -u

Un buon modo per controllare che la cosa abbia funzionato (anche se non è strettamente necessario) è riavviare il sistema, se tutto ha funzionato come si deve l’interfaccia dovrebbe comparire ad una risoluzione decisamente più bassa, segno che il driver nouveau non è più in uso.

Passo 4: Fermare il server X

A questo punto quello che dobbiamo fare è fermare il server X, altro elemento che causerebbe la comparsa di un messaggio di errore da parte del programma di installazione:

errore-nvidia

Il modo più efficace per farlo è passare ad una sessione utente con il solo terminale utilizzando la combinazione ctrl+alt+F1effettuare il login e lanciare il comando per fermare il servizio  del server grafico (systemd entra in gioco qui). Questo comando cambia a seconda del Desktop Environment che stiamo utilizzando, vi illustriamo qui quello per i DE più noti:

Unity:

$ sudo service lightdm stop

KDE:

$ sudo service kdm stop

GNOME:

$ sudo service gdm stop

Cinnamon:

$ sudo service mdm stop

Xfce:

$ sudo service xdm stop

Lxde:

$ sudo service lxdm stop

NOTA: a seconda della versione del sistema in uso l’abbinamento DE/Comando potrebbe non essere corretto. In questo caso potete provare con uno degli altri comandi scritti qui e l’operazione dovrebbe comunque andare a buon fine.

Passo 5: Effettuare l’installazione

Se tutti i passi precedenti sono andati a buon fine l’ultima cosa che ci resta da fare è concludere la procedura ed installare finalmente il nostro driver NVIDIA. Per prima cosa spostiamoci nella cartella dove abbiamo salvato il pacchetto descritto al Passo 1 (ovviamente se lo avevamo salvato nella nostra home questo passaggio non è necessario):

$ cd /percorso_dove_è_salvato_il_pacchetto

Rendiamo eseguibile il pacchetto (ricordatevi di inserire il nome corretto):

$ sudo chmod +x NVIDIA-Linux-x86_64-361.28.run

Ed infine lanciamolo:

$ sudo ./NVIDIA-Linux-x86_64-361.28.run

Se tutto è andato bene, dopo un breve caricamento verrà  presentata una schermata molto simile a questa:

nvidia-installer-1

Tutto quello che dobbiamo fare è spostarci su “Accept“, premere Invio ed attendere la fine dell’installazione. Una volta concluso il programma ci chiederà se vogliamo che venga modificato il file di configurazione del server grafico X in modo che il driver Nvidia venga utilizzato al prossimo avvio del sistema, rispondiamo di sì e verremo riportarti al nostro terminale. L’ultima cosa che resta da fare è riavviare il sistema con:

$ sudo reboot

Ed il gioco è fatto, se abbiamo eseguito tutti i passi correttamente il nostro sistema si avvierà nuovamente a piena risoluzione, ma questa volta il driver utilizzato sarà quello ufficiale NVIDIA.

Speriamo che questa guida possa esservi utile. Se avete domande o perplessità non esitate a lasciarci un commento!

  • gabriele tesio

    Consigliere di aggiungere un riferimento al ppa xorg-edgers, che ti propone i nuovi driver e ti semplifica l’installazione, che l’installazione manuale è particolarmente facile che dia problemi.

    • Fabio

      Solo se fatta male. Seguendo la procedura corretta va tutto bene, anzi, sinceramente mi fiderei di più dell’installazione manuale che di un ppa.
      IMHO, ovviamente.

      • gabriele tesio

        Beh, ovviamente se metti ppa a caso i rischi sono più alti, per via che non sai chi é che li mantiene e se ti puoi fidare, però il gruppo xorg-edgers é molto valido, lavora da anni, ed in parte é stato incluso nei repository ufficiali (che qualche tempo fa canonical ha annunciato di voler aggiungere driver video più recenti manano che venivano rilasciati e la stabilità viene accertata)

        • Fabio

          Ah ok, usando Debian non sapevo dell’affidabilità di questi ppa, il mio era più un discorso generale.
          Ciao

          • gabriele tesio

            certo, comunque basta andare su launchpad e guardare un po le pagine relative di ogni gruppo per vedere cosa fanno. Per esempio guardando sulla pagina Noobslab si può vedere che è membro dal 2011, ha un ”karma” di 21 (è un modo di launchpad per valutare quanto un certo utente o gruppo di utenti ha fatto all’interno di launchpad, per esempio riportare bug, tradurre stringhe o rispondere a domande di supporto), ha un gran numero di ppa, per esempio una collezione di temi, un ppa per gimp e uno per il file manager nemo.
            Se si paragona questo utente ad un’uno che magari è iscrittto da due giorni, ha un solo ppa non troppo chiaro, si può capire che se devi dare fiducia a uno dei due, il primo è sicuramente più affidabile.

          • Fabio

            Comunque queste verifiche sono cose che un principiante comune non farebbe. Non so, rispetto ai ppa sono abbastanza critico, nel senso che boh, se uno è un utente “evoluto” di solito riesce anche senza il ppa, se uno invece è alle prime armi rischia di fare un casino… vabbé dai magari sono solo mie pare 🙂
            Ciao

          • gabriele tesio

            Si, ma se puoi farlo senza ppa non vuol dire che devi, per esempio parlando di driver video, l’installazione da terminale è lunga e ti ci devi dedicare completamente, se io aggiungo il ppa xorg edgers, apro driver aggiuntivi, vedo che c’è una nuova versione, ci clicco sopra e faccio installa, poi continuo a fare quello che stavo facendo, e una volta finita l’installazione o quando ho finito le mie cose riavvio e sono a posto, e nel caso il driver non funzioni bene, ci metto poco a ritornare a quello vecchio.
            Il vantaggio dei ppa è quello di far fare il lavoro sporco ad altri. Mettiamo che mi piace avere sempre l’ultima versione di, chessò, blender 3d. Dato che nei repo la versione è quasi sicuramente più vecchia, devo scaricare manualmente il .deb (se disponibile, magari c’è solo il sorgente da compilare) e installarlo, e devo controllare con una certa frequenza che non ci siano aggiornamenti, e se ci sono, riscaricare e installare il tutto.
            Invece se uso un ppa, c’è una persona che si prende cura di prendere il sorgente, pacchettizzarlo e renderlo disponibile al download, così a me che piace avere l’ultima versione, quando disponibile la otterrò in tempi brevi (verrà scaricata dal gestore degli aggiornamenti) e non dovrò preoccuparmi di controllare se è disponibile una nuova versione. Questo poi è più evidente se uso molti programmi, mettiamo che sono un grafico che fa video usando strumenti vari, potrei aver bisogno, o anche semplicemente mi piacerebbe avere i programmi sempre aggiornati quindi ad esempio: gimp, inkscape, blender, pitivi, audacity ecc.

            Poi ovviamente abusare di ppa può essere rischioso, ma a meno che non vai a cercare ppa di software ”strani” gestiti da gente losca e usi quelli “più comuni” sei più che al sicuro. Io da un paio di anni (da poco dopo che ho iniziato ad usare linux) uso i ppa di numix, xorg-edgers, noobslab, di redshift e altri e non mi hanno mai causato un singolo problema.

          • Leonardo Bertazzolo

            L’argomento ppa è da sempre motivo di dibattito e come in tutti i discorsi,la ragione sta nel mezzo. Personalmente ogni tanto le uso, ma se posso le evito. Il motivo per cui nella guida non ho messo riferimenti ad esse è perché le ppa sono un elemento tipico dell’ambiente Ubuntu che funziona anche in parecchi altri ma non sono una soluzione valida per tutti, mentre il mio scopo era quello di creare una guida che fosse il più cross-distro possibile.

  • leonardo

    Ottima guida, suggerirei però di aggiungere una parte su come disinstallare i driver nvidia e tornare ai nouveau se per qualsiasi motivo fosse necessario

    • Fabio

      Mi pare che ci sia scritto nel Passo 2 e nel Passo 3 (apt-get remove nvidia* e rimuovere il file /etc/modprobe.d/blacklist-nouveau.conf).

      L’unico appunto che farei a questa guida è l’uso del apt-get autoremove, che io sconsiglio sempre perché se non si sta attenti ci si può trovare con un sistema da buttare.

      Ciao

  • Matteo Rezzin

    Che DE avete usato per fare il test? KDE con che tema?

    • Leonardo Bertazzolo

      Il tema che utilizzo è Hex e come icon pack uso moka 🙂

  • dannyg

    Ho letto questa guida e lo molto apprezzata, la mia paura e’ che se dopo fatto tutto quello che c’e’ scritto, se per caso riavvio il sistema operativo e mi ritrovo con lo schermo nero, come posso uscire dalla problematica che non riparte piu’ la scheda video oppure il server grafico?

    Non e’ possibile dare la soluzione anche per il problema che vi ho descritto?

    Saluti.

No more articles