xvfb에서 GLX 확장이 제대로 작동하지 않습니다


15

다음 패키지가 설치된 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의 위키 페이지 [1]에서 다음과 같이 말합니다. "실제 디스플레이 서버와 달리 Xvfb는 컴 포지 팅, Randr 또는 GLX와 같은 최신 X11 확장을 지원하지 않습니다. Xdummy는 이러한 확장을 지원하고 Xvfb와 동일한 기능을 제공하는 새로운 대안입니다. " [1] en.wikipedia.org/wiki/Xvfb
alpert

@ alpertek 당신은 답변으로 그것을 게시해야합니다. GLX는 일반적으로 유용한 칩 특정 드라이버가 필요합니다.
XTL

3
위의 설명이 올바르지 않습니다. OpenSCAD 테스트 스위트에서 몇 년 동안 Xvfb에서 GLX를 사용했습니다. bugzilla.redhat.com/show_bug.cgi?id=904851는
밝은 돈

글쎄, 위키의 주석은 그 동안 제거되었습니다. en.wikipedia.org/w/…
Vladimír Čunát

답변:


2

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 

실제 하드웨어 가속을 지원하지는 않지만 Mesa (소프트웨어 GLX)를 잘 지원합니다-얼마 전에 확인했습니다 (여전히 2018 년). 따라서 실제 3D Xserver를 사용할 필요 는 없지만 물론 옵션입니다.
dirkt 2018 년

1

내 로그 파일에서 내장 확장 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와 관련이 있습니까?


1

Xvfb의 위키 페이지 에서 "실제 디스플레이 서버와 달리 Xvfb는 컴 포지 팅, Randr 또는 GLX와 같은 최신 X11 확장을 지원하지 않습니다. Xdummy는 이러한 확장을 지원하고 Xvfb와 동일한 기능을 제공하는 새로운 대안입니다."


자세한 내용 Xdummy -h은 Arch Linux의 x11vnc 0.9.13-6 현재 맨 페이지가 없음을 사용하십시오 .
Lekensteyn

7
이 답변은 정확하지 않습니다. 우리는 Linux에서 헤드리스 OpenSCAD 테스트 스위트를 위해 Xvfb에서 GLX를 사용했습니다. bugzilla.redhat.com/show_bug.cgi?id=904851 위키가 업데이트되어 해당 행이 제거되었습니다.
밝은 돈
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.