다음 패키지가 설치된 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 가상 시스템입니다.
openGL 호출을 스폰해야합니다. virtualGL을 사용 이 실제 3D Xserver 및 2v 렌더링을 통해 Xvfb 또는 다른 2D Xserver로 실제 호출을 분기합니다.
$ 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와 관련이 있습니까?
답변
Xvfb의 위키 페이지 에서 “실제 디스플레이 서버와 달리 Xvfb는 컴 포지 팅, Randr 또는 GLX와 같은 최신 X11 확장을 지원하지 않습니다. Xdummy는 이러한 확장을 지원하고 Xvfb와 동일한 기능을 제공하는 새로운 대안입니다.”