Ubuntu 16.04
Ausgabe von uname -a
:
Linux HOST 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Desktop-Qualität:
- CPU: Intel
- GPU: Nvidia mit 361,42
Was ich möchte:
- Auf der Intel-GPU sollen der xserver und mein Monitor ausgeführt werden, der mit dem integrierten DP verbunden ist
- Die NVIDIA-GPU darf nur für CUDA-spezifische Berechnungen usw. verwendet werden.
- Volle Kontrolle über die NVIDIA GPU (Echtzeit, Statistiken, Temp Lüftergeschwindigkeiten ...)
Mein Problem:
- Weder
nvidia-smi
nochnvidia-settings
Arbeit und ich kann meine NVIDIA-GPU nicht steuern (die Fehler werden weiter unten angegeben).
Meine Geschichte:
Nach der kurzen Zusammenfassung meines Problems möchte ich mich mit dem Thema befassen. Seit der Veröffentlichung von Ubuntu 16.04 bastele ich und schaffe Folgendes nicht:
- Ich möchte, dass meine Intel-GPU (i7 6700K) meinen Xserver und alles, was dazu gehört, antreibt.
- Ich möchte, dass meine dedizierte NVIDIA-GPU nur für Cuda-basierte Berechnungen und dergleichen verwendet wird.
- Ich werde dem System mehr als eine NVIDIA-GPU hinzufügen, nachdem ich meine Probleme gelöst habe.
Eine kurze Zusammenfassung meines Ausgangszustands:
Ich habe die proprietären Treiber für nvidia und Intel (Intel-Microcode und NVIDIA-361.42) über apt-get installiert und den sicheren Start über mokutul --disable-valid deaktiviert.
Dann habe ich nvidia-prime eingestellt, um die Intel-Karte zu verwenden.
Dann habe ich meine xorg.conf so bearbeitet, dass sie nur einen Bildschirm mit Intel GPU und Intel Treiber enthält. (Fragen Sie bei Bedarf nach Details.) Beim
Testen der GPU für das Rendern mit Blender schien alles in Ordnung zu sein, außer dass ich keine Statistiken meiner GPU- und NVIDIA-Einstellungen erhalten konnte.
Fehler:
sudo nvidia-smi
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system:
Please also try adding directory that contains libnvidia-ml.so to your system PATH.
Was ich bisher durch all meine Versuche und Forschungen seit der Veröffentlichung gelernt habe (Kurzversion, jederzeit nach Details fragen):
Meine beiden Probleme hängen zusammen, sind aber nicht gleich:
Nvidia-Einstellungen leer:
- Dies liegt daran, dass diese Einstellungen nur angezeigt werden, wenn ein Xserver an die NVIDIA-GPU angeschlossen ist
- Die Lösung hierfür wäre, einen neuen Bildschirm in xorg.conf hinzuzufügen, der einen nicht verwendeten xserver zwingt, auf der nvidia-GPU ausgeführt zu werden
- Dies ist jedoch derzeit nicht möglich (siehe anderes Problem) und nicht erwünscht, da ich lediglich möchte, dass sich die NVIDIA-GPU auf Cuda konzentriert
Nvidia-smi funktioniert nicht:
- bbswitch ist kein Problem, da meine GPU (550ti) es nicht unterstützt (Fehler in dmesg)
- nvidia prime ändert den Eintrag für x86_64-linux-gnu_gl_conf in entweder
/usr/lib/nvidia-361/ld.so.conf
(nvidia GPU ausgewählt) oder/usr/lib/nvidia-361-prime/ld.so.conf
(Intel GPU ausgewählt) - In der Konfiguration für die Intel-Auswahl fehlen wesentliche Pfade zu den wesentlichen NVIDIA-Modulen, die alle in der Conf für die NVIDIA-Auswahl vorhanden sind
- Wenn ich über Prime-Select zu nvidia wechsle, habe ich keinen Xserver, da das Display mit der integrierten GPU verbunden ist, aber die Anmeldung an einer virtuellen Konsole nvidia-smi funktioniert
Meine Annahme:
- Nvidia prime ist schlecht und will nicht so, wie ich will.
- Ich muss Prime irgendwie überwinden und das System konfigurieren (sogar manuell neue Konfigurationen schreiben?)
Meine Versuche:
- Ich habe versucht, nvidia-prime zu deinstallieren, aber erst danach festgestellt, dass dies nicht funktionieren kann. Wenn die conf-Datei für x86_64-linux-gnu_gl_conf gelöscht wird, ist das Ergebnis ein reines Durcheinander ...
- Ich habe sogar versucht, die fehlenden Pfade manuell zu den x86_64-linux-gnu_gl_conf-Dateien hinzuzufügen, aber ich wusste nicht wirklich, was ich tat und hatte keinen Erfolg.
Meine Fragen:
1) Wie kann ich das NVIDIA-SMI-Problem lösen? Bin ich auf dem richtigen Weg? Hat jemand Anweisungen, wie ich vorgehen könnte?
2) Ist es möglich, die Lüftersteuerung und weitere Steuerungen für die nvidia-GPU (Coolbits in xorg.conf) ohne einen Xserver auf der GPU (ohne Bildschirm für die GPU in xorg.conf) zu aktivieren?
Vielen Dank im Voraus für alle Antworten. Ich habe buchstäblich das Netz gekämmt, wobei der Kamm mein Problem war.
Wenn ich etwas Wichtiges verpasst habe, sagen Sie es mir bitte und zögern Sie nicht, Protokolldateien usw. anzufordern.
VIELEN DANK
Bilder
Mein zusätzliches Bild auf der Registerkarte "Treiber":
quelle
Antworten:
Die akzeptierte Antwort verwendet den X-Server, um die Nvidia-Geräte zu aktivieren. Dies ist nicht erforderlich und bedeutet, dass der X-Server einen Speicher der Karte verwendet.
Sollte stattdessen
nvidia-modprobe
wie in den Treiber-FAQ beschrieben installiert werden (finden Sie unter dem folgenden Link).Meine empfohlene Lösung lautet also:
1) Installieren Sie den neuesten Nvidia-Treiber über die Run-Datei von ftp://download.nvidia.com/XFree86/Linux-x86_64/ mit dem Flag
--no-opengl-files
und--dkms
.2) Installieren Sie die entsprechende
nvidia-modprobe
Version übermake all
undsudo make install
von ftp://download.nvidia.com/XFree86/nvidia-modprobe/Das
--dkms
Flag stellt sicher, dass das Kernelmodul beim Upgrade Ihres Kernels neu kompiliert wird.quelle
Ich (Schöpfer dieses Beitrags) habe die Lösung, die ich brauche, selbst gefunden!
Ich werde jetzt die Lösung für alle anderen erklären, die sich in einer ähnlichen Situation befinden und diese Hilfe benötigen!
LÖSUNG:
INSTALLIEREN SIE DEN NVIDIA-TREIBER ÜBER DIE AUF http://www.nvidia.com/object/unix.html MIT DER FLAGGE "--no-opengl-files" bereitgestellte RUNFILE !!
Dies verhindert nicht nur, dass die nvidia opengl-Dateien die vorhandenen mesa-Dateien überschreiben, sondern installiert auch den Treiber ohne nvidia prime !!
Alle meine Probleme werden gelöst, indem der Treiber einfach manuell installiert wird, anstatt ihn aus den Repositorys zu installieren. Das Paket aus den Repositories ist "Optimus-freundlich" und enthält daher alle nutzlosen Unruhestifter.
ZWEITENS
Die xorg.conf muss um einen anderen Bildschirm für die dedizierten GPUs erweitert werden, damit sie Einträge in den nvidia-Einstellungen hat.
meins sieht so aus
quelle
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
Ich habe die gewünschte Konfiguration erhalten (ich wollte sie auch;)):
mit
bumblebee
.Bevor ich jedoch auf einige Details eingehe, sollte ich Sie warnen, dass Sie Ihr System neu starten müssen, wenn Sie die Konfiguration von nvidia-settings oder xorg.conf oder nvidia prime ändern (vielleicht wissen Sie es bereits). Wenn das System nicht neu gestartet wird, befindet sich das System möglicherweise in einem nicht konsistenten Zustand.
In meiner Konfiguration habe ich nicht berührt
xorg.conf
. Für mich war es immer eine Schmerzquelle. Bitte überlassen Sie es dem Originalzustand. Wenn Sie keine Neuinstallation durchführen möchten, finden Sie einige Sicherungen in/etc/X11/
(ls /etc/X11/xorg.conf*
).Der erste Schritt ist zu versuchen
nvidia-settings
Arbeit . Wenn dies gelingt, können Sie mit nvidia PRIME zur Intel-GPU wechseln, wie Sie bereits erwähnt haben. Wenn Sie die NVIDIA-GPU nur für CUDA-Berechnungen verwenden möchten, benötigen Sie nvidia prime point für die Intel-GPU (dies ist insbesondere erforderlich, wenn Sie den cuda-Debugger verwenden möchtencuda-gdb
).Danach können Sie versuchen, Hummel zu installieren :
Starten Sie neu. Sie können den Zustand der Hummel mit überwachen
oder
Hummel aktiviert die NVIDIA-GPU und versucht, den NVIDIA-Treiber nur bei Bedarf in den Kernel einzufügen. Sie können Hummel verwenden, indem Sie vorher ausstehen
optirun
Sie den Befehl, den Sie ausführen möchten, .Damit Hummel funktioniert, musste ich manuell bearbeiten
/etc/bumblebee/bumblebee.conf
, um den Namen und den Pfad des NVIDIA-Treibers korrekt festzulegen.Dann, nach einem
sudo service bumblebeed restart
gelang es mir, das Hummelsystem zu aktivieren.In der Tat
nvidia-smi
kehrt zurückaber
optirun nvidia-smi
:Hoffe das hilft.
quelle
Ich habe die nvidia-Treiber ohne opengl neu installiert, wie in den obigen Lösungen erwähnt, aber es hat bei mir nicht funktioniert. Darüber hinaus sind diese Lösungen ziemlich unbefriedigend, da sie bedeuten, dass einige Fähigkeiten der Treiber (opengl) entfernt werden.
Ich habe eine viel einfachere Lösung gefunden, für die Sie den Treiber nicht neu installieren müssen:
export LD_LIBRARY_PATH=/usr/lib/nvidia-387:$LD_LIBRARY_PATH
Beachten Sie, dass Sie je nach installiertem Treiber möglicherweise einen weiteren Ordner in Ihrem Bibliothekspfad hinzufügen müssen, z. B. / usr / lib / nvidia-384 .
Sie können diesen Befehl zur Datei ~ / .bashrc hinzufügen , um den Pfad beim Laden einer neuen Bash automatisch zu exportieren.
quelle
hauptsächlich als erinnerung für mich: in ubuntu 18.04 igpu zum rendern und nvidia gpu für cuda verwenden, standard nvidia treiber installieren, nvidia-einstellungen öffnen und intel gpu verwenden. Danach Blacklist-Nouveau-Treiber und Teil der NVIDIA-Treiber:
Öffnen Sie /etc/modprobe.d/blacklist-nvidia.conf und kommentieren Sie die Zeilen folgendermaßen:
Öffnen Sie danach /etc/modprobe.d/blacklist-nvidia-nouveau.conf und fügen Sie die folgenden Zeilen hinzu:
Um wirklich sicher zu sein, dass Jugendstil deaktiviert ist, können Sie sie auch in /etc/modprobe.d/blacklist.conf auf die schwarze Liste setzen: am Ende hinzufügen:
dann neu starten.
Geben Sie ein
nvidia-smi
, um zu überprüfen, ob nvidia geladen ist, und geben Sie einlspci -nnk | grep -iA2 3D
, um zu überprüfen, ob der verwendete Treiber nvidia und nicht nouveau ist.quelle