Xvfb o X virtual framebuffer es un servidor de visualización que implementa el protocolo de servidor de visualización X11 . A diferencia de otros servidores de visualización, Xvfb realiza todas las operaciones gráficas en la memoria virtual sin mostrar ninguna salida de pantalla. Desde el punto de vista de la aplicación cliente X , actúa exactamente como cualquier otro servidor de visualización X , atendiendo solicitudes y enviando eventos y errores según corresponda. Sin embargo, no se muestra ninguna salida. Este servidor virtual no requiere que la computadora en la que se ejecuta tenga algún tipo de adaptador gráfico , una pantalla o cualquier dispositivo de entrada . Solo es necesaria una capa de red . Xvfb admite varias extensiones del protocolo X , como la composición y la compatibilidad con OpenGL GLX a través de Mesa . [1]
Xvfb se utiliza principalmente para probar:
A modo de ejemplo, la siguiente secuencia de comandos ejecuta un servidor X con framebuffer virtual como display :1 , ejecuta un programa (xclock) en él y captura la pantalla virtual en el archivo image.xwd utilizando el comando xwd:
Xvfb :1 y xclock -display :1 y xwd -display :1 -silent -root -out imagen.xwd
El resultado se puede mostrar ejecutando el programa xwud ( xwud -in image.xwd
).
El programa xvfb-run se utiliza a menudo para automatizar el proceso de búsqueda de una pantalla disponible y gestionar la autenticación:
Comando xvfb-run
Xvfb también se utiliza para control remoto. VNC sobre SSH puede ser más rápido que X11 sobre SSH, [4] reduciendo especialmente la latencia en Internet. [5] En este caso, Xvfb se combina a menudo con un gestor de ventanas ligero (como Fluxbox o Openbox ) y un servidor VNC como X11vnc . Una posible secuencia de comandos para iniciar esto en el servidor es:
exportar DISPLAY = :1 Xvfb " $DISPLAY " -pantalla 0 1024x768x24 & fluxbox & x11vnc -display " $DISPLAY " -bg -nopw -listen localhost -xkb
El siguiente paso es iniciar un cliente SSH como PuTTY con la tunelización al puerto local 5900 habilitada. Luego, un vncviewer puede conectarse al puerto local para obtener control remoto sobre el servidor.
ssh -N -T -L 5900 :localhost:5900 usuario@remotehost & vncviewer -encodings 'copyrect tight zrle hextile' localhost:5900
La página del manual de x11vnc también contiene instrucciones.
Xvnc (que no debe confundirse con x11vnc) es muy similar a Xvfb.
-- Creo que tampoco obtendrás GLX si no tienes mesa-dri-drivers instalado en el entorno chroot. -- Gracias. Eso ayudó.