Questo articolo fornisce le istruzioni per l'installazione dei driver Nvidia in un ambiente Debian/Ubuntu, in presenza di una GPU Nvidia.

Per ovvi motivi queste informazioni vengono fornite così come sono senza alcuna garanzia di nessun tipo.

 

Preliminari

Verificare le GPU installate

verificare che il comando lspci sia installato (elenca i device PCI installati e lollegati sul tuo PC):

sudo apt-get -y install pciutils

Fare una verifica veloce delle GPU installate (Nvidia):

lspci | grep VGA

L'output sarà simile a questo di seguito:

00:02.0 VGA compatible controller: Intel Corporation 4th Gen ...
01:00.0 VGA compatible controller: Nvidia Corporation ...

Se non compare alcuna NVidia allora la scheda non è installata correttamente, altrimenti comparirebbe.

 

Disabilitare il driver Nouveau

Blacklist Nouveau in Modprobe

Il driver nouveau è una alternativa open source al driver NVidia. Non funziona con CUDA e va disabilitato

Il primo passo sta nelmodificare il file /etc/modprobe.d/blacklist-nouveau.conf:

cat <<EOF | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
EOF

Quindi eseguiamo i seguernti comandi:

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

 

Aggiornare Grub per disabilitare Nouveau

Fare il backup di /etc/default/grub:

sudo cp /etc/default/grub /etc/default/grub.bak

Poi aggiornarlo /etc/default/grub. aggiungendo rd.driver.blacklist=grub.nouveau e rcutree.rcu_idle_gp_delay=1 nella variabile GRUB_CMDLINE_LINUX:

GRUB_CMDLINE_LINUX="quiet"

cambiare in:

GRUB_CMDLINE_LINUX="quiet rd.driver.blacklist=grub.nouveau rcutree.rcu_idle_gp_delay=1"

Poi ricompilare il grub con:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

 

Installazione dei pacchetti necessari

I seguenti comandi devono essere eseguitiprima di installare il driver NVidia per raggiungere i prerequisiti richiesti:

sudo apt-get -y install linux-headers-$(uname -r) make gcc-4.8
sudo apt-get -y install acpid dkms

 

Chiudere il server X

Prima di iniziare l'installazione bisogna spegnere l'X Server e uscire da tutte le istanze X (Gnome, KDE or XFCE, etc...).

per uscire dal server X usare la combinazione di tasti Ctrl-Alt-F1 e determinare se si sta usando lightdm o gdm eseguendo i seguenti comandi:

sudo ps aux | grep "lightdm|gdm|kdm"

A seconda di quale si sta usando stoppare il relativo servizio coi comandi: (sostituire gdm o kdm a lightdm):

sudo service lightdm stop
sudo init 3

 

Installare il driver

Per consentire il rendering sono necessari OpenGL e GL Vendor Neutral Dispatch (GLVND) e devono essere installati assieme al driver Nvidia. OpenGL è un'opzione di installazione nei driver di tipo *.run. Negli altri tipi di driver, OpenGL è già abilitato per impostazione predefinita alle versioni moderne (datate 2016 e successive).
GLVND può essere installato utilizzando i menu del programma di installazione o tramite il flag --glvnd-glx-client della riga di comando.

 

Installare il driver con l'eseguibile *.run fornito da Nvidia.

Per scaricare il driver andare al sito: http://www.nvidia.com/object/unix.html e scegliere l'ultima versione (attiva) per la prorpria CPU.

Click Download e clicca Agree and Download nelle pagine successive.

Nota: I driver trovati in questo link sono compatibili anche per tutti i modelli Tesla di Nvidia.

Se si preferisce scaricare l'intero repository dei driver, Nvidia mette a disposizione uno strumento per consigliare il driver più recente disponibile per la propria scheda grafica all'indirizzo http://www.Nvidia.com/Download/index.aspx?lang=en-us.

Se non sei sicuro di quale scheda grafica possedi, il comando lspci ti fornirà alcune informazioni:

lspci | grep -i "nvidia"

Scarica il driver consigliato e aggiungigli i permessi di esecuzione:

chmod +x ./NVIDIA-Linux-$(uname -m)-*.run

Esegui l'installazione.

Se viene chiesto firmare il modulo kernel (Sign the Kernel Module) e poi generare una nuova coppia di chiavi (Generate a new key pair).

Alla fine, se viene chiesto, non aggiornare il il file di configurazione del server X.

La soluzione che segue tenta di diagnosticare il problema comune in cui il programma di installazione non riesce a rilevare e gestire correttamente la situazione in cui il kernel è stato firmato, ma i moduli del kernel firmati non sono necessari.

grep CONFIG_MODULE_SIG=y /boot/config-$(uname -r) && \
grep "CONFIG_MODULE_SIG_FORCE is not set" /boot/config-$(uname -r) && \
sudo ./NVIDIA-Linux-$(uname -m)-*.run -e || \
sudo ./NVIDIA-Linux-$(uname -m)-*.run

In caso ci siano altri problemi con l'installazione,il log dovrebbe trovarsi in:

/var/log/nvidia-installer.log

 

Possibili problemi con l'installer di Nvidia

Un problema comune con l'installazione del driver Nvidia è che l'operazione fallisce perché il driver Nvidia altera il kernel.
Il driver non è firmato e l'installazione predefinita non tenta di firmarlo, ma il kernel si aspetta un driver firmato. Se si verifica questo errore, è necessario rieseguire l'installazione in modalità esperto:

sudo ./nvidia-Linux-<arch>-<version>.run -e

Quando viene richiesto rispondere Sign the Kernel Module poi Generate a new key pair.

Ancora, alla fine, assicuratevi di rispondere No quando vi viene richiesto di aggiornare il file di configurazione del server X.

This situation is usually detected during the above install step, but if there are issues, you can run this command separately.

Un altro problema che può nascere è che la versione di sviluppo del kernel e la versioine installata del kernel non corrispondano. L'installazione del driver Nvidia no procederà dopo aver accettato la licenza. Per risolvere usarei seguenti comandi:

sudo apt-get update && sudo apt-get install linux-headers-$(uname -r)
sudo reboot now

 

Altro materiale di supporto

Nvidia mette a disposizione un grande readme online a questo indirizzo:

http://us.download.nvidia.com/XFree86/Linux-<arch>/<version>/README/index.html

Per esempio per u processore x86 con la versione 375.26, il readme è questo:

http://us.download.nvidia.com/XFree86/Linux-x86_64/375.26/README/index.html.

 

Testare l'installazione del driver Nvidia

Dopo l'installazione del driver NVidia, lo si può testare con i seguenti comandi:

nvidia-smi

il suo output dovrebbe essere qualcosa di simile:

+------------------------------------------------------+
| NVIDIA-SMI 361.42     Driver Version: 361.42         |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro K1100M       Off  | 0000:01:00.0     Off |                  N/A |
| N/A   44C    P0    N/A /  N/A |      8MiB /  2047MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

 

Fallimento per installazione di driver multipli

Se ricevete questo errore:

Failed to initialize NVML: GPU access blocked by the operating system

sul sistema potrebbero esserci installazioni multiple del driver.

Provare ad eseguire:

dpkg --list | grep -E "cuda|nvidia"

Riguardare le versioni del driver i elencate e rimuovere quelle non necessarie.
Un altro comando utile può essere:

locate libnvidia | grep ".so."

Verificare che i file terminino tutti con un 1 o con la versione del driver Nvidia installato, ad esempio .375.21.

 

Riavvio del server X

Se c'è stato bisogno di stoppare il server X devi riavviarlo,la maniera più semplice è riavviando il computer:

sudo reboot now

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.