次のパッケージがインストールされたUbuntu 14.04システムを使用しています。
libegl1-mesa:AMD64
libegl1-mesa-drivers:AMD64
libgl1-mesa-dri:AMD64
libgl1-mesa-dri:i386
libgl1-mesa-glx:AMD64
libgl1-mesa-glx:i386
libglapi-mesa:AMD64
libglapi-mesa:i386
libgles2-mesa:AMD64
libglu1-mesa:AMD64
libopenvg1-mesa:AMD64
libwayland-egl1-mesa:AMD64
mesa-utils
xvfb
Xvfbでアプリケーションを起動したい。私は最初にxvfbを開始します:
$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
次に、xvfbログファイルを確認します。
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension DRI3
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension GLX
エラーは表示されません。また、GLXが正しく読み込まれているようです。今、私がサーバーをチェックすると
$ glxinfo -display :1
私は得る
name of display: :1
Xlib: extension "GLX" missing on display ":1".
...
Error: couldn't find RGB GLX visual or fbconfig
Xlib: extension "GLX" missing on display ":1".
...
Error: couldn't find RGB GLX visual or fbconfig
Xlib: extension "GLX" missing on display ":1".
...
実際、このサーバーで起動したい、GLXを必要とするアプリケーションが起動しません。
いくつかのドキュメントページとフォーラムをチェックした後、私はここで何が問題になっているのかについての手がかりがありません。 GLX拡張が正しくロードされていない場合、Xサーバーのログファイルにエラーが表示されないのはなぜですか?確認すべきことはありますか?
Xvfb(X仮想フレームバッファー)は、実際のハードウェアアクセラレーションをサポートしないXsever仮想です。
virtualGL を使用して、openGL呼び出しを生成する必要があり、実際の3D Xserverを介した実際の呼び出しと、Xvfbまたは別の2D Xserverへの2dレンダリングをフォークします。
$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
$ env DISPLAY=:1 vglrun glxinfo
ログファイルで、組み込み拡張GLXの初期化まですべてが問題ないことがわかりますが、その後に
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Internal error: Could not resolve keysym XF86AudioMicMute
Errors from xkbcomp are not fatal to the X server
重要な問題はxkbcompにありますか?
Wiki ページ のXvfbは次のように述べています: "実際のディスプレイサーバーとは異なり、Xvfbは、コンポジット、Randr、GLXなどの最新のX11拡張機能をサポートしていません。Xdummyは、これらの拡張機能をサポートするだけでなく、 Xvfbと同じ機能。」