Esta guia configura un Jetson Nano headless para que actue como servidor de Looker. Tiempo estimado: ~10 minutos.
- Jetson Nano Developer Kit con JetPack 4.6.x ya flasheado.
- La Jetson encendida con acceso a internet (Ethernet o Wi-Fi).
- Acceso SSH o terminal local.
- Cuenta gratuita en tailscale.com (puedes crearla durante el flujo).
cd ~
git clone https://github.com/<OWNER>/looker-remote-desktop.git
cd looker-remote-desktopsudo ./server/install-server.shEl script imprime su progreso en 7 pasos:
[0/7] Validando entorno...
OK usuario de escritorio: jetson (uid=1000, home=/home/jetson)
[1/7] Actualizando indice de paquetes...
[1.5/7] Instalando paquetes base...
[2/7] Instalando Tailscale (repo oficial)...
[3/7] Configurando password VNC...
Introduce el password VNC (max 8 chars): ********
[4/7] Instalando systemd unit x11vnc.service...
[5/7] Configurando autologin GDM3 para jetson...
[6/7] Instalando autostart 'disable-screen-blanking'...
[7/7] Iniciando x11vnc...
============================================================
Instalacion completa
============================================================
| Variable | Default | Proposito |
|---|---|---|
VNC_PASSWORD |
(prompt) | Pasarlo no-interactivo. Max 8 chars (limite VNC clasico). |
LOOKER_FORCE |
0 |
1 salta el chequeo "es Jetson?" para correr en otros Linux. |
Ejemplo no-interactivo:
sudo VNC_PASSWORD='mipass8c' ./server/install-server.shEl installer no hace tailscale up automaticamente porque requiere un browser login que solo tu puedes completar. Despues del install:
sudo tailscale up --ssh --hostname=jetson-nanoTe imprime una URL como:
To authenticate, visit:
https://login.tailscale.com/a/XXXXXXXX
Abrela en cualquier navegador (no tiene que ser en la Jetson — puede ser tu telefono o laptop), inicia sesion con tu cuenta Tailscale, y autoriza el dispositivo jetson-nano.
tailscale ip -4Te devuelve algo como 100.100.166.120. Anotala — esa va en el client/config/connection.json del cliente.
systemctl is-active tailscaled x11vnc gdm3
# Debe imprimir 3 lineas: active / active / active
ss -tlnp 2>/dev/null | grep ':5900'
# x11vnc escuchando en 0.0.0.0:5900
tailscale status | head -5
# Lista los peers de tu tailnet| Paso | Accion | Archivo afectado |
|---|---|---|
| 0 | Detecta usuario desktop (UID 1000) | — |
| 1 | apt update y apt install paquetes base (x11vnc, dbus-x11, curl, gnupg) |
apt |
| 2 | Agrega repo Tailscale + install via apt | /etc/apt/sources.list.d/tailscale.list |
| 3 | Pide password VNC, lo hashea con x11vnc -storepasswd, escribe a /etc/x11vnc.pass (mode 0600 root) |
/etc/x11vnc.pass |
| 4 | Copia configs/x11vnc.service a /etc/systemd/system/, ajusta el path del Xauthority al UID detectado, systemctl enable |
/etc/systemd/system/x11vnc.service |
| 5 | Reescribe /etc/gdm3/custom.conf con AutomaticLoginEnable=true y AutomaticLogin=<usuario> (backup del original en .bak.<timestamp>) |
/etc/gdm3/custom.conf |
| 6 | Copia configs/disable-screen-blanking.desktop a ~/.config/autostart/ |
autostart |
| 7 | systemctl restart x11vnc.service y verifica que quedo activo |
— |
sudo journalctl -u x11vnc -n 30 --no-pager
# No debe haber loops de "FAILURE" / "Restart".# desde una laptop en la misma red:
ping <IP_LAN_de_la_Jetson>
# y con cualquier VNC viewer, conecta a <IP_LAN>:5900Con Tailscale instalado en tu laptop/Windows:
ping 100.100.166.120sudo rm /etc/x11vnc.pass
sudo VNC_PASSWORD='nuevopass' ./server/install-server.sh
# El script ve que falta el archivo y solo lo regenera (los demas pasos son idempotentes).
sudo systemctl restart x11vnc.serviceDespues regenera la copia para el cliente y reemplazala en client/secrets/jetson-vnc.passwd (el installer ya hace esto si encuentra el directorio).
sudo ./server/uninstall-server.sh # remueve services + autostart + password
sudo ./server/uninstall-server.sh --remove-packages # tambien `apt remove x11vnc tailscale`El uninstaller restaura el /etc/gdm3/custom.conf original desde el backup mas reciente.
| Sintoma | Diagnostico |
|---|---|
Installer falla en paso 2 (apt update con repo Tailscale) |
Falta gnupg o el codename de Ubuntu no es bionic. Verifica lsb_release -cs. |
x11vnc.service queda en activating o failed |
El Xauthority no esta en el path esperado. Verifica el UID del usuario y ajusta el -auth del service. |
gdm3 no esta instalado |
El script asume GDM3. Si usas LightDM/SDDM, edita manualmente la config equivalente. |
Para diagnostico mas profundo: docs/troubleshooting.md.