Problèmes avec le pilote graphique Nvidia et CUDA après la mise à niveau apt-get

9

J'ai précédemment installé CUDA 7.5 sur Ubuntu 14.04 en utilisant l'installation "deb (réseau)" de Nvidia. Cela a fonctionné pendant quelques mois, jusqu'à ce que je cours sudo apt-get upgradeaujourd'hui. Après cela, j'ai rencontré ce qui suit

$ nvidia-smi
modprobe: ERROR: ../libkmod/libkmod-module.c:809 kmod_module_insert_module() could not find module by name='nvidia_352'
modprobe: ERROR: could not insert 'nvidia_352': Function not implemented
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

La course sudo nvidia-smin'est pas différente. Je ne parviens pas à me connecter en mode GUI (il revient simplement à l'écran de connexion après avoir entré mon mot de passe), mais je peux accéder au terminal.

J'ai pu restaurer la fonctionnalité graphique, mais j'ai du mal à réinstaller CUDA après cela. Pouvez-vous m'aider s'il vous plaît?

Restauration des graphiques

J'ai trouvé que je peux faire fonctionner à nouveau les graphiques en faisant

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

puis éditer /etc/apt/sources.list.d/cuda.listpour supprimer toutes les lignes, puis faire

$ sudo apt-get install nvidia-352

et redémarrer le système. Après cela, nvidia-smifonctionne à nouveau. Cependant, j'ai encore besoin de réinstaller CUDA.

Essayer de réinstaller CUDA

J'ai essayé de restaurer le contenu de /etc/apt/sources.list.d/cuda.listpuis de le faire sudo apt-get install cuda. J'ai remarqué ce message d'erreur:

Loading new nvidia-352-352.93 DKMS files...
Building only for 3.13.0-68-generic
Building for architecture x86_64
Building initial module for 3.13.0-68-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-352.0.crash'
Error! Bad return status for module build on kernel: 3.13.0-68-generic (x86_64)

Après cela, le système retrouve son comportement au démarrage. Par exemple, nvidia-smiimprime le message d'erreur ci-dessus, et après la construction et l'exécution, deviceQueryj'obtiens une erreur similaire:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

modprobe: ERROR: ../libkmod/libkmod-module.c:809 kmod_module_insert_module() could not find module by name='nvidia_352'
modprobe: ERROR: could not insert 'nvidia_352': Function not implemented
cudaGetDeviceCount returned 38
-> no CUDA-capable device is detected
Result = FAIL

Il me semble que lorsque j'ai installé CUDA pour la première fois, cela ne fonctionnerait que si je le faisais sans mettre à jour le nvidia-352package à partir des référentiels Nvidia. Cependant, maintenant, je ne semble pas avoir la possibilité de le faire, car lorsque je l'exécute, sudo apt-get install cudail met automatiquement à jour le nvidia-352package:

Unpacking nvidia-352 (352.93-0ubuntu1) over (352.63-0ubuntu0.14.04.1) ...

Si j'essaie de définir les versions explicitement, j'obtiens

$ sudo apt-get install cuda-drivers nvidia-352=352.63-0ubuntu0.14.04.1 nvidia-352-dev=352.63-0ubuntu0.14.04.1
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies.
 cuda-drivers : Depends: nvidia-352 (>= 352.93) but 352.63-0ubuntu0.14.04.1 is to be installed
                Depends: nvidia-352-dev (>= 352.93) but 352.63-0ubuntu0.14.04.1 is to be installed
E: Unable to correct problems, you have held broken packages.

En fait, si j'essaie d'utiliser la version 352.63-0ubuntu1au lieu de 352.63-0ubuntu0.14.04.1faire

$ sudo apt-get install nvidia-352=352.63-0ubuntu1

alors cela suffit pour rompre la connexion graphique et provoquer l' nvidia-smiaffichage du message d'erreur ci-dessus.

Diagnostique

$ lspci | grep -i vga
01:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X] (rev a1)

$ dpkg -l | grep -i nvidia
ii  bbswitch-dkms                                         0.7-2ubuntu1                                        amd64        Interface for toggling the power on nVidia Optimus video cards
ii  libcuda1-352                                          352.93-0ubuntu1                                     amd64        NVIDIA CUDA runtime library
ii  nvidia-352                                            352.93-0ubuntu1                                     amd64        NVIDIA binary driver - version 352.93
ii  nvidia-352-dev                                        352.93-0ubuntu1                                     amd64        NVIDIA binary Xorg driver development files
ii  nvidia-352-uvm                                        352.93-0ubuntu1                                     amd64        Transitional package for nvidia-352
ii  nvidia-modprobe                                       352.93-0ubuntu1                                     amd64        Load the NVIDIA kernel driver and create device files
ii  nvidia-opencl-icd-352                                 352.93-0ubuntu1                                     amd64        NVIDIA OpenCL ICD
ii  nvidia-prime                                          0.6.2                                               amd64        Tools to enable NVIDIA's Prime
ii  nvidia-settings                                       352.93-0ubuntu1                                     amd64        Tool for configuring the NVIDIA graphics driver
ptérojacktyle
la source

Réponses:

6

J'avais un problème similaire. A pu résoudre ce problème en installant la version recommandée du pilote nvidia.

sudo apt-get install ubuntu-drivers-common

sudo ubuntu-drivers devices

sudo apt-get install <recommended version>
Prateek Dorwal
la source
3
J'ai dû lancer la commande "sudo modprobe nvidia" après les commandes ci-dessus, puis tout fonctionnait
MARK
@MARK J'obtiens une erreur de modprobe: ERREUR: impossible d'insérer 'nvidia_396': clé requise non disponible. Des conseils?
Aerin
4

Un ami a pu le résoudre pour moi!

La solution qu'il m'a montrée était de (après avoir supprimé tous les packages nvidia comme auparavant)

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get install nvidia-364

puis téléchargez le programme d'installation .run CUDA (pour moi, c'était cuda_7.5.18_linux.run) à partir de Nvidia et soyez prudent de choisir "non" lorsqu'on vous demande si vous souhaitez installer le pilote fourni avec CUDA.

ptérojacktyle
la source