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
編集:私はちょうど友人に同じコマンドを実行するように頼みました、そしてそれは彼のPCで動作しましたが、何らかの理由で私のものでは動作しませんでした。 Xをデバッグする方法はありますか?
クライアント(glxinfo)とサーバー(xvfb)の両方にmesa(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ドライバーをアンインストールしてください。デフォルトでmesaを使用し、nvidiaをインストールしたままにする場合は、glx-diversions
を使用できます。
ヘッドレスサーバーでOpenGLを使用しようとしてこの質問に到達した場合:NVIDIA GLXドライバーがインストールされているが、実際にはサーバーにNVIDIAカードがない場合(たとえば、AWS Deep Learning Base AMIを使用している場合)にこのメッセージが表示されることがありますGPUのないマシン)。
確認するには、+iglx
(glxinfo
の実行を許可する必要があります)を使用してXサーバーを実行し、glxinfo
出力(例xvfb-run -s '-screen 0 1400x900x24 +iglx' glxinfo
)がclient glx vendor string: NVIDIA Corporation
。もしそうなら、NVIDIAのものなしでAMIに切り替えてみてください。