En este tutorial se explicará como instalar x11vnc; que se ejecute de forma automática cuando se prenda la Beaglebone Black y configurar Putty para usar con la opción de tunnel. Al final se describe algunos problemas que se pueden tener y como solucionarlos.
Instalar x11vnc
Requisitos:
sudo apt-get install xauth sudo apt-get install x11-xserver-utils
sudo apt-get update sudo apt-get install x11vnc
#poner una contraseña x11vnc -storepasswd
#crear un ejecutable para correr cuando se inicie usando xinetd sudo apt-get install xinetd sudo nano /etc/xinetd.d/x11vnc
#Pegar lo siguiente service x11vnc { type = UNLISTED disable = no socket_type = stream protocol = tcp wait = no user = machinekit server = /usr/bin/x11vnc server_args = -inetd -o /home/machinekit/.x11vnc.log.%VNCDISPLAY -display :0 -forever -bg -rfbauth /home/machinekit/.vnc/passwd -shared -enablehttpproxy -forever -nolookup -auth /home/machinekit/.Xauthority port = 5902 } #ctrl+o y ctrl+x
#damos derechos de ejecución sudo chmod a+x /etc/xinetd.d/x11vnc #Apagamos o reiniciamos, al iniciar ya se podrá obtener acceso con Vnc viewer o Putty tunnel sudo shutdown -h now
Si se desea ejecutar x11vnc como root hay que cambiar algunas cosas.
#la contraseña se guarda en /root/.vnc/passwd sudo x11vnc -storepasswd #ejecutar lo siguiente para poder ver los archivos que se crearán #deacuerdo a la configuración sudo x11vnc -bg -o %HOME/.x11vnc.log.%VNCDISPLAY -auth $HOME/.Xauthority -display :0 -forever -rfbport 5902
Se debe cambiar user = machinekit por user = root
La variable log se guardará en /root/.x11vnc.log.%VNCDISPLAY, usando lo siguiente "%HOME/.x11vnc.log.%VNCDISPLAY".
Lo último es poner la ruta de autorización para poder dar acceso al display designado, para eso se utiliza la siguiente ruta /root/.Xauthority o /var/run/lightdm/root/:0. La segunda cambiará deacuerdo al escritorio que se ocupe ya sea gnome, lxde, xfce, etc.
Por lo tanto el ejecutable quedará de la siguiente forma:
#Pegar lo siguiente service x11vnc { type = UNLISTED disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/bin/x11vnc server_args = -inetd -o /root/.x11vnc.log.%VNCDISPLAY -display :0 -forever -bg -rfbauth /root/.vnc/passwd -shared -enablehttpproxy -forever -nolookup -auth /root/.Xauthority port = 5902 } #ctrl+o y ctrl+x
-o /home/machinekit/.x11vnc.log.%VNCDISPLAY -> le dice que guarde la información de log con los parámetros de host y puerto configurados.
En este caso se guarda así ".x11vnc.log.beaglebone:5902" en /home/machinekit
-display :0 -> indica que se exporte y se pueda tener acceso a visualizar en el display :0, si se realiza un "echo $DISPLAY" se obtendra el valor de :0
-rfbauth /home/machinekit/.vnc/passwd -> indica que se use la constraseña que se almacenó en esa ruta, al usar el comando "x11vnc -storepasswd".
-auth /home/machinekit/.Xauthority -> permite el acceso a conectarse usando Magic cookie que contiene información necesaria para realizar dicha acción.
Nota: Los parámetros más importantes son las rutas que indican donde estan loas archivos que se necesita, el puerto al que se quiere acceder, el display que se va a exportar con x11vnc y en caso de usar una contraseña indicar la ruta donde se guardo.
Referencia: http://unix.stackexchange.com/questions/206272/creating-x11vnc-server-initscript-not-successful-on-boot-manually-started-works
VNC Viewer
colocar la IP::Puerto
ejemplo:
Poner la contraseña generada en los pasos anteriores y ya se tendra acceso remoto a la Beaglebone Black, ejecutando "echo $DISPLAY" se obtendrá el valor :0 que es el que se configuró.
Configurar Putty
Hay que configurar con el puerto que vamos a ocupar en la opción de tunnels y hacer click en Add.
Luego se configura X11.
Por último hay que asignar un nombre y la IP a la cual se quiere conectar, utilizar programa Advanced IP Scanner Configuración.
Cuando ya se conecte hay que exportar la variable DISPLAY.
export DISPLAY=:0 echo $DISPLAY xhost
Para probar ejecutar cualquier programa, como ejemplo leafpad y deberá aparecer en la pantalla o LCD donde este conectada la Beaglebone Black. En este caso se uso Vnc Viewer para realizar la prueba.
leafpad
Linux
En linux se obtiene acceso instalando vncviewer o por ssh de la siguiente manera:
#ssh -L localport:host:hostport user@ssh_server #ssh -L 5902:localhost:5902 <host> ssh -L 5902:beaglebone:22 machinekit@192.168.10.192 #acceso remoto ssh -R 5900:localhost:5900 user@IP ssh -R 5902:localhost:5902 machinekit@192.168.10.192
Con VNC Viewer
Para instalar en debian ejecutar lo siguiente:
sudo apt-get install xvnc4viewer vncviewer #en server colocar IP::Puerto 192.168.10.192::5902 #luego colocar la contraseña y se obtendrá la pantalla de vncviewer
Solucionar problemas.
Si aparece el siguiente mensaje -> unable to open display ":0"
Se debe estar seguro de que se tiene habilitada la salida HDMI en /boot/uEnv.txt y volver a correr:
export Display=:0 echo $DISPLAY xhost
Si no funciona intentar habilitando lo siguiente en /etc/ssh/sshd_config
X11Forwarding yes X11DisplayOffset 10
Si no funciona intentar habilitando lo siguiente en /etc/ssh/ssh_config
ForwardX11 yes ForwardX11Trusted yes
No hay comentarios.:
Publicar un comentario