
Offensichtlich bin ich ein Anfänger unter den Ubuntu-Benutzern, also verzeihen Sie mir bitte etwaige schlimme Fehler, die ich machen könnte, oder erforderliche Kenntnisse, die ich möglicherweise nicht habe :D
Das erwartete Verhalten
Ich habe einen Laptop, auf Dell XPS13
dem eine kürzlich installierte Version läuft Ubuntu 20.04 focal
, auf der ich das Videoerlebnis mithilfe Nvidia GTX 1660 SUPER
einer eGPU verbessern möchte Razor Core X
, idealerweise mithilfe der Ausgabe auf einem externen Display.
Das tatsächliche Verhalten
Mir ist es nie gelungen, etwas anderes als einen schwarzen Bildschirm auf dem externen Display zu erhalten.
Was ich versucht habe
Ich habe die Thunderbolt-Unterstützung im BIOS aktiviert und so eingestellt, dass keine Sicherheit erforderlich ist, sodass es erkannt wird, sobald ich es anschließe. Ich habe die aufgelisteten Treiber installiert, ubuntu-driver devices
hauptsächlich die Version 440 des Nvidia-Treibers:
ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:1c.4/0000:03:00.0/0000:04:01.0/0000:06:00.0/0000:07:01.0/0000:08:00.0 ==
modalias : pci:v000010DEd000021C4sv00001462sd0000C758bc03sc00i00
vendor : NVIDIA Corporation
model : TU116 [GeForce GTX 1660 SUPER]
manual_install: True
driver : nvidia-driver-440 - distro non-free recommended
driver : nvidia-driver-440-server - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
Ich habe es ausgeführt sudo ubuntu-driver autoinstall
, aber reboot
der Anmeldebildschirm wird immer wieder angezeigt, obwohl ich mein Kennwort korrekt eingebe.
Wenn ich die eGPU ausstecke, kann ich den Anmeldebildschirm überspringen.
Wenn ich es erneut anschließe und ausführe, nvidia-smi
erhalte ich Folgendes:
sudo nvidia-smi
[sudo] password for andrei:
Tue Sep 8 17:55:42 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100 Driver Version: 440.100 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 166... Off | 00000000:3C:00.0 Off | N/A |
| 0% 40C P0 12W / 130W | 0MiB / 5944MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Weitere Hinweise:
- ich habe keine
/etc/X11/xorg.conf
- das
/usr/lib/modprobe.d/nvidia-graphics-drivers.conf
sieht so aus:
blacklist nouveau
blacklist lbm-nouveau
alias nouveau off
alias lbm-nouveau off
Ich laufe auch nvidia-settings
und bekomme Folgendes:
ERROR: Unable to load info from any available system
(nvidia-settings:4382): GLib-GObject-CRITICAL **: 18:09:30.505: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** Message: 18:09:30.507: PRIME: Requires offloading
** Message: 18:09:30.507: PRIME: is it supported? yes
** Message: 18:09:30.534: PRIME: Usage: /usr/bin/prime-select nvidia|intel|on-demand|query
** Message: 18:09:30.534: PRIME: on-demand mode: "1"
** Message: 18:09:30.534: PRIME: is "on-demand" mode supported? yes
Es erfolgt keine Ausgabe auf dem externen Display.
Ich habe es auch mit dem Ubuntu-Grafiktreiber-Repository versucht sudo apt-add-repository ppa:graphics-drivers/ppa
und den oben dargestellten Vorgang mit einem neu empfohlenen Treiber wiederholt, nvidia-driver-450
die Ergebnisse waren jedoch ähnlich, hauptsächlich die Unfähigkeit, sich anzumelden oder ein flackernder Anmeldebildschirm und leider keine Ausgabe über die externe Grafikkarte.
Ich habe auch versucht egpu-switcher
, „nvidia-config which , I guess mainly tried to create/modify the
/etc/X11/xorg.conf“ zu verwenden, es gab jedoch nie eine Ausgabe auf meinem externen Display (das funktioniert :), weil es funktioniert, wenn das gleiche Kabel direkt an meinen Laptop angeschlossen ist).
Wenn irgendjemand etwas vorschlagen kann, das diesem Leiden für mich und die gesamte erwähnte Hardware und Software ein glückliches Ende setzt, wäre ich sehr dankbar :)
Danke schön!
Aktualisieren
Beim Ausführen nvidia-settings
wird Folgendes protokolliert:
ERROR: Unable to load info from any available system
(nvidia-settings:20812): GLib-GObject-CRITICAL **: 01:58:56.002: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** Message: 01:58:56.005: PRIME: Requires offloading
** Message: 01:58:56.005: PRIME: is it supported? yes
** Message: 01:58:56.039: PRIME: Usage: /usr/bin/prime-select nvidia|intel|on-demand|query
** Message: 01:58:56.039: PRIME: on-demand mode: "1"
** Message: 01:58:56.039: PRIME: is "on-demand" mode supported? yes
Antwort1
Nach langem Kämpfen konnte ich mein Problem tatsächlich lösen, hauptsächlich basierend auf diesem Kommentar:https://forums.developer.nvidia.com/t/nvidia-xconfig-doesnt-do-what-i-want-it-to-nor-does-nvidia-settings/107883/7
Ich denke, es ist wichtig zu verstehen, dass ich xorg.conf
Ihnen in diesem Zusammenhang nicht helfen kann. Egal, was ich getan habe, ich konnte keine Ergebnisse erzielen, solange ich ein hatte xorg.conf
.
Was bei mir funktioniert hat, war:
- Entfernen Sie alle Nvidia-Dinge, die Sie möglicherweise versucht haben: sudo apt --purge remove 'nvidia-*'
- Laden Sie den neuesten Nvidia-Treiber von der Nvidia-Website herunter und machen Sie ihn ausführbar.
- Starten Sie im Wiederherstellungsmodus neu (oder ohne laufenden AX-Server) und führen Sie das Treiberinstallationsprogramm aus, auch wenn es anzeigt, dass auf Ihrem System keine GPU gefunden wurde
/etc/X11/xorg.conf
löschen Sie allereboot
normalerweise- Installieren
nvidia-prime
, falls es noch nicht installiert ist sudo prime-select nvidia
- Aktualisieren Sie
/usr/share/X11/xorg.conf.d/10-amdgpu.conf
den Ersatztreiber mitmodesetting
Section "OutputClass"
Identifier "AMDgpu"
MatchDriver "amdgpu"
Driver "modesetting"
EndSection
- Aktualisieren Sie auf etwa:
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
Option "PrimaryGPU" "Yes"
Option "AllowExternalGpus" "True"
EndSection
- Erstellen Sie zwei Dateien
optimus.desktop
in/etc/xdg/autostart/
und/usr/share/gdm/greeter/autostart/
mit folgendem Inhalt:
[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting 0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
(@generix sagt das, modesetting NVIDIA-0;
aber bei mir hat es nie so funktioniert. Es funktioniert jedoch mit modesetting 0;
)
reboot
Testen Sie, ob alles in Ordnung ist, indem Sie Folgendes ausführen:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep vendor
Wenn bei Nvidia keine Zeilen zurückgegeben werden, ist es nicht in Ordnung. In meinem Fall erhalte ich:
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation
Eine weitere Überprüfung besteht darin, dass beim Ausführen nvidia-smi
zumindest einige Prozesse aufgelistet werden.
Und ich bekomme wie gewünscht ein Signal von der Nvidia-GPU auf einem externen Display :)
Danke ;)
Antwort2
Auch gefundendie Lösungvon @bluehipy, sehr hilfreich dabei, mein Acer Predator Helios 300 mit Ubuntu 20.04 mit einem externen Monitor zum Laufen zu bringen und den NVIDIA/CUDA-Stack für Deep-Learning-Arbeiten richtig zu installieren, da dieser Probleme verursachte.
Ich habe diesen Thread nur gefunden, als ich darüber nachdachte, den Acer Predator Helios 300 tatsächlich zurückzugeben und zu sehen, ob Dell XPS 13 mit eGPU für einen Workflow vom Typ „Thin Client“ geeignet wäre, wenn Machine-Learning-/Data-Science-Modelle lokal debuggt und tatsächlich in der Cloud trainiert werden soll.
Kann ich meine kleinen Änderungen also genauso gut an der Originalanleitung vornehmen, wenn jemand anders Probleme damit hat, seinen Laptop zum Laufen zu bringen?
Voraussetzungen:
sudo apt install gcc make mesa-utils mpich
NVIDIA-Treiber installieren
Was bei mir funktioniert hat, war:
Entfernen Sie alle Nvidia-Dinge, die Sie möglicherweise versucht haben:
sudo apt --purge remove nvidia-*
In den ursprünglichen Anweisungen heißt es, dass Sie die neuesten Treiber herunterladen sollen, aber Sie möchten vielleicht die Treiberversion aus demneuestes CUDA-ToolkitÜberprüfen Sie also, was das ist, wenn Sie Dinge installieren. Funktioniert möglicherweise mit dem neuesten NVIDIA-Treiber? Sie müssenÜberprüfen Sie die alten Treiberentspricht höchstwahrscheinlich der Treiberversion des CUDA-Toolkits; zum Zeitpunkt dieser Anweisungen war die entsprechende Version beispielsweise 470.57.02 (NVIDIA-Linux-x86_64-470.57.02.run).
Starten Sie im Wiederherstellungsmodus neu (oder ohne laufenden Ax-Server) und führen Sie das Treiberinstallationsprogramm aus, auch wenn es besagt, dass auf Ihrem System keine GPU gefunden wurde (wechseln Sie zum Root-Zugriff, und z. B.
cd ../home/username/Downloads
und./NVIDIA-Linux-x86_64-470.74.run
)./etc/X11/xorg.conf
löschen Sie alleNeustart (klicken Sie
e
auf das Grub-Menü für Ubuntu und fügen Sie dienomodeset
Am Ende)Installieren Sie nvidia-prime, falls es noch nicht installiert ist
sudo prime-select nvidia
Update
/usr/share/X11/xorg.conf.d/10-amdgpu.conf
Treiber ersetzen durchmodesetting
Section "OutputClass"
Identifier "AMDgpu"
MatchDriver "amdgpu"
Driver "modesetting"
EndSection
- Erstellen Sie die NVIDIA-Konfigurationsdatei (
sudo gedit /usr/share/X11/xorg.conf.d/10-nvidia.conf
) mit etwas wie:
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
ModulePath "/usr/lib/x86_64-linux-gnu/nvidia/xorg"
Option "PrimaryGPU" "Yes"
Option "AllowExternalGpus" "True"
EndSection
10 Erstellen Sie zwei Dateien optimus.desktop
in /etc/xdg/autostart/
und /usr/share/gdm/greeter/autostart/
mit folgendem Inhalt:
[Desktop Entry]
Type=Application
Name=Optimus
Exec=sh -c "xrandr --setprovideroutputsource modesetting 0; xrandr --auto"
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
Ändern Sie den Grubsodass nomodeset jedes Mal da ist:
sudo gedit /etc/default/grub
Neustart
Testen Sie, ob alles in Ordnung ist, indem Sie Folgendes ausführen:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep vendor
Überprüfen Sie, ob
nvidia-smi
zumindest einige Prozesse aufgelistet sind.
| NVIDIA-SMI 470.57.02 Driver Version: 470.57.02 CUDA Version: 11.4 | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M.
| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 On | N/A
| N/A 42C P8 14W / N/A | 264MiB / 5946MiB | 1% Default
Installieren Sie das CUDA Toolkit
Neuestes CUDA-Toolkitzum Zeitpunkt der Anweisung war cuda_11.4.2_470.57.02_linux.run
so installiert, dass ohne Neuinstallation des NVIDIA-Treibers
wget https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run
sudo sh cuda_11.4.2_470.57.02_linux.run
Installation des CUDA-Toolkits
Überprüfen der CUDA-Installation
Sehenhttps://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#install-samples
Voraussetzungen:(wenn Sie alle Beispiele richtig kompiliert haben möchten)Aus:
sudo apt-get install g++ freeglut3-dev build-essential libx11-dev \
libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev libfreeimage-dev
zB ./deviceQuery
gibt zurück:
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "NVIDIA GeForce RTX 3060 Laptop GPU"
CUDA Driver Version / Runtime Version 11.4 / 11.4
CUDA Capability Major/Minor version number: 8.6
Total amount of global memory: 5947 MBytes (6235422720 bytes)
(030) Multiprocessors, (128) CUDA Cores/MP: 3840 CUDA Cores
GPU Max Clock rate: 1425 MHz (1.42 GHz)
...
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 11.4, CUDA Runtime Version = 11.4, NumDevs = 1
Result = PASS
Cudnn-Installation
Siehe Anleitung vonhttps://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
Laden Sie cuDNN v8.2.4 (2. September 2021) für CUDA 11.4 herunter
-> cuDNN-Bibliothek für Linux (x86_64), zBcudnn-11.4-linux-x64-v8.2.4.15.tgz
Antwort3
Ich habe ein ähnliches Setup mit einem NUC mit Ubuntu Mate 20.4 und einem Razor Core X mit einer NVidia RTX 2060 Super.
Im Grunde war ich an dem gleichen Punkt wie Sie und nichts hat funktioniert. Dann habe ich etwas vermasselt und musste Ubuntu neu installieren. Ich habe dies jedoch mit angeschlossenem eGPU-Gehäuse getan. Während der Installation wurden die NVidia 440-Treiber automatisch installiert.
An dieser Stelle bin ich auf folgenden Beitrag gestoßen:
Mit dem im Repository bereitgestellten Skript konnte ich die GPU endlich zum Laufen bringen! Ich kann auf CUDA zugreifen und mit der eGPU auch zwei externe Monitore verwenden.
Ich hoffe, dieses Skript kann Ihnen auch helfen. Viel Glück.