Diese Frage für einen Kollegen nach einiger Recherche stellen. Er möchte über ssh -X
(oder -Y
) eine Verbindung zu einem alten Centos 4-Server herstellen und dort eine X-Anwendung ausführen. Früher lief es jahrelang einwandfrei, aber die jüngsten Updates (sowohl auf Centos 7 als auch auf Ubuntu) für seine Client-PCs machen dies jetzt unmöglich. Seine App hängt nur und der Versuch, einfach zu rennen, glxgears
führt zu einem Absturz:
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
Es ist wirklich ein Problem der Version des Clients. Wenn Sie auf der Clientseite auf frühere Centos 6 zurückgreifen, funktioniert es wieder. Das X11-Protokoll auf der Serverseite enthält nichts. Ich rannte, strace glxgears
ohne etwas Außergewöhnliches zu bemerken. Was kann ich versuchen, dies weiter zu diagnostizieren?
BEARBEITEN: Unter jedem modernen Linux schlägt der folgende Versuch fehl, einen indirekten Renderkontext zu erzwingen:
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
Ich habe Folgendes versucht, um das indirekte Rendern wieder zu aktivieren. Sofern ich mich nicht irre, müssen alle diese Aufgaben auf dem Client-Computer ausgeführt werden:
In den Abschnitten Bildschirm oder Gerät von /etc/X11/xorg.conf fügen Sie Folgendes hinzu:
Option "AllowIndirectGLXProtocol" "True"
in / usr / bin / startx (oder wo immer startx sich befindet):
defaultserverargs = "+ iglx"
In /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf ändern Sie die Zeile:
xserver-command = X -core + iglx
vor dem Start von KDE, zum Beispiel in .kde / env / igl.sh
export LIBGL_ALWAYS_INDIRECT = 1
Keine dieser Arbeiten.
Antworten:
Linux-Workstation
Paradoxerweise viele Versionen bieten GDM nicht eine Möglichkeit , Argumente zu übergeben , wie
+iglx
zuXorg
. Als Reaktion darauf haben neue X.org - Versionen eineIndirectGLX
Option (siehe auch Beispielxorg.conf
Text ).In Ermangelung dieser Option ist es eine Abhilfe der Verpackung
Xorg
selbst mit einem Shell - Skript :macOS Workstation (XQuartz)
Renn einfach
und starten Sie XQuartz neu, wenn es ausgeführt wird. (Vorsicht vor Tippfehlern: Es gibt keine Fehlerprüfung bei den Domänen- und Variablennamen.)
quelle