Estoy ejecutando un host Linux para el desarrollo de software Qt en un lugar central.
Con mi caja de Windows uso Xming como un servidor X local y PuTTY para conectarme a ese Linux-Host. Con esta configuración, puedo usar todos los programas X (xclock, xterm) y GLX (qtcreator, gxlinfo, glxgears ...) en linux-Host.
Mi estación de trabajo principal es ubuntu 14.04 LTS con una tarjeta nvidia gfx. Cuando me conecto a Linux-Host con mi sistema ubuntu usando "ssh -p port # -YC my.dev.Host.com", también puedo usar todos los programas X (xclock, xterm) pero I no puedo usar programas GLX (qtcreator, gxlinfo, glxgears ...).
Hasta ahora I aprendido esto se debe a que el servidor X no admite contextos GLX indirectos por defecto para la versión más joven 1.16.
Entonces mis preguntas son: ¿Cómo puedo habilitar contextos GLX indirectos (servidor X y controlador nvidida) en mi instalación ubuntu 14.04 LTS para que todo funcione como se espera de un servidor X?.
¡Gracias por cualquier ayuda!
cmks
Aquí está la salida de glxgears, tal vez eso ayude:
[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
Tuve un problema similar al ejecutar algunas aplicaciones GL a través de 'ssh -X' y lo resolví agregando "+ iglx" al comando xserver en /usr/share/lightdm/lightdm.conf.d/50 -xserver-command.conf.
[SeatDefaults]
# Dump core
xserver-command=X -core +iglx
Después de lo cual reinicia o Ctrl-Alt-F1, inicia sesión y 'Sudo service lightdm restart'.
¡Espero que esto ayude!
Una forma alternativa (e independiente del administrador de pantalla) de agregar las opciones es agregar la siguiente sección a /etc/X11/xorg.conf:
Section "ServerFlags"
Option "IndirectGLX" "on"
EndSection
Estaba teniendo el mismo problema al ejecutar un programa OpenGL personalizado sobre ssh -X
. La solución anterior funcionó con una ligera modificación.
Section "ServerFlags"
Option "AllowIndirectGLX" "on"
Option "IndirectGLX" "on"
EndSection
Esto funcionó con el servidor ubuntu 16.04 que ejecuta kubuntu-desktop con GPU NVIDIA GTX 1070 y el controlador binario NVIDIA instalado a través de apt.