xvfb-run 사용 시 이상한 렌더링 문제

xvfb-run 사용 시 이상한 렌더링 문제

wxPython으로 작성된 비글본에서 원격으로 실행되는 응용 프로그램이 있습니다. Xvfb를 사용하여 가상 프레임버퍼 내에서 애플리케이션을 실행하고 VNC를 사용하여 원격으로 액세스하고 싶습니다.

다음과 같이 애플리케이션 내에서 VNC를 시작한다는 것도 알 수 있습니다.

    display = Display(":99")
    root = display.screen().root
    win_ids = [w.id for w in root.query_tree()._data['children'] if w.get_wm_name() and 'myappname' in w.get_wm_name().lower()]
    if (win_ids[0]):
       print("Found my win id. Starting x11vnc")
       system("x11vnc -quiet -sid %s -forever &" % win_ids[0])
    else:
        print("Can't find my Window ID!")

편집: 저는 커널 버전 3.8.13과 함께 Debian Jessie와 xenomai를 사용하고 있습니다. xvfb-run 또는 Xvfb의 버전 번호를 찾을 수 없지만 내 xorg 버전이 1.16.4라는 것을 알 수 있습니다.

다음을 사용하여 애플리케이션을 시작할 때:

    sudo xvfb-run ./myApp -s :99 -screen 0 1920x1080x16 -ac

나는 다음을 본다: 스크린샷

그러나 Xvfb를 단독으로 시작하면:

    Xvfb :99 -screen 0 800x600x16 -ac &

그런 다음 애플리케이션을 시작합니다.

    DISPLAY=:99 ./myApp

나는 이것을 본다(어떻게 되어야 하는지):

스크린샷

어떤 통찰력이 있습니까?

답변1

분명히 같은 버전은 없지만 xvfb-run내 버전은 쉘 스크립트이고 실행하면

xvfb-run ./myApp -s :99 -screen 0 1920x1080x16 -ac

Xvfb 서버에는 매개변수가 전혀 전달되지 않으며, 모든 매개변수는 애플리케이션에 전달됩니다. 애플리케이션은 -s 1920x1080x16서버에 전달되는 옵션 과 같이 온라인에서 마지막 옵션이어야 합니다 . 이것이 없으면 화면의 기본 깊이는8비트, 이것이 외모 문제의 원인일 수 있습니다.


또한 서버에 전달되는 매개변수(이후 -s)는 단일 문자열로 이루어져야 합니다. 마지막으로 다음을 실행합니다.

xvfb-run -s '-screen 0 1920x1080x16' ./myApp

관련 정보