리눅스 워크스테이션

리눅스 워크스테이션

많은 조사를 한 후 동료에게 이 질문을 해보세요. 그는 ssh -X(또는)을 통해 이전 Centos 4 서버에 연결 하고 -Y그곳에서 일부 X 애플리케이션을 실행하려고 합니다. 수년 동안 잘 작동했지만 최근 그의 클라이언트 PC(Centos 7 및 Ubuntu)에 대한 업데이트로 인해 이제는 이것이 불가능해졌습니다. 그의 응용 프로그램이 중단되고 이를 실행하려고 하면 glxgears충돌이 발생합니다.

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

실제로 클라이언트 버전 문제입니다. 클라이언트 측에서 이전 Centos 6으로 되돌리면 다시 작동합니다. 서버 측의 X11 로그에는 아무것도 없습니다. 나는 달려갔고 strace glxgears평범하지 않은 것을 발견하지 못했습니다. 추가 진단을 위해 무엇을 시도할 수 있나요?

편집: 간접 렌더링 컨텍스트를 강제하려는 다음 시도는 최신 Linux에서 실패합니다.

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

간접 렌더링을 다시 활성화하기 위해 다음을 시도했습니다. 제가 착각하지 않는 한, 이 모든 작업은 클라이언트 컴퓨터에서 수행되어야 합니다.

  • /etc/X11/xorg.conf의 "화면" 또는 "장치" 섹션에 다음을 추가합니다.

    옵션 "AllowIndirectGLXProtocol" "참"

  • /usr/bin/startx(또는 startx가 있는 곳):

    기본 서버 매개변수 = "+iglx"

  • /usr/share/lightdm/lightdm.conf.d/50-xserver-command.conf에서 줄을 변경합니다.

    xserver 명령=X -core +iglx

  • KDE를 시작하기 전(예: .kde/env/igl.sh)

    LIBGL_ALWAYS_INDIRECT=1 내보내기

이들 중 어느 것도 작동하지 않습니다.

답변1

리눅스 워크스테이션

반대로 버전이 많네요GDM은 제공하지 않습니다+iglx와 같은 매개변수를 전달하는 방법입니다 Xorg. 이에 대한 응답으로 새로운 X.org 버전에는IndirectGLX옵션(당신은 또한 볼 수 있습니다샘플 xorg.conf텍스트).

해당 옵션을 사용할 수 없는 경우 해결 방법이 있습니다.Xorg쉘 스크립트로 자체 포장:

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

macOS 워크스테이션(XQuartz)

빨리 달려

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

XQuartz가 실행 중이면 다시 시작하세요. (오타에 유의하세요. 필드 및 변수 이름에 대한 오류 검사가 없습니다.) 최신 버전에서는 더 간단한 org.xquartz.X11.

관련 정보