Alterando a resolução do buffer de quadros Xvfb enquanto ele está em execução

3

Eu corro Xvfb com o comando:

Xvfb :1 -screen 0 100x100x16 -fbdir /tmp

E está funcionando bem. Eu posso conectar via VNC, e agora sob o diretório /tmp eu tenho Xvfb_screen0 arquivo binário.

Eu pensei que ele agisse como /dev/fb0 , então tentei alterar suas configurações com fbset como:

sudo fbset -fb /tmp/Xvfb_screen0 -xres 500 -yres 500

Mas o comando termina com erro:

ioctl FBIOGET_VSCREENINFO: Inappropriate ioctl for device

Existe alguma maneira de alterar a resolução do servidor Xvfb em execução?

    
por Jezor 10.07.2016 / 23:00

2 respostas

2

Não estou certo de que o Xvfb suporte o redimensionamento. Se o seu principal interesse é o VNC, talvez você deva tentar TigerVNC . É um servidor VNC moderno que suporta RandR e Xinerama. O redimensionamento de tela e vários monitores funcionam muito bem no TigerVNC.

    
por 19.07.2016 / 17:21
1

Ao especificar o parâmetro −fbdir , está criando os arquivos mapeados na memória contendo a memória framebuffer , não um dispositivo de buffer de quadros.

De acordo com fbset manual , o -fb aceita apenas o buffer de quadros nó do dispositivo, não um arquivo mapeado na memória. Então eu acredito que a sintaxe correta seria:

fbset -fb /dev/fb0 500x500

em que /dev/fb0 é seu dispositivo de buffer de quadros (por exemplo, /dev/fb/0 ou /dev/fb0 ).

Para tornar o dispositivo de buffer de quadro conhecido como X, defina FRAMEBUFFER variable, por exemplo,

export FRAMEBUFFER=/dev/fb0

Veja também man fbdev para mais detalhes.

Para ler /tmp/Xvfb_screen0 , você deve usar o comando xwud , por exemplo,

xwud -in /var/tmp/Xvfb_screen0

que mostrará a tela 0 do servidor.

O mais provável é que não seja possível alterar a resolução no servidor X existente, então, provavelmente, é necessário executar novamente o servidor Xvfb ou invocar outra tela com resolução diferente.

    
por 24.11.2016 / 15:42