Problemas de renderização estranhos ao usar o xvfb-run

3

Eu tenho um aplicativo rodando remotamente em um beaglebone, escrito em wxPython. Eu quero executar o aplicativo dentro de um buffer de quadro virtual, usando Xvfb e acessá-lo remotamente usando um VNC.

Também pode ser pertinente para você saber que estou lançando o VNC de dentro do aplicativo, da seguinte forma:

    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!")

EDIT: Eu estou usando o Debian Jessie com a versão 3.8.13 do kernel e xenomai. Não consigo encontrar um número de versão para xvfb-run ou Xvfb, mas posso dizer-lhe que a minha versão xorg é 1.16.4

Quando eu inicio o aplicativo com:

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

Eu vejo o seguinte:

No entanto, quando eu inicio o Xvfb separadamente:

    Xvfb :99 -screen 0 800x600x16 -ac &

e, em seguida, inicie o aplicativo:

    DISPLAY=:99 ./myApp

Eu vejo isso (o que deveria ser):

Alguma ideia?

    
por Fred Frey 29.07.2016 / 23:00

1 resposta

1

Nós claramente não temos a mesma versão de xvfb-run , mas o meu é um shell script e quando você executa

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

nenhum argumento é passado para o servidor Xvfb, e todos os argumentos vão para o aplicativo. O aplicativo deve ser o último na linha para que opções como -s 1920x1080x16 sejam passadas para o servidor. Sem isso, a profundidade padrão da tela em 8 bits , que pode ser a causa de seus problemas de aparência.

Além disso, os argumentos para passar para o servidor (após -s ) devem ser feitos em uma única ação. Então, finalmente, corra:

xvfb-run -s '-screen 0 1920x1080x16' ./myApp
    
por 01.08.2016 / 17:41

Tags