Jetson Remote

Jetson Remote Lab — Guía de Configuración Completa

Escritorio Linux virtual accesible desde cualquier navegador · Streaming de cámara en tiempo real · Servicios de inicio automático 24/7 · Sin necesidad de monitor HDMI


📐 Arquitectura del Sistema

Jetson Linux
│
├── TigerVNC (:1)
│   └── Escritorio virtual XFCE
│
├── noVNC (6080)
│   └── Acceso por navegador (WebSocket)
│
├── FFmpeg / GStreamer
│   └── Captura de cámara USB (/dev/video0)
│
├── MediaMTX (8554 / 8888)
│   └── Streaming RTSP / HLS / WebRTC
│
└── Cloudflare Tunnel (opcional)
    └── Acceso remoto seguro por internet

1. Instalación Base

1.1 Actualización del Sistema

sudo apt update && sudo apt upgrade -y

2. Instalación de TigerVNC

2.1 Instalar Paquetes

sudo apt install tigervnc-standalone-server tigervnc-common -y

3. Entorno de Escritorio XFCE

3.1 Instalar XFCE

sudo apt install xfce4 xfce4-goodies -y

3.2 Configurar Sesión VNC

vncserver :1 -geometry 1280x720 -depth 24 -SecurityTypes None

Puerto por defecto: 5901

3.3 Configurar Inicio de XFCE

nano ~/.vnc/xstartup

Contenido:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &

Asignar permisos:

chmod +x ~/.vnc/xstartup

4. Instalación de noVNC

4.1 Verificar Instalación

ls /usr/share/novnc/utils/

Salida esperada:

launch.sh
websockify

4.2 Iniciar noVNC Manualmente

/usr/share/novnc/utils/launch.sh --vnc localhost:5901 --listen 6080

5. Acceso desde el Navegador

http://IP_JETSON:6080/vnc.html?autoconnect=true&resize=remote

Funcionalidades:

  • ✅ Conexión automática
  • ✅ Redimensionado dinámico
  • ✅ Pantalla completa
  • ✅ Soporte de portapapeles
  • ✅ Reconexión automática

6. Deshabilitar Servidor Vino (Conflicto)

pkill vino-server

Deshabilitar inicio automático:

mkdir -p ~/.config/autostart
cp /usr/share/applications/vino-server.desktop ~/.config/autostart/
nano ~/.config/autostart/vino-server.desktop

Agregar la siguiente línea:

Hidden=true

7. Verificación de Puertos

sudo ss -tulpn | grep 590

Resultado esperado:

PuertoServicio
5901Xtigervnc
6080noVNC

8. Servicios systemd (Inicio Automático)

8.1 Servicio TigerVNC

sudo nano /etc/systemd/system/tigervnc.service
[Unit]
Description=Servidor TigerVNC
After=network.target

[Service]
Type=forking
User=jetson
PAMName=login
PIDFile=/home/jetson/.vnc/%H:1.pid
ExecStart=/usr/bin/vncserver :1 -geometry 1280x720 -depth 24 -SecurityTypes None
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure

[Install]
WantedBy=multi-user.target

8.2 Servicio noVNC

sudo nano /etc/systemd/system/novnc.service
[Unit]
Description=Cliente Web noVNC
After=network.target tigervnc.service

[Service]
Type=simple
User=jetson
ExecStart=/usr/share/novnc/utils/launch.sh --vnc localhost:5901 --listen 6080
Restart=always
RestartSec=2

[Install]
WantedBy=multi-user.target

8.3 Habilitar e Iniciar Servicios

sudo systemctl daemon-reload
sudo systemctl enable tigervnc
sudo systemctl enable novnc
sudo systemctl start tigervnc
sudo systemctl start novnc

8.4 Verificar Estado

sudo systemctl status tigervnc
sudo systemctl status novnc

9. Streaming de Cámara

9.1 Verificar Dispositivo de Cámara

ls /dev/video*

9.2 Servicio camera.service

sudo nano /etc/systemd/system/camera.service
[Unit]
Description=Servicio de Streaming de Cámara
After=network.target mediamtx.service

[Service]
Type=simple
ExecStart=/usr/bin/ffmpeg -f v4l2 -i /dev/video0 \
  -vcodec libx264 -preset ultrafast -tune zerolatency \
  -f rtsp rtsp://localhost:8554/cam
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

10. Servidor MediaMTX

ProtocoloPuerto
RTSP8554
HLS8888

11. Logs y Diagnóstico

Logs en Tiempo Real

journalctl -u camera -f
journalctl -u mediamtx -f
journalctl -u novnc -f

Vista General de Puertos

sudo ss -tulpn

12. Solución de Ventanas Fuera de Pantalla (VNC)

Problema común: La ventana aparece fuera del área visible.

Soluciones:

AtajoAcción
ALT + clicMover ventana
ALT + F7Modo mover
ALT + F10Maximizar ventana

13. Cloudflare Tunnel (Opcional)

Permite acceso público seguro sin necesidad de abrir puertos en el router.

Configurar desde el Panel de Cloudflare Zero Trust → Tunnels → Crear tunnel → apuntar a localhost:6080


14. URL de Acceso Final

http://IP_JETSON:6080/vnc.html?autoconnect=true&resize=remote

✅ Resultado Final

FuncionalidadEstado
Escritorio Linux virtual completo
Acceso desde el navegador
Streaming de cámara en tiempo real
Servicios con inicio automático
Sin necesidad de monitor HDMI
Arquitectura estable 24/7
Listo para laboratorio IoT remoto

Hecho con ❤️ por Marlon · Jetson Remote Lab

s

© 2026 LABREMOTE — Laboratorio remoto IoT para educación y experimentación.

Sistema operativo
v1.0.0