Sentarse en la misma computadora y hacerlo desde una terminal virtual diferente a la que ejecuta el servidor X no funciona.
P-108: Uso Linux Virtual Terminals (VT) para implementar 'Cambio rápido de usuario' entre sesiones de usuarios (por ejemplo, Betty está en Ctrl-Alt-F7, Bobby está en Ctrl-Alt-F8 y Sid está en Ctrl-Alt -F1: usan esas teclas para cambiar entre sus sesiones.) ¿Cómo es que la vista en un visor VNC que se conecta a x11vnc es completamente negra, no se actualiza o los píxeles se estropean a menos que la sesión X x11vnc esté conectada? TV activa?
Esto parece tener que ver con cómo las aplicaciones (el servidor X procesa en este caso) deben "jugar bien" si no están en el VT activo (a veces llamado VC para consola virtual). Es decir, no deberían leer desde el teclado o mouse o administrar la pantalla de video a menos que tengan el VT activo. Dado que parece que la llamada XGetImage () finalmente debe recuperar los datos del framebuffer del propio hardware de video, tendría sentido que el sondeo de x11vnc no funcionara a menos que la sesión X tuviera control activo del VT.
No parece haber una manera fácil de solucionar esto. Incluso xwd (1) no funciona en este caso (pruébelo). Debería hacerse algo en un nivel inferior, por ejemplo, en el servidor XFree86 / Xorg X. Además, el uso de Shadow Framebuffer (una copia del video framebuffer se mantiene en la memoria principal) no parece solucionar el problema (última comprobación de 2007.)
Si no hay nadie sentado en la estación de trabajo y solo desea cambiar de forma remota el VT al que está asociado con su sesión X (para que x11vnc pueda sondearlo correctamente), puede usar el comando chvt (1), por ejemplo, "chvt 7" para VT # 7.