L'objectiu d'aquest article és mostrar com podem tenir un servidor remot sempre al nostre abast amb VNC i una Raspberry Pi sense teclat, ratolí ni monitor.
Instal·lem els següents programes per a tenir un escriptori LXQt remot amb VNC sempre disponible:
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-tools lxqt-core lxqt-session lxqt-panel pcmanfm-qt openbox dbus-x11 xdg-user-dirs
És molt important la seguretat. Ens crearem una contrasenya per a totes les sessions de connexió remota:
vncpasswd
Anem a crear un script que inicie TigerVNC sempre que iniciem l'escriptori LXQt. Editarem el fitxer ~/.vnc/xstartup i afegirem el següent:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
#
export XDG_RUNTIME_DIR=/run/user/$(id -u)
if [ ! -d "$XDG_RUNTIME_DIR" ]; then
export XDG_RUNTIME_DIR="$HOME/.xdg-runtime"
mkdir -p "$XDG_RUNTIME_DIR"
chmod 700 "$XDG_RUNTIME_DIR"
fi
#
xrdb "$HOME/.Xresources" 2>/dev/null
exec dbus-launch --exit-with-session startlxqt
I farem que siga executable:
chmod +x ~/.vnc/xstartup
Prova manual
Anem a fer la primera prova. Anem a iniciar manualment el servidor VNC i ens hauria d'obrir un escriptori LXQt:
vncserver -localhost no -geometry 1920x1080 -depth 24 :1
O si no vols consumir tants recursos, pots abaixar la resolució i la profunditat de color, per exemple qualsevol d'aquestes:
XGA 1024×768 4:3 1,33:1 786 kpx XGA+ 1152×864 4:3 1,33:1 995 kpx HD 1280x720 16:9 1,78:1 921 kpx WXGA 1280×768 15:9 o 16:10 1,67:1 983 kpx SXGA 1280×1024 5:4 1.25:1 989 kpx WXGA 1360×768[2] 85:48 1,77:1 1044 kpx WXGA 1366×768 aprox. 16:9 1,78:1 1049 kpx WXGA 1280×800 16:10 1,6:1 1 Mpx WXGA+ 1440×900 16:10 1,6:1 1,2 Mpx SXGA 1280×1024 5:4 1,25:1 1,3 Mpx HD+ 1600x900 16:9 1,78:1 1.44 Mpx WSXGA+ 1680×1050 16:10 1,6:1 1,76 Mpx UXGA 1600×1200 4:3 1,33:1 1,9 Mpx Full HD 1920×1080 16:9 1,78:1 2 Mpx
Podem fer-ho així:
vncserver -localhost no -geometry 13660x768 -depth 16 :1
Ens connectarem des de quaslevol ordinador de la nostra LAN:
vncviewer 192.168.1.10:1
Funciona perfectament! aleshores, ja podem automatitzar tenir un escriptori sempre disponible.
Un servei que inicie l'escriptori quan encenem la Raspberry Pi
Ara farem que el servidor TigerVNC s’inicie automàticament cada vegada que la Raspberry arranque de manera autònoma. Ho farem amb un servei systemd d’usuari, que és la manera més neta i moderna (no cal tocar /etc ni executar com a root).
Crearem el fitxer vncserver.server:
joan@r5:~ $ mkdir -p ~/.config/systemd/user
joan@r5:~ $ vi .config/systemd/user/vncserver.service
Afegirem el següent codi:
[Unit]
Description=TigerVNC LXQt Server
After=graphical-session.target network.target
[Service]
Type=forking
ExecStart=/usr/bin/vncserver -localhost no -geometry 1920x1080 -depth 16 :1
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure
# Directori HOME correcte
WorkingDirectory=%h
Environment=DISPLAY=:1
Environment=XDG_RUNTIME_DIR=/run/user/%U
[Install]
WantedBy=default.target
Habilitarem el “linger” perquè systemd d’usuari s’execute al boot, Això permet que els serveis “d’usuari” s’executin encara que no hi hagi sessió iniciada.. Ho farem de la següent manera:
sudo loginctl enable-linger $USER
Carreguem el servei i reiniciem la màquina:
systemctl --user daemon-reload
sudo reboot
Ja tenim un servidor sense monitor servint sempre un escriptori remot amb VNC.






