X a tela de framebuffer virtual é 1024x9216 em vez de 1024x768

2

Eu executei o servidor de framebuffer virtual X no Ubuntu Linux, que gostaria de acessar sua tela via VNC.

Aqui estão os meus passos:

  1. Xvfb :1.0 -screen 0 1024x768x16 &

  2. Configure a senha por: x11vnc -storepasswd .

  3. x11vnc -display :1.0 -usepw -forever -ncache 10 -autoport 5900 &

    Using X display :1.0
    rootwin: 0x1a9 reswin: 0x200001 dpy: 0x174f920
    ...
    Default visual ID: 0x21
    Read initial data from X display into framebuffer.
    initialize_screen: fb_depth/fb_bpp/fb_Bpl 16/16/2048
    rfbNewFramebuffer(0x1797f20, 0x0, 1024, 9216, 5, 1, 2)
    ...
    X display :1.0 is 16bpp depth=16 true color
    

Então estou acessando o servidor VNC do macOS por:

open vnc://my-vnc-ip:5901/

No entanto, o buffer de quadros é muito grande ( 1024x9216 ), como se houvesse 12 telas extras visíveis ao mesmo tempo. Idealmente, gostaria de ter apenas um monitor com apenas 1024x768 de tela.

Como posso corrigi-lo para que eu possa ver a tela visível na resolução esperada?

    
por kenorb 24.11.2016 / 16:41

1 resposta

1

Parece que o problema foi causado pela opção -ncache (experimental). A remoção deve corrigir isso.

Se estiver ativado por padrão, tente desativá-lo usando -noncache .

Quando habilitado, basicamente é ativado o esquema de cache do lado do cliente que armazena dados de pixel fora da tela no lado do visualizador VNC para uma recuperação mais rápida e deve funcionar com qualquer visualizador VNC. No entanto, parece que não está funcionando corretamente com alguns clientes.

Então o comando correto poderia ser:

x11vnc -display :1.0 -usepw -forever -autoport 5900

Em qualquer outro caso que não seja do tipo ncache, a -clip option pode ajudar .

De acordo com o tópico do fórum do Ubuntu , é assim que -ncache funciona.

It makes a desktop 10X taller than the normal height and uses the extra framebuffer for caching windows and their saveunders.

If you can't get KRDC to not show you that region (e.g. by resizing its window) then you can't use KRDC with x11vnc -ncache.

So for now the only -ncache "support" is for a viewer to be able to have a scrollbar and to be able to disable auto-scrolling. Or on unix/macosx use ssvnc.

Veja: O x11vnc pode fazer cache de dados de pixel no lado do cliente? para mais detalhes informação.

The n in -ncache n is the factor of increase over the base framebuffer size to use for caching. It is an even integer and should be fairly large, 6-12, to achieve good response. This usually requires about 50-100MB of additional RAM on both the client and server sides. For example with n=6 a 1280x1024 display will use a framebuffer that is 1280x7168: everything below row 1024 is the pixel buffer cache.

    
por 25.11.2016 / 00:27