Das erwartete Verhalten

Das erwartete Verhalten

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 XPS13dem eine kürzlich installierte Version läuft Ubuntu 20.04 focal, auf der ich das Videoerlebnis mithilfe Nvidia GTX 1660 SUPEReiner 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 deviceshauptsä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-smierhalte 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.confsieht so aus:
blacklist nouveau
blacklist lbm-nouveau
alias nouveau off
alias lbm-nouveau off

Ich laufe auch nvidia-settingsund 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/ppaund den oben dargestellten Vorgang mit einem neu empfohlenen Treiber wiederholt, nvidia-driver-450die 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-settingswird 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.confIhnen 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:

  1. Entfernen Sie alle Nvidia-Dinge, die Sie möglicherweise versucht haben: sudo apt --purge remove 'nvidia-*'
  2. Laden Sie den neuesten Nvidia-Treiber von der Nvidia-Website herunter und machen Sie ihn ausführbar.
  3. 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
  4. /etc/X11/xorg.conflöschen Sie alle
  5. rebootnormalerweise
  6. Installieren nvidia-prime, falls es noch nicht installiert ist
  7. sudo prime-select nvidia
  8. Aktualisieren Sie /usr/share/X11/xorg.conf.d/10-amdgpu.conf den Ersatztreiber mitmodesetting
Section "OutputClass"
        Identifier "AMDgpu"
        MatchDriver "amdgpu"
        Driver "modesetting"
EndSection
  1. 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
  1. Erstellen Sie zwei Dateien optimus.desktopin /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;)

  1. reboot

  2. 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-smizumindest 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:

  1. Entfernen Sie alle Nvidia-Dinge, die Sie möglicherweise versucht haben:sudo apt --purge remove nvidia-*

  2. 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).

  3. 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/Downloadsund ./NVIDIA-Linux-x86_64-470.74.run).

  4. /etc/X11/xorg.conflöschen Sie alle

  5. Neustart (klicken Sie eauf das Grub-Menü für Ubuntu und fügen Sie dienomodesetAm Ende)

  6. Installieren Sie nvidia-prime, falls es noch nicht installiert ist

  7. sudo prime-select nvidia

  8. Update /usr/share/X11/xorg.conf.d/10-amdgpu.confTreiber ersetzen durchmodesetting

Section "OutputClass" 
    Identifier "AMDgpu" 
    MatchDriver "amdgpu" 
    Driver "modesetting"
EndSection
  1. 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.desktopin /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
  1. Ändern Sie den Grubsodass nomodeset jedes Mal da ist: sudo gedit /etc/default/grub

  2. Neustart

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

  4. Überprüfen Sie, ob nvidia-smizumindest 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.runso 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 ./deviceQuerygibt 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:

https://egpu.io/forums/thunderbolt-linux-setup/ubuntu-19-04-einfach-zu-verwendendes-setup-skript-für-ihr-egpu/

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.

verwandte Informationen