J'essaie d'installer le pilote NVIDIA le plus récent dans Debian Stretch. Je l' ai téléchargé à NVIDIA-Linux-x86_64-390.48.run
partir de là , mais lorsque je tente de faire
sudo sh ./NVIDIA-Linux-x86_64-390.48.run
comme suggéré, un message d'erreur apparaît.
ERROR: An NVIDIA kernel module 'nvidia-drm' appears to already be loaded in your kernel. This may be because it is in use (for example, by an X server, a CUDA program, or
the NVIDIA Persistence Daemon), but this may also happen if your kernel was configured without support for module unloading. Please be sure to exit any programs
that may be using the GPU(s) before attempting to upgrade your driver. If no GPU-based programs are running, you know that your kernel supports module unloading,
and you still receive this message, then an error may have occured that has corrupted an NVIDIA kernel module's usage count, for which the simplest remedy is to
reboot your computer.
Lorsque j'essaie de savoir qui utilise nvidia-drm
(ou nvidia_drm
), je ne vois rien.
~$ sudo lsof | grep nvidia-drm
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
~$ sudo lsof -e /run/user/1000/gvfs | grep nvidia-drm
~$
Et quand j'essaye de le retirer, il dit qu'il est utilisé.
~$ sudo modprobe -r nvidia-drm
modprobe: FATAL: Module nvidia_drm is in use.
~$
J'ai redémarré et commencé en mode texte uniquement (en appuyant sur Ctrl + Alt + F2 avant de donner le nom d'utilisateur / mot de passe), mais j'ai eu la même erreur.
En plus de cela, comment "savoir que mon noyau prend en charge le déchargement de module"?
Je reçois quelques avertissements au démarrage liés à nvidia, je ne sais pas s'ils sont liés, cependant:
Apr 30 00:46:15 debian-9 kernel: nvidia: loading out-of-tree module taints kernel.
Apr 30 00:46:15 debian-9 kernel: nvidia: module license 'NVIDIA' taints kernel.
Apr 30 00:46:15 debian-9 kernel: Disabling lock debugging due to kernel taint
Apr 30 00:46:15 debian-9 kernel: NVRM: loading NVIDIA UNIX x86_64 Kernel Module 375.82 Wed Jul 19 21:16:49 PDT 2017 (using threaded interrupts)
systemctl stop systemd-logind
avant de décharger les modules.systemctl stop systemd-logind.service
, mais cela ferme l'écran et me ramène à la connexion graphique, où je dois refaire Ctrl + Alt + F2.Réponses:
J'imagine que vous voulez arrêter le gestionnaire d'affichage, ce que je soupçonne d'utiliser les pilotes Nvidia.
Après être passé à une console texte (en appuyant sur Ctrl+ Alt+ F2) et vous être connecté en tant que root, utilisez la commande suivante pour désactiver la cible graphique, ce qui permet au gestionnaire d'affichage de fonctionner:
À ce stade, je m'attends à ce que vous puissiez décharger les pilotes Nvidia en utilisant
modprobe -r
(ourmmod
directement):Une fois que vous avez réussi à le remplacer / le mettre à niveau et que vous êtes prêt à redémarrer l'environnement graphique, vous pouvez utiliser cette commande:
la source
modprobe
étape.modprobe
pas non plus.systemctl isolate
commande est de le faire. Mais il est possible que ce ne soit pas correctement configuré dans votre système ... Vérifiezps -ef
et voyez si vous pouvez repérer ce qui pourrait utiliser le pilote, puis arrêtez ce processus. Cela devrait vous permettre de décharger le pilote.lsof
répertorie tous les fichiers utilisés par les processus de l'espace utilisateur. Maisnvidia_drm
est un module du noyau, donclsof
ne verra pas nécessairement s'il est réellement utilisé ou non. (Le fichier du module ne sera pas ouvert car le noyau l'a déjà complètement chargé dans la RAM. Mais le module peut fournir des services à l'espace utilisateur ou à d'autres composants du noyau, et c'est ce qui empêche le déchargement du module.)Exécutez
lsmod | grep nvidia.drm
et voyez les chiffres à droite dunvidia_drm
nom du module. Le premier nombre est simplement la taille du module; le second est le nombre d'utilisations. Afin de supprimer le module avec succès, le nombre d'utilisations doit d'abord être 0.Si le serveur X11 fonctionne et utilise le
nvidia
pilote, alors lenvidia_drm
module du noyau sera certainement utilisé. Vous aurez donc besoin, au minimum, de basculer dans la console texte et d'arrêter le serveur X11. Habituellement, cela peut être fait en arrêtant le service X Display Manager que vous utilisez (dépend de l'environnement de bureau que vous utilisez).Comme le message d'erreur l'a dit, si vous exécutez
nvidia-persistenced
, vous devrez également arrêter cela avant de pouvoir décharger lenvidia_drm
module.la source
lsmod
me dit qu'il y a 1 processus à utilisernvidia_drm
. Alors je l'ai faitsudo /etc/init.d/gdm3 stop
, ce qui est intervenuok
pour l'arrêter. Mais encore 1 processuslsmod
. Maintenant à l'intérieur de Gnome, desps aux | grep nvidia
spectacles[irq/129-nvidia]
et[nvidia]
nonnvidia-persistenced
. En outre, icilsmod
montre 2 processus utilisantnvidia_drm
. Je suis coincé.J'avais un problème similaire.
Je l'ai corrigé en purgeant tous les packages NVIDIA.
Supprimez toutes les installations NVIDIA précédentes avec ces 2 commandes:
$ sudo apt-get purge nvidia*
$ sudo apt-get autoremove
Le module doit être retiré.
Redémarrez et continuez.
la source
Vous signalez dans les commentaires que l'arrêt du service systemd-logind vous ramène à la connexion graphique . Si vous disposez d'une connexion graphique, X est en cours d'exécution, le pilote vidéo est donc chargé et utilisé. Cela explique très probablement en partie pourquoi le module nvidia-drm est utilisé.
De plus, vous trahissez une idée fausse apparente lorsque vous dites
Appuyez sur Ctrl + Alt + F2 pour basculer vers un terminal virtuel n ° 2, qui pourrait bien être configuré pour une connexion en mode texte, mais c'est loin de "démarrer en mode texte". Si vous aviez un écran de connexion graphique sur le terminal virtuel par défaut, alors X est en cours d'exécution, et le passage à un autre VT ne change rien à cela. Vous vous connectez simplement à une session non X.
La première chose et la plus simple à essayer est d'arrêter le serveur X. La manière à l'ancienne de le faire serait de se connecter à votre session en mode texte et d'exécuter la commande
pour passer au niveau d'exécution 3. Cela devrait également fonctionner avec systemd, mais la manière native de systemd serait d'exécuter à la place
Les deux nécessitent un privilège, bien sûr, vous devrez donc utiliser
sudo
ou vous rendre root.Si cela ne supprime pas le module, ou au moins vous permet de le faire manuellement, alors votre meilleur pari suivant serait de démarrer le système directement dans le niveau d'exécution 3 (cible multi-utilisateurs), ou peut-être même dans le niveau d'exécution 1 (cible de sauvetage). Je le fais généralement en ajoutant "3" (ou "1") à la fin de la liste des arguments du noyau au moment du démarrage via le chargeur de démarrage. Vous pouvez également modifier la cible de démarrage par défaut comme décrit dans cet article .
Notez également que le pilote nVidia est disponible dans des packages prédéfinis pour la plupart des distributions Linux. Rares sont ceux qui incluent ces packages dans leur propre référentiel standard car le pilote est, après tout, propriétaire, mais vous pouvez sûrement trouver un référentiel tiers réputé qui en dispose. Je recommande fortement d'utiliser de tels packages au lieu d'exécuter directement le programme d'installation, mais pour y arriver d'où vous êtes maintenant, vous devrez peut-être d'abord désinstaller manuellement le pilote.
la source
Installation de CUDA
1) Téléchargez la dernière boîte à outils CUDA
2) Basculez vers tty3 en appuyant sur Ctl + Alt + F3
3) Déchargez nvidia-drm avant de continuer.
3a) Isoler multi-user.target
3b) Notez que nvidia-drm est actuellement utilisé.
3c) Décharger nvidia-drm
4d) Notez que nvidia-drm n'est plus utilisé.
5) Accédez à votre dossier de téléchargement et exécutez l'installation de cuda.
6) Répondez à toutes les invites lors de l'installation.
7) Une fois l'installation terminée, vérifiez que la version CUDA a été mise à jour.
8) Redémarrez l'interface graphique.
la source
J'ai eu le même problème avec Debian Stretch lors de la tentative d'installation des pilotes Nvidia. En mode texte, ma seule solution était de supprimer le pilote, de réinstaller gdm et gnome-shell. Je sais que c'est une solution maladroite, mais je me souviens que j'ai d'abord essayé de réparer le gnome-shell et de supprimer uniquement le pilote Nvidia et de réinstaller GDM. Il s'est avéré qu'il était beaucoup plus facile de réinstaller tout le shell.
la source
J'ai également rencontré le même problème. La raison de l'erreur est que j'ai accidentellement sélectionné "Installer le pilote nvidia" lors de l'installation de cuda.
Ainsi, lors de l'installation de CUDA, lorsque vous rencontrez les options suivantes:
Veuillez sélectionner q , le problème sera résolu.
la source
ce qui a fonctionné pour moi était de changer de système pour commencer dans le texte plus
puis redémarrez et installez le pilote nvidia cuda une fois terminé, vous pouvez changer le système pour redémarrer en mode graphique
la source
L'arrêt l'a
systemd-logind
corrigé pour moi:Ceci est suggéré comme solution de contournement dans ce problème github sur la page github nvidia-xrun:
la source