Xvfb를 사용하려고 하는데 어떤 이유로 glxgears를 실행할 수도 없고 디버깅하는 방법도 모르겠습니다. 뭔가 빠졌을 수도 있습니다. 이것은 내가 사용하는 명령입니다:
Xvfb :99 +extension GLX -screen 0 640x480x24
DISPLAY=:99 glxgears
다음 오류 메시지와 함께 glxgears가 실패합니다.
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 23
Current serial number in output stream: 24
편집: 방금 친구에게 동일한 명령을 실행하라고 요청했는데 친구의 컴퓨터에서는 작동했지만 어떤 이유로 내 컴퓨터에서는 실패했습니다. X를 디버깅할 수 있는 방법이 있나요?
답변1
헤드리스 서버에서 OpenGL을 사용하려고 할 때 이 문제가 발생하는 경우: NVIDIA GLX 드라이버가 설치되어 있지만 실제로 서버에 NVIDIA 카드가 없는 경우 이 메시지가 나타날 수 있습니다. 헤드리스 서버) 서버(GPU가 없는 머신)에서 AWS Deep Learning Base AMI를 사용합니다.
확인하려면 X 서버 ( 실행이 +iglx
허용되어야 함 )를 실행해보고 출력(예: )이 .glxinfo
glxinfo
xvfb-run -s '-screen 0 1400x900x24 +iglx' glxinfo
client glx vendor string: NVIDIA Corporation
답변2
클라이언트(glxinfo)와 서버(xvfb)에는 메사(swrast 엔진 포함) libgl을 사용해야 합니다.
NVIDIA 및 mesa가 설치된 Debian 9의 경우:
# LD_LIBRARY_PATH=/usr/lib/mesa-diverted/x86_64-linux-gnu Xvfb :99 +extension GLX -screen 0 640x480x24 &
[1] 16936
# LD_LIBRARY_PATH=/usr/lib/mesa-diverted/x86_64-linux-gnu DISPLAY=:99 glxgears
6374 frames in 5.0 seconds = 1274.743 FPS
^C
Nvidia 카드가 없으면 Nvidia 드라이버를 제거하면 됩니다. 기본적으로 메사를 사용하고 nvidia를 설치된 상태로 유지하려면 다음을 사용할 수 있습니다.glx-diversions