我有一个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的Wiki页面[1]中说:“与真正的显示服务器不同,Xvfb不支持现代X11扩展,例如合成,Randr或GLX。Xdummy是一种较新的替代方案,它支持这些扩展并提供与Xvfb相同的功能。 。” [1] en.wikipedia.org/wiki/Xvfb
—
alpert 2014年
@alpertek,您应该将其发布为答案。GLX通常需要特定于芯片的驱动程序才有用。
—
XTL 2015年
以上评论不正确。我们在OpenSCAD测试套件中的Xvfb上使用GLX已有数年了。bugzilla.redhat.com/show_bug.cgi?id=904851
—
穿上鲜艳的
好吧,与此同时,Wiki中的注释已被删除。en.wikipedia.org/w/...
—
弗拉迪米尔·Čunát