SDB:Driver NVIDIA


Icon-warning.png
Attenzione! Se si sta pensando di sostituire la scheda video con una più recente, si consiglia di disinstallare il driver Nvidia DDX (ripristinando il driver DDX modesetting (più recente, predefinito) o quello DDX nouveau (più vecchio, opzionale)) prima di aggiornare l'hardware.

Situazione

È consigliabile installare i driver NVIDIA ufficiali usando ZYpp (YaST o Zypper).

Per informazioni sul file linux .run ufficiale di NVIDIA vedere "la via difficile".

Procedura

L'installazione con YaST o con Zypper richiede privilegi di amministratore.

Aggiungere il repository Nvidia

I driver NVIDIA non possono essere inclusi in openSUSE a causa della loro licenza. Fortunatamente però NVIDIA ha un repository di openSUSE da cui possono essere scaricati.

YaST

  1. Aprire YaST, quindi fare clic su "Repository dei programmi".
  2. Fare clic su "Aggiungi" (in basso a sinistra), quindi selezionare "Repository della comunità".
  3. Selezionare "nVidia Graphics Drivers", quindi fare clic su OK.

Zypper

Leap
# zypper addrepo --refresh 'https://download.nvidia.com/opensuse/leap/$releasever' NVIDIA
Tumbleweed
# zypper addrepo --refresh https://download.nvidia.com/opensuse/tumbleweed NVIDIA

Ottenere le informazioni sull'hardware

In un terminale:

# lspci | grep VGA
# lscpu | grep Arch

In alternativa:

# hwinfo --gfxcard | grep Model
# hwinfo --arch

Queste informazioni sono disponibili anche nella sotto-sezione "Schermo" in Informazioni hardware di YaST.

Installazione

Un modo per determinare il driver appropriato è quello di inserire le informazioni sull'hardware nel motore di ricerca dei driver di Nvidia. In alternativa si può utilizzare "Gestione pacchetti di YaST" o i seguenti comandi per controllare i pacchetti disponibili:

# zypper se x11-video-nvidiaG0*
S | Nome                | Sommario                                                | Tipo   
--+---------------------+---------------------------------------------------------+--------
  | x11-video-nvidiaG04 | NVIDIA graphics driver for GeForce 400 series and newer | pacchetto
  | x11-video-nvidiaG05 | NVIDIA graphics driver for GeForce 600 series and newer | pacchetto
# zypper se -s x11-video-nvidiaG0*
S | Nome                | Tipo      | Versione    | Arch   | Repository
--+---------------------+---------+-------------+--------+-----------
  | x11-video-nvidiaG04 | pacchetto | 390.116-5.1 | x86_64 | NVIDIA    
  | x11-video-nvidiaG04 | pacchetto | 390.116-5.1 | i586   | NVIDIA    
  | x11-video-nvidiaG05 | pacchetto | 418.56-9.1  | x86_64 | NVIDIA

YaST

  1. Andare nel "Centro di controllo di YaST" e fare clic su "Gestione pacchetti".
  2. Visualizza > Repository > NVIDIA
  3. Scegliere il driver appropriato, ad es. x11-video-nvidiaG04 oppure x11-video-nvidiaG05
  4. Premere Accetta.
  5. Riavviare il computer.

Zypper

# zypper in <x11-video-nvidiaG04 o x11-video-nvidiaG05>

Riavviare il computer.

Secureboot

I kernel in Tumbleweed e in Leap 15.2 o superiore rifiuteranno, come comportamento predefinito, di caricare qualsiasi modulo non firmato nei computer con l'avvio sicuro abilitato.

Durante l'installazione del driver NVIDIA su un sistema con l'avvio sicuro viene creata una coppia di chiavi MOK, e i moduli del kernel vengono firmati con la chiave privata creata. Il certificato creato (la chiave pubblica) rimane nella memoria in /var/lib/nvidia-pubkeys, ma deve anche essere importato nell'elenco delle chiavi pubbliche MOK per essere registrato.

Dopo il primo riavvio questo certificato può essere facilmente registrato nel database MOK. Lo strumento EFI per questa operazione (mokutil) viene avviato automaticamente: all'interno di esso seleziona "Enroll MOK", quindi "Continua", poi "Sì". Usare la password di amministratore (la mappatura della tastiera però è USA!) quando viene richiesta una password. Il certificato viene ora aggiunto al database MOK e viene considerato attendibile: ciò consentirà il caricamento dei moduli del kernel con firme corrispondenti. Per finire, selezionare "Riavvia".

Nvidia-secureboot-enrollKey.jpg

Nel caso in cui si impieghi troppo tempo nella registrazione del certificato dopo il primo riavvio si può facilmente importare di nuovo il certificato eseguendo il seguente comando:

# mokutil --import /var/lib/nvidia-pubkeys/MOK-nvidia-gfxG0<X>-<driver_version>-<kernel_flavor>.der --root-pw

Riavviare quindi il computer e registrare il certificato come descritto in precedenza.

Come ultima risorsa, nel caso si riscontrino dei problemi con l'avvio sicuro si può, a proprio rischio, disabilitare la convalida dei moduli del kernel:

# mokutil --disable-validation
Aggiornamento dei driver

Durante un aggiornamento del driver, la vecchia e non più utilizzata chiave pubblica viene registrata per essere eliminata dal database MOK. Quindi, oltre alla voce di menu "Registra MOK", apparirà una voce "Elimina MOK" nello strumento EFI una volta riavviato il computer. Per rimuoverla definitivamente dal database MOK, selezionare "Elimina MOK", quindi "Continua", poi "Sì". Usare di nuovo la propria password di amministratore (la mappatura della tastiera è sempre USA!) quando viene richiesta una password. È possibile visualizzare il certificato o la descrizione della chiave pubblica selezionando "Visualizza chiave X" per non eliminare la chiave sbagliata. Premere un tasto qualsiasi per continuare da qui.

Nvidia-secureboot-deleteKey.jpg

Disinstallazione dei driver NVIDIA

YaST

  1. Avviare YaST, andare in: Software -> Gestione pacchetti
  2. Modificare il "filtro" per filtrare in base ai Repository
  3. Selezionare il rispettivo repository NVIDIA
  4. Selezionare per l'eliminazione tutti i pacchetti installati da questo repository, quindi premere "Accetta". Se si verificassero dei conflitti, ignorarli e scegliere di rompere e dipendenze.
  5. Ora selezionare in YaST: Software -> Repository dei programmi
  6. Selezionare il rispettivo repository NVIDIA e contrassegnarlo come "disabilitato" - non cancellarlo in quanto verrebbe abilitato nuovamente la prossima volta che i repository verranno sincronizzati col server.

La disinstallazione dei driver proprietari ripristinerà il file della configurazione precedente di X /etc/X11/xorg.conf, se ne esisteva uno. Se però nel frattempo l'hardware è stato modificato, potrebbe dover essere necessario la modifica manuale dello stesso.

Zypper

 # zypper rm <x11-video-nvidiaG04 or x11-video-nvidiaG05>

Se ciò non elimina tutti i pacchetti, se ne possono trovare altri con

 # zypper se -ir NVIDIA

o

 # zypper lr
 # zypper se -ir <il numero del repository>

Il gestore dell'installazione del driver NVIDIA potrebbe anche aver aggiunto il nouveau alla blacklist: per poter eseguire nuovamente il driver DDX modesetting o il driver DDX nouveau bisogna assicurarsi che non ci siano file che contengono le parole blacklist nouveau in /etc/modprobe.d/, in quanto il gestore dell'installazione potrebbe non essere riuscito a rimuoverle.

Dopo la disinstallazione dei pacchetti potrebbe essere necessario eseguire:

 # mkinitrd

Risoluzione dei problemi

  • SDB:NVIDIA risoluzione problemi
  • Se il computer si blocca prima della schermata di accesso in seguito all'installazione dei driver proprietari e si sta utilizzando GDM (di solito il caso in cui si sta utilizzando GNOME), provare ad aggiungere WaylandEnable=false in /etc/gdm/custom.conf.
  • Si può verificare che il driver sia stato effettivamente caricato eseguendo lsmod | grep nvidia nel terminale. Il risultato dovrebbe essere simile a questo:
nvidia_drm             57344  2
nvidia_modeset       1187840  3 nvidia_drm
nvidia_uvm           1110016  0
nvidia              19771392  81 nvidia_uvm,nvidia_modeset
drm_kms_helper        229376  2 nvidia_drm,i915
drm                   544768  13 drm_kms_helper,nvidia_drm,i915

Il numero nella colonna in mezzo non deve necessariamente essere lo stesso. Se il driver è stato caricato allora il problema si trova un'altra parte, poiché ciò significa che è stato installato correttamente.

  • Come affermato in precedenza in questa guida, se si sta utilizzando l'avvio sicuro bisogna assicurarsi di aver accettato il MOK, diversamente il modulo non verrà caricato. Un modo per sapere se l'avvio sicuro potrebbe bloccare il modulo è guardare l'output di dmesg e cercare degli avvisi come i seguenti:
Lockdown: modprobe: unsigned module loading is restricted; see man kernel_lockdown.7
modprobe: ERROR: could not insert 'nvidia': Required key not available

Vedere anche

Optimus

Agli utenti che hanno configurazioni hardware con Optimus di NVIDIA (di solito nei computer portatili) viene consigliato di leggere SDB:NVIDIA SUSE Prime. È possibile eseguire l'offload sulla GPU dedicata utilizzando le istruzioni su PRIME Render Offload.

CUDA

Gli sviluppatori e gli utenti interessati al calcolo ad alte prestazioni potrebbero voler installare le librerie CUDA. Vengono fornite delle istruzioni aggiuntive su CUDA Toolkit Documentation e il collegamento per scaricarle su NVIDIA Developer.

Collegamenti esterni