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

J’ai précédemment installé CUDA 7.5 sur Ubuntu 14.04 à l’aide de l’installation “deb (réseau)” de Nvidia. Cela a fonctionné pendant quelques mois, jusqu’à ce que je sudo apt-get upgrade aujourd’hui sudo apt-get upgrade . Après avoir fait cela, j’ai rencontré le suivant

 $ 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. 

Lancer sudo nvidia-smi n’est pas différent. Je ne parviens pas à me connecter en mode graphique (il suffit de revenir à l’écran de connexion après avoir saisi 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 par la suite. Pouvez-vous m’aider s’il vous plaît?

Restauration de graphiques

J’ai trouvé que je pouvais faire fonctionner les graphiques à nouveau en faisant

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

puis éditez /etc/apt/sources.list.d/cuda.list pour supprimer toutes les lignes, puis faites

 $ sudo apt-get install nvidia-352 

et redémarrer le système. Après cela, nvidia-smi fonctionne à nouveau. Cependant, je dois toujours réinstaller CUDA.

Essayer de réinstaller CUDA

J’ai essayé de restaurer le contenu de /etc/apt/sources.list.d/cuda.list puis de 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) 

Cela fait, le système revient au comportement initial. Par exemple, nvidia-smi imprime le message d’erreur ci-dessus et, après la construction et l’exécution de deviceQuery une erreur similaire se produit:

 ./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 me rappeler que lorsque j’ai installé CUDA pour la première fois, cela ne fonctionnerait que si je le faisais sans mettre à jour le paquet nvidia-352 partir des référentiels Nvidia. Cependant, je ne semble pas avoir l’option de le faire, car lorsque sudo apt-get install cuda met automatiquement à jour le paquet nvidia-352 :

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

Si je tente de définir les versions explicitement, je reçois

 $ 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 dissortingbution 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-0ubuntu1 au lieu de 352.63-0ubuntu0.14.04.1 en faisant

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

alors cela suffit pour casser la connexion graphique et nvidia-smi à afficher le message d’erreur ci-dessus.

Diagnostics

 $ 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 

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  

Un ami a été capable de le résoudre pour moi!

La solution qu’il m’a montrée était de (après avoir supprimé tous les paquets nvidia comme avant)

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

téléchargez ensuite le programme d’installation .run CUDA (cuda_7.5.18_linux.run pour moi) de Nvidia et veillez à choisir «non» lorsque le système vous demande si vous souhaitez installer le pilote fourni avec CUDA.