estación de trabajo linux

estación de trabajo linux

Publicar esta pregunta para un colega después de bastante investigación. Quiere conectarse a un antiguo servidor Centos 4 a través de ssh -X(o -Y) y ejecutar alguna aplicación X allí. Solía ​​​​funcionar bien durante años, pero las actualizaciones recientes (tanto en Centos 7 como en Ubuntu) en las PC de sus clientes ahora lo hacen imposible. Su aplicación simplemente se cuelga y al intentar simplemente ejecutarla glxgearsse bloquea:

X Error of failed request:  BadValue (integer parameter out of range for operation)
Major opcode of failed request:  150 (GLX)
Minor opcode of failed request:  3 (X_GLXCreateContext)
Value in failed request:  0x0
Serial number of failed request:  19
Current serial number in output stream:  21

Realmente es un problema de versión del cliente. Volver a Centos 6 anterior en el lado del cliente hace que funcione nuevamente. No hay nada en el registro X11 del lado del servidor. Corrí strace glxgearssin notar nada fuera de lo normal. ¿Qué puedo intentar para diagnosticar esto más a fondo?

EDITAR: En cualquier Linux moderno, el siguiente intento de forzar un contexto de representación indirecta fallará:

glxinfo -i
name of display: :0
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:  24 (X_GLXCreateNewContext)
Value in failed request:  0x0
Serial number of failed request:  39
Current serial number in output stream:  40

Intenté lo siguiente para volver a habilitar la representación indirecta. A menos que me equivoque, todo esto debe hacerse en la máquina cliente:

  • en las secciones Pantalla o Dispositivo de /etc/X11/xorg.conf agregas:

    Opción "AllowIndirectGLXProtocol" "Verdadero"

  • en /usr/bin/startx (o donde se encuentre startx):

    defaultserverargs="+iglx"

  • en /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf cambias la línea:

    xserver-command=X -core +iglx

  • antes de iniciar KDE, por ejemplo en .kde/env/igl.sh

    exportar LIBGL_ALWAYS_INDIRECT=1

Ninguno de esos funciona.

Respuesta1

estación de trabajo linux

Perversamente, muchas versiones deGDM no ofreceuna forma de pasar argumentos +iglxcomo Xorg. En respuesta, las nuevas versiones de X.org tienen unaIndirectGLXopción(ver tambiénxorg.conftexto de ejemplo).

En ausencia de esa opción, existe una solución alternativa:envolviéndose Xorgcon un script de shell:

mv /usr/bin/Xorg /usr/bin/Xorg.original
echo -e '#!/usr/bin/env bash\nexec /usr/bin/Xorg.original "$@" +iglx' > /usr/bin/Xorg
chmod +x /usr/bin/Xorg
chcon --type=bin_t /usr/bin/Xorg

Estación de trabajo macOS (XQuartz)

Solo corre

defaults write org.macosforge.xquartz.X11 enable_iglx -bool true

y reinicie XQuartz si se está ejecutando. (Cuidado con los errores tipográficos: no hay verificación de errores en el dominio ni en los nombres de variables). Las versiones recientes utilizan el formato org.xquartz.X11.

información relacionada