Ich versuche, den aktuellsten NVIDIA-Treiber in Debian Stretch zu installieren. Ich habe NVIDIA-Linux-x86_64-390.48.run
von hier heruntergeladen , aber wenn ich es versuche
sudo sh ./NVIDIA-Linux-x86_64-390.48.run
Wie vorgeschlagen, wird eine Fehlermeldung angezeigt.
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.
Wenn ich herauszufinden versuche, wer nvidia-drm
(oder nvidia_drm
) verwendet, sehe ich nichts.
~$ 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
~$
Und wenn ich versuche, es zu entfernen, heißt es, es wird verwendet.
~$ sudo modprobe -r nvidia-drm
modprobe: FATAL: Module nvidia_drm is in use.
~$
Ich habe neu gestartet und im Nur-Text-Modus gestartet (durch Drücken von Strg + Alt + F2, bevor Benutzername / Passwort eingegeben wurden), habe aber den gleichen Fehler erhalten.
Woher weiß ich außerdem, dass mein Kernel das Entladen von Modulen unterstützt?
Ich bekomme beim Booten ein paar Warnungen in Bezug auf nvidia, keine Ahnung, ob sie verwandt sind:
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
bevor Sie die Module entladen.systemctl stop systemd-logind.service
, aber das schließt den Bildschirm und bringt mich zurück zum Grafik-Login, wo ich noch einmal Strg + Alt + F2 machen muss.Antworten:
Ich stelle mir vor, Sie möchten den Anzeigemanager anhalten. Ich vermute, dass er die Nvidia-Treiber verwendet.
Verwenden Sie nach dem Wechsel zu einer Textkonsole (Drücken von Ctrl+ Alt+ F2) und dem Anmelden als Root den folgenden Befehl, um das grafische Ziel zu deaktivieren. Dadurch wird der Display-Manager weiter ausgeführt:
An diesem Punkt würde ich erwarten, dass Sie die Nvidia-Treiber mit
modprobe -r
(oderrmmod
direkt) entladen können :Sobald Sie es ersetzt / aktualisiert haben und bereit sind, die grafische Umgebung erneut zu starten, können Sie den folgenden Befehl verwenden:
quelle
modprobe
Schritt geklappt.modprobe
Schritt.systemctl isolate
Befehls ist es, das zu tun. Aber es ist möglich, dass das in Ihrem System nicht richtig konfiguriert ist. Überprüfenps -ef
Sie, ob Sie erkennen können, was möglicherweise den Treiber verwendet, und halten Sie diesen Prozess dann an. Das sollte es Ihnen ermöglichen, den Treiber zu entladen.lsof
Listet alle Dateien auf, die von Userspace-Prozessen verwendet werden. Istnvidia_drm
aber ein Kernelmodul, solsof
wird nicht unbedingt ersichtlich, ob es tatsächlich in Gebrauch ist oder nicht. (Die Modul Datei wird nicht geöffnet werden , da der Kernel bereits vollständig es in dem Arbeitsspeicher geladen ist. Aber das Modul könnte Dienstleistungen für die User - Space oder anderen Kernel - Komponenten bereitstellt, und , Das ist es, was das Entladen des Moduls verhindert.)Führen Sie aus,
lsmod | grep nvidia.drm
und sehen Sie sich die Zahlen rechts neben demnvidia_drm
Modulnamen an. Die erste Zahl ist einfach die Größe des Moduls; Das zweite ist die Nutzungsanzahl. Um das Modul erfolgreich zu entfernen, muss der Nutzungszähler zuerst 0 sein.Wenn der X11-Server ausgeführt wird und den
nvidia
Treiber verwendet, wird dasnvidia_drm
Kernelmodul mit größter Sicherheit verwendet. Sie müssen also zumindest in die Textkonsole wechseln und den X11-Server herunterfahren. In der Regel können Sie dazu den von Ihnen verwendeten X Display Manager-Dienst stoppen (abhängig von der verwendeten Desktop-Umgebung).Wie in der Fehlermeldung angegeben, müssen Sie die Ausführung
nvidia-persistenced
beenden, bevor Sie dasnvidia_drm
Modul entladen können .quelle
lsmod
Sagt mir nach Strg + Alt + F2, dass 1 Prozess verwendet wirdnvidia_drm
. Also habe ich es getansudo /etc/init.d/gdm3 stop
, wasok
es gestoppt hat. Aber noch 1 Prozess inlsmod
. Nun in Gnome,ps aux | grep nvidia
Shows[irq/129-nvidia]
und[nvidia]
doch nichtnvidia-persistenced
. Auch hierlsmod
zeigt 2 Prozesse mitnvidia_drm
. Ich stecke fest.Ich hatte ein ähnliches Problem.
Ich habe es behoben, indem ich alle NVIDIA-Pakete gelöscht habe.
Entfernen Sie alle vorherigen NVIDIA-Installationen mit diesen 2 Befehlen:
$ sudo apt-get purge nvidia*
$ sudo apt-get autoremove
Modul sollte entfernt werden.
Starten Sie neu und fahren Sie fort.
quelle
Sie berichten in Kommentaren, dass Sie durch Beenden des Dienstes systemd-logind wieder zur grafischen Anmeldung zurückkehren. Wenn Sie eine grafische Anmeldung haben, wird X ausgeführt, sodass der Grafiktreiber geladen und verwendet wird. Dies erklärt sehr wahrscheinlich teilweise, warum das nvidia-drm-Modul verwendet wird.
Außerdem verrätst du ein offensichtliches Missverständnis, wenn du sagst
Durch Drücken von Strg + Alt + F2 wird zu einem virtuellen Terminal Nr. 2 gewechselt, das möglicherweise für die Anmeldung im Textmodus konfiguriert ist, von "Starten im Textmodus" jedoch weit entfernt ist. Wenn Sie auf dem virtuellen Standardterminal einen grafischen Anmeldebildschirm hatten, wird X ausgeführt, und der Wechsel zu einem anderen VT ändert dies nicht. Sie melden sich nur bei einer Nicht-X-Sitzung an.
Der erste und einfachste Versuch besteht darin, den X-Server tatsächlich herunterzufahren. Die alte Art, dies zu tun, besteht darin, sich bei Ihrer Sitzung im Textmodus anzumelden und den Befehl auszuführen
auf runlevel 3 wechseln. Das sollte auch mit systemd funktionieren, aber der systemeigene Weg wäre, stattdessen zu laufen
Für beide sind natürlich Berechtigungen erforderlich, daher müssen Sie
sudo
sich selbst als root anmelden.Wenn das Modul dadurch nicht entfernt wird oder zumindest manuell ausgeführt werden kann, booten Sie das System am besten direkt in Runlevel 3 (Mehrbenutzerziel) oder sogar in Runlevel 1 (Rettungsziel). Normalerweise füge ich dazu "3" (oder "1") am Ende der Kernel-Argumentliste beim Booten über den Bootloader hinzu. Sie können das Standardstartziel auch wie in diesem Artikel beschrieben ändern .
Beachten Sie auch, dass der nVidia-Treiber in vorgefertigten Paketen für die meisten Linux-Distributionen verfügbar ist. Nur wenige enthalten diese Pakete in ihren eigenen Standard-Repos, weil der Treiber ja proprietär ist, aber Sie können mit Sicherheit ein seriöses Repo von Drittanbietern finden, das es hat. Ich empfehle dringend, solche Pakete zu verwenden, anstatt das Installationsprogramm direkt auszuführen, aber um dorthin zu gelangen, wo Sie sich gerade befinden, müssen Sie möglicherweise zuerst den Treiber manuell deinstallieren.
quelle
CUDA-Installation
1) Laden Sie das neueste CUDA Toolkit herunter
2) Wechseln Sie zu tty3, indem Sie Strg + Alt + F3 drücken
3) Entladen Sie nvidia-drm, bevor Sie fortfahren.
3a) Isolieren Sie das Mehrbenutzerziel
3b) Beachten Sie, dass derzeit nvidia-drm verwendet wird.
3c) nvidia-drm entladen
4d) Beachten Sie, dass nvidia-drm nicht mehr verwendet wird.
5) Gehen Sie in Ihren Download-Ordner und führen Sie die cuda-Installation aus.
6) Beantworten Sie alle Eingabeaufforderungen während der Installation.
7) Vergewissern Sie sich nach Abschluss der Installation, dass die CUDA-Version aktualisiert wurde.
8) Starten Sie die GUI erneut.
quelle
Hatte das gleiche Problem mit Debian Stretch beim Versuch, die Nvidia-Treiber zu installieren. Im Text-Mod bestand meine einzige Lösung darin, den Treiber zu entfernen, gdm und gnome-shell neu zu installieren. Ich weiß, dass es eine ungeschickte Lösung ist, aber ich erinnere mich, dass ich zuerst versucht habe, die Gnome-Shell zu reparieren und nur den Nvidia-Treiber zu entfernen und GDM neu zu installieren. Es stellte sich heraus, dass es viel einfacher war, die gesamte Shell neu zu installieren.
quelle
Ich bin auch auf das gleiche Problem gestoßen. Der Grund für den Fehler war, dass ich versehentlich "Install nvidia driver" während der Installation von cuda ausgewählt habe.
Wenn Sie also während der Installation von CUDA auf die folgenden Optionen stoßen:
Bitte wählen Sie q , das Problem wird gelöst.
quelle
Was für mich funktionierte war, das System zu ändern, um mehr im Text zu beginnen
Starten Sie dann den nvidia cuda-Treiber neu und installieren Sie ihn, wenn Sie fertig sind. Möglicherweise möchten Sie das System so ändern, dass es wieder im Grafikmodus startet
quelle
Das Beenden hat
systemd-logind
es für mich behoben:Dies wird als Problemumgehung in dieser Github-Ausgabe auf der Nvidia-Xrun-Github-Seite vorgeschlagen:
quelle