Ich betreibe einen Linux-Host für die Qt-Software-Entwicklung an einem zentralen Ort.
Mit meiner Windows-Box verwende ich Xming als lokalen X-Server und Kitt, um eine Verbindung zu diesem Linux-Host herzustellen. Mit dieser Konfiguration kann ich alle X- (xclock, xterm) und GLX- (qtcreator, gxlinfo, glxgears ...) Programme auf dem Linux-Host verwenden.
Meine Hauptarbeitsstation ist ein Ubuntu 14.04 LTS mit einer NVIDIA GFX-Karte. Wenn ich eine Verbindung mit dem Linux-Host mit meinem Ubuntu-System „ssh -p port # -YC my.dev.host.com“ kann ich auch verwenden kann alle X - Programme (xclock, xterm) Programme , aber ich kann nicht verwenden GLX Programme (qtcreator, gxlinfo, glxgears ...).
Soweit ich erfahren habe, liegt dies daran, dass der X-Server standardmäßig keine indirekten GLX-Kontexte für die Version 1.16 unterstützt.
Meine Frage lautet also: Wie kann ich indirekte GLX-Kontexte (X-Server und NVIDIDA-Treiber) in meiner Ubuntu 14.04 LTS-Installation aktivieren, damit die Dinge von einem X-Server wie erwartet funktionieren?
Vielen Dank für jede Hilfe!
cmks
Hier ist die Ausgabe von glxgears, vielleicht hilft das:
[email protected]:~# LIBGL_DEBUG=verbose glxgears
libGL: screen 0 does not appear to be DRI2 capable
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL: Can't open configuration file /root/.drirc: No such file or directory.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 35
Current serial number in output stream: 37
libGL error: No matching fbConfigs or visuals found
undlibGL error: failed to load driver: swrast
LIBGL_ALWAYS_INDIRECT=1
verbietet die Verwendung von DRI, wenn keine Fehlermeldungen angezeigt werden. Aber glxgears zeigt immer noch nur einen FrameEine alternative (und vom Display-Manager unabhängige) Möglichkeit, die Optionen hinzuzufügen, besteht darin, den folgenden Abschnitt zu /etc/X11/xorg.conf hinzuzufügen:
quelle
lightdm
.Ich hatte das gleiche Problem beim Ausführen eines benutzerdefinierten OpenGL-Programms
ssh -X
. Die obige Lösung arbeitete mit einer geringfügigen ModifikationDies funktionierte mit dem Ubuntu 16.04-Server, auf dem Kubuntu-Desktop mit NVIDIA GTX 1070-GPU und NVIDIA-Binärtreiber ausgeführt wird, die über apt installiert wurden.
quelle
Option "IndirectGLX" "on"
. Gemäß dazu ,enableIndirectGLX
muss zu bewerten ,TRUE
so dass dieBadValue
Fehler nicht zurückgegeben wird. Der Standardwert ist:FALSE
=-iglx
(in der Befehlszeile). Also entweder von set:+iglx
Kommandozeilenoption ODERIndirectGLX "on"
oder einem äquivalenten "wahrheitsgemäßen" WertAllowIndirectGLXProtocol
für dasselbe gibt. Ihre Dokumente sind jedoch etwas verwirrend, da sie erwähnen, dass derBadValue
Fehler mit ihrem Einstellungsnamen als zurückgegeben wirdAllowIndirectGLXProtocol = "true"
. Dies ist völlig entgegengesetzt zu dem, was sie später sagen. "The NVIDIA GLX implementation will prohibit creation of indirect GLX contexts if AllowIndirectGLXProtocol option is set to False.
" Es ist also verwirrend, und vielleicht sind die Dokumente falsch?