W centralnym miejscu prowadzę hosta Linux dla rozwoju oprogramowania Qt.
Z moim oknem Windows używam Xming jako lokalnego serwera X i kita do połączenia z tym hostem Linux. W tej konfiguracji mogę używać wszystkich programów X (xclock, xterm) i GLX (qtcreator, gxlinfo, glxgears ...) na hoście Linux-a.
Moją główną stacją roboczą jest Ubuntu 14.04 LTS z kartą NVIDIA GFX. Kiedy łączę się z hostem linux z moim systemem Ubuntu za pomocą „ssh -p port # -YC my.dev.host.com”, mogę również korzystać ze wszystkich programów X (xclock, xterm), ale nie mogę używać programów GLX (qtcreator, gxlinfo, glxgears ...).
O ile się dowiedziałem, to dlatego, że X-serwer domyślnie nie obsługuje pośrednich kontekstów GLX dla wersji młodszej 1.16.
Więc moje pytania brzmią: w jaki sposób mogę włączyć pośrednie konteksty GLX (X-server i sterownik nvidida) w mojej instalacji ubuntu 14.04 LTS, aby wszystko działało zgodnie z oczekiwaniami od X-serwera.
Dziękuję za wszelką pomoc!
cmks
Oto dane wyjściowe glxgears, może to pomaga:
[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
ilibGL error: failed to load driver: swrast
LIBGL_ALWAYS_INDIRECT=1
zabrania korzystania z DRI, wtedy nie ma komunikatów o błędach. Ale glxgears wciąż pokazuje tylko jedną ramkęAlternatywnym (i niezależnym od menedżera wyświetlania) sposobem dodania opcji jest dodanie następującej sekcji do /etc/X11/xorg.conf:
źródło
lightdm
.Miałem ten sam problem z uruchomieniem niestandardowego programu OpenGL
ssh -X
. Powyższe rozwiązanie działało z niewielką modyfikacjąDziała to z serwerem Ubuntu 16.04 z systemem kubuntu-desktop z procesorem graficznym NVIDIA GTX 1070 i sterownikiem binarnym NVIDIA zainstalowanym przez apt.
źródło
Option "IndirectGLX" "on"
. Zgodnie z tym ,enableIndirectGLX
musi dawaćTRUE
więcBadValue
błąd nie jest zwracany. Domyślnie:FALSE
=-iglx
(w wierszu poleceń). Tak więc w obu ustawieniach:+iglx
opcja wiersza polecenia, LUBIndirectGLX "on"
lub równoważna wartość „prawdy”AllowIndirectGLXProtocol
na to samo. Jednak ich dokumenty są nieco mylące, ponieważ wspominają, żeBadValue
błąd zostanie zwrócony z nazwą ustawienia jakoAllowIndirectGLXProtocol = "true"
. Jest to całkowicie przeciwne do tego, co mówią później. ”The NVIDIA GLX implementation will prohibit creation of indirect GLX contexts if AllowIndirectGLXProtocol option is set to False.
„ To jest mylące, a może doktorzy się mylą?