Récemment, CUDA a été mis à niveau vers la version 9.2 et le pilote nvidia vers nvidia-396 avec une mise à jour automatique régulière sur mon ordinateur portable compatible Ubuntu 16.04 Optimus, avec la carte vidéo Intel activée par défaut et l'accès à NVidia via bumblebee. Peu de temps après, j'ai essayé de lancer une application CUDA (en utilisant optirun <command>
), et j'ai constaté que cela ne fonctionnait pas.
La première chose que j'ai faite a été de remplacer toutes les entrées de "nvidia-390" (si je me souviens bien, il s'agissait de 390) dans /etc/bumblebee/bumblebee.conf
à "nvidia-396" - cela m'a déjà aidé plus d'une fois.
Ne fonctionne toujours pas (Cannot access secondary GPU - error: Could not load GPU driver
). dmesg
, et il y a une raison:
[ 314.733284] NVRM: The NVIDIA GeForce GT 520M GPU installed in this system is
NVRM: supported through the NVIDIA 390.xx Legacy drivers. Please
NVRM: visit http://www.nvidia.com/object/unix.html for more
NVRM: information. The 396.26 NVIDIA driver will ignore
NVRM: this GPU. Continuing probe...
Oui, mon ordinateur portable est assez vieux, mais avec SSD et 12 Go RAM je ne ressens toujours pas le besoin de le remplacer. OK, on dirait que je dois vivre avec nvidia-390:
Sudo apt install nvidia-390
On m'a dit qu'un grand nombre de paquets dépendants seraient désinstallés, y compris, semble-t-il, tous les éléments de CUDA 9.2. Zut. Je suis donc probablement coincé avec CUDA 9.0. Donc, après avoir tout désinstallé (et archivé dans synaptic, aucun paquet de nvidia-396 ou de cuda-9.2 n'est plus disponible), j'ai essayé de le récupérer:
Sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_AMD64.deb
Sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
Sudo apt-get update
Sudo apt-get install cuda
Trois commandes, mais la dernière ... Houston, nous avons un problème!
$ Sudo apt install cuda
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package cuda
J'ai essayé la solution à partir d'une réponse à cette question . Installation de CUDA 8 sur Ubuntu 16: impossible de localiser le paquet cuda , c'est-à-dire:
dpkg -l | grep '^rc' | awk '{print $2}' | Sudo xargs dpkg --purge
Il a effectivement nettoyé beaucoup de choses, y compris certaines des paquets liés à cuda-9.2. Cependant, le problème est toujours là: je ne peux plus installer CUDA, peu importe si j'essaie la version 9.0 ou une autre version.
Des idées?
C'est un nouveau problème:
SI vous pouvez mettre la main sur une pré-version du package de pilotes ubuntu 396.26 ALORS
Sudo apt-get install cuda
aller dans synaptic, recherchez cuda en minuscule (il existe!), Marquez-le pour qu'il soit installé et mettez à jour ses dépendances.Voici une solution de contournement plus ancienne de NVIDIA et de CUDA en tant que solution pour la reconnaissance complète des cartes Optimus.
Vous devez d'abord désinstaller les pilotes nvidia installés, redémarrer sans pilotes nvidia. Ensuite, procéder comme ici est décrit dans le lien suivant. C'est humble, mais cela fonctionne comme solution pour votre ancien chipset.
Comment puis-je installer le pilote Nvidia GT 520 et Cuda 5.0 dans Ubuntu13.04?
Au bout d’un moment, j’ai pu contourner ce problème. Qu'est-ce que j'ai fait exactement:
cuda
dans Synaptic.cuda-drivers
vers 390.xx dans Synaptic.Est-ce que apt update
puis dpkg --configure -a
pour résoudre les dépendances brisées, puis apt update
à nouveau.
Ensuite, Sudo apt install cuda
fonctionnait, mais me proposait quand même d'installer cuda 9.2 et de passer à nvidia-396
, malgré le verrouillage du pilote. Mais Sudo apt install cuda-9-1
ne m'a pas compilé et m'a permis d'installer CUDA 9.1 avec nvidia-390
(j'ai constaté que le pilote 9.1 fonctionne également avec nvidia-390
, c'est pourquoi pas la 9.0).
Après cela (et après un redémarrage), toutes mes applications CUDA fonctionnent avec optirun
jusqu'à maintenant. :)
Le seul ennui mineur que j'ai rencontré plus tard est que apt dist-upgrade
m'a toujours proposé de mettre à niveau nvidia-390
(mais que apt upgrade
ne l'utilisait pas). Résolu ce problème avec apt-mark hold nvidia-390
, et le paquet apparaît maintenant comme "verrouillé" dans Synaptic. De plus, même si j'essaye de lancer apt install cuda
manuellement, il y a maintenant une erreur:
The following packages have unmet dependencies:
cuda : Depends: cuda-9-2 (>= 9.2.148) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
mais il n'y a pas de paquets cassés en fait, il semble donc que je ne sois plus en mesure d'installer accidentellement la mauvaise version de CUDA.