Malgrado le piccole di­men­sio­ni il Raspberry Pi sa come piacere grazie alle sue diverse in­ter­fac­ce (USB, rete) e alle sue buone pre­sta­zio­ni. Non è un caso che il mini computer faccia parte di molti progetti DIY elet­tro­ni­ci e risulti una piat­ta­for­ma richiesta per le ap­pli­ca­zio­ni server dei più diversi tipi. L’utilizzo diretto del Pi tramite mouse, tastiera e monitor non è perciò sempre possibile o risulta spesso im­pra­ti­ca­bi­le, quindi viene uti­liz­za­to fre­quen­te­men­te un PC desktop separato, che gestisce da remoto il sistema operativo e le risorse del Raspberry.

Di solito viene stabilita per questo scopo una con­nes­sio­ne SSH al mini computer, che consente un accesso facile e veloce alla riga di comando. In al­ter­na­ti­va consente anche l’utilizzo tramite accesso remoto di un server VNC sul Raspberry Pi nell’in­ter­fac­cia grafica.

Server VNC sul Raspberry Pi: che cos’è in realtà?

Dietro il VNC (Virtual Network Computing) si nasconde un software client-server con cui si può vi­sua­liz­za­re e con­trol­la­re il contenuto dello schermo del sistema de­si­de­ra­to (server) su un altro sistema (client). Per questo scopo le im­mis­sio­ni da tastiera così come i movimenti del mouse e i clic lato client vengono trasmessi di­ret­ta­men­te al computer remoto. Se quindi in­stal­la­te e attivate un VNC sul Raspberry Pi, potete in­stal­la­re, con­fi­gu­ra­re e gestire co­mo­da­men­te il mini computer da un altro PC.

La base del server VNC è il pro­to­col­lo di rete mul­ti­piat­ta­for­ma Remote Fra­me­buf­fer Protocol (RFB), che trasmette i contenuti come bitmaps e utilizza la porta TCP 5900. Visto che realizza con­nes­sio­ni senza stato, le sessioni remote stabilite non si perdono in caso di in­ter­ru­zio­ni mo­men­ta­nee o di un cambio del client VNC.

N.B.

Questa guida spiega come con­fi­gu­ra­re un server VNC sul Raspberry Pi per uti­liz­zar­lo a distanza. Ov­via­men­te è possibile anche il contrario, cioè in­stal­la­re un client VNC sul mini computer e con­trol­la­re così un altro PC tramite accesso remoto.

Con­fi­gu­ra­re il server VNC sul Raspberry Pi: requisiti

Il software VNC è concepito di modo che funzioni nella maniera più ef­fi­cien­te possibile. Più risorse ri­chie­do­no le altre ap­pli­ca­zio­ni che fun­zio­na­no sul Raspberry Pi, più rilevante risulterà questo punto. Es­sen­zial­men­te non ci sono limiti nella scelta del modello del Raspberry Pi: potete con­fi­gu­ra­re ed eseguire un server VNC sia su un Pi di prima ge­ne­ra­zio­ne sia sulle versioni più recenti.

Per molto tempo la scelta del software adatto ha oscillato tra una di queste due soluzioni, X11VNC o TightVNC. Entrambe sono indicate per il Raspberry Pi e sono ancora oggi uti­liz­za­te sul mini computer. Da quando è stata integrata l’in­ter­fac­cia utente PIXEL nel Raspbian, il sistema operativo standard ha così di default con VNC Connect una propria ap­pli­ca­zio­ne di Virtual Network Computing, che dovete solo attivare per be­ne­fi­cia­re della tec­no­lo­gia di controllo remoto. Il pre­re­qui­si­to es­sen­zia­le è che uti­liz­zia­te almeno Raspbian Jessie, al­tri­men­ti dovete prima scaricare e in­stal­la­re il software client-server.  

N.B.

VNC Connect e X11VNC con­sen­to­no l’accesso diretto end-to-end su ciò che è at­tual­men­te visibile sullo schermo del Rasperry Pi. Invece, TightVNC trasmette le versioni virtuali della ri­pro­du­zio­ne originale e consente così la re­gi­stra­zio­ne con­tem­po­ra­nea di più utenti sul server VNC (in modo analogo al concetto tra­di­zio­na­le di terminale).

Tutorial: come si configura un server VNC sul Raspberry Pi?

Nel seguente tutorial vi mostriamo come si può con­fi­gu­ra­re e uti­liz­za­re un server VNC sul mini computer. A questo scopo prendiamo ad esempio l’in­stal­la­zio­ne e la con­fi­gu­ra­zio­ne facile dei com­po­nen­ti client e server di VNC Connect, la già citata suite standard VNC di Raspbian.

Primo passaggio: in­stal­la­re o ag­gior­na­re VNC Connect sul Raspberry Pi

Nel primo passaggio as­si­cu­ra­te­vi che sul vostro Raspberry Pi sia in­stal­la­ta la versione corrente di VNC Connect, dando i seguenti comandi nel terminale:

sudo apt-get update
sudo apt-get install realvnc-vnc-server
sudp apt-get install realvnc-vnc-viewer

Raspbian aggiorna di con­se­guen­za sia l’ap­pli­ca­zio­ne server sia il client (viewer). Potete uti­liz­za­re il mini computer teo­ri­ca­men­te anche per l’accesso al server VNC, argomento che però qui non trat­te­re­mo.

Se uti­liz­za­te una versione pre­ce­den­te di Raspbian o un altro sistema operativo sul vostro Raspberry Pi, dovete prima di tutto scaricare VNC Connect. Quindi ri­chia­ma­te la pagina ufficiale dello svi­lup­pa­to­re RealVNC e scegliete nel Download Center il file di in­stal­la­zio­ne per il Raspberry Pi.

Secondo passaggio: attivare il server VNC

Non appena avete ag­gior­na­to il software, è possibile avviare il server. Date il comando tramite l’in­ter­fac­cia utente grafica o la riga di comando.

Per prima cosa aprite sem­pli­ce­men­te il menu prin­ci­pa­le (l’icona del lampone) e scegliete infine i punti “Im­po­sta­zio­ni” e “Con­fi­gu­ra­zio­ne del Raspberry Pi”. Spo­sta­te­vi nella tab “In­ter­fac­ce” e impostate “Attivato” alla voce “VNC”.

Se volete attivare il server VNC sul vostro Raspberry Pi tramite la riga di comando, avete bisogno del tool di con­fi­gu­ra­zio­ne raspi-config, che si può avviare nel modo seguente:

sudo raspi-config

Scegliete “In­ter­fa­cing Options” dal menu, se­le­zio­na­te l’opzione “VNC” e infine at­ti­va­te­la con “Yes”. Dopo l’at­ti­va­zio­ne del server si avvierà sempre au­to­ma­ti­ca­men­te quando ef­fet­tua­te il boot del Raspberry Pi.

N.B.

La di­sat­ti­va­zio­ne del server VNC funziona allo stesso modo: scegliete sem­pli­ce­men­te le opzioni inverse “Di­sat­ti­va­to” o “No”.

Terzo passaggio: ve­ri­fi­ca­re le im­po­sta­zio­ni della con­nes­sio­ne

Se avete in­stal­la­to e attivato VNC Connect sul Raspberry Pi, al riavvio del mini computer trovate l’icona per il server VNC nella barra del sistema dell’in­ter­fac­cia utente. Cliccando sull’icona, si aprirà una finestra di riepilogo sulla con­net­ti­vi­tà e la sicurezza dell’ap­pli­ca­zio­ne per l’accesso remoto. Il lato sinistro mostra l’IP del vostro Raspberry, di cui avete bisogno per stabilire una con­nes­sio­ne con il client VNC. Annotate l’indirizzo per averlo a di­spo­si­zio­ne suc­ces­si­va­men­te sul computer esterno. In al­ter­na­ti­va si può scoprire il proprio IP tramite il seguente comando del terminale:

hostname -I

Sul lato destro trovate una firma e le parole chiave che servono per la verifica dell’identità. Entrambe devono essere vi­sua­liz­za­te con un avviso quando avviate suc­ces­si­va­men­te la con­nes­sio­ne del VNC. Potete così as­si­cu­rar­vi che il sistema di de­sti­na­zio­ne rilevato sia ef­fet­ti­va­men­te il vostro Raspberry Pi.

Consiglio

Se volete accedere con re­go­la­ri­tà al vostro Raspberry Pi tramite VNC, si consiglia di assegnare un indirizzo IP fisso al mini computer.

Quarto passaggio: in­stal­la­re VNC Viewer su un di­spo­si­ti­vo esterno

Dopo che avete messo in funzione il server VNC sul Raspberry Pi, con­cen­tra­te­vi ora sul computer separato dal quale volete con­trol­la­re a distanza il mini computer. Su questo in­stal­la­te prima di tutto l’ap­pli­ca­zio­ne client, VNC Viewer. A tal fine RealVNC mette a di­spo­si­zio­ne dei file di in­stal­la­zio­ne gratuiti per diversi sistemi operativi. Così si può in­stal­la­re il client sui PC Windows, macOS, Linux, ecc. Inoltre ci sono app per Android e iOS così come un’esten­sio­ne per Chrome, che grazie al VNC Viewer può essere eseguita tramite il browser di Google. Scaricate nel Download Center di Real VNC la relativa versione e pro­se­gui­te con la classica in­stal­la­zio­ne.

Quinto passaggio: stabilire una con­nes­sio­ne diretta al Raspberry Pi (nella rete locale)

Il modo più facile e veloce per uti­liz­za­re la tec­no­lo­gia VNC consiste in una con­nes­sio­ne diretta tra il computer (client) e il Raspberry Pi. Il pre­re­qui­si­to è che entrambi i di­spo­si­ti­vi siano connessi con la stessa rete locale (LAN o Wi-Fi) e che si conosca l’IP del Raspberry. In questo caso avviate VNC Viewer, inserite l’indirizzo nell’apposita barra e avviate la con­nes­sio­ne premendo il tasto “Connect”.

Il client vi presenta poi l’avviso già nominato (con firma e parole chiave) per la verifica dell’identità. Se si tratta di in­for­ma­zio­ni che sono già state inserite prima dal server VNC, potete pro­se­gui­re.

Suc­ces­si­va­men­te vi viene richiesto di inserire il nome utente e la password, ovvero i dati dell’account utente del Raspberry Pi, che sono di default il nome utente “pi” con la password “raspberry”. Per impedire l’accesso a utenti non au­to­riz­za­ti, si consiglia di cambiare questi dati standard (ancora meglio se prima dell’avvio del server VNC).

Sesto passaggio: stabilire una con­nes­sio­ne cloud al server VNC sul Raspberry Pi

Se non volete o non potete collegare il client e il Raspberry Pi tramite una rete locale, avete invece la pos­si­bi­li­tà di iniziare una sessione VNC tramite Internet. Per con­nes­sio­ni cloud di questo tipo, che sono gratuite per scopi non com­mer­cia­li e si con­trad­di­stin­guo­no per una crit­to­gra­fia end-to-end, avete bisogno solo di un account RealVNC, che si crea in pochi secondi in modo com­ple­ta­men­te gratuito. Per il processo di re­gi­stra­zio­ne aprite ancora una volta la pagina ufficiale di RealVNC e inserite un indirizzo e-mail valido nel box Sign up.

Ora avete bisogno per ben due volte dei dati del login del nuovo account RealVNC (indirizzo e-mail e password), vale a dire nell’ap­pli­ca­zio­ne per il server VNC sul Raspberry Pi e lato client nel VNC Viewer. Nel programma del server ag­giun­ge­te un col­le­ga­men­to all’account, inserendo l’e-mail e la password alla voce del menu “Licensing” e infine cliccando su “Sign in”. Sul di­spo­si­ti­vo client vi re­gi­stra­te sem­pli­ce­men­te con l’account nel VNC Viewer. Suc­ces­si­va­men­te il Raspberry Pi viene elencato au­to­ma­ti­ca­men­te come host di­spo­ni­bi­le e basta un semplice doppio clic sul simbolo cor­ri­spon­den­te per stabilire la con­nes­sio­ne VNC.

Settimo passaggio: regolare la ri­so­lu­zio­ne dello schermo del Raspberry Pi

Una volta in­stau­ra­ta la con­nes­sio­ne al server VNC sul Raspberry Pi, può essere ne­ces­sa­rio mo­di­fi­ca­re la ri­so­lu­zio­ne dello schermo del mini computer per due motivi:

  1. La per­for­man­ce è limitata, visto che la ri­so­lu­zio­ne è troppo alta.
  2. La ri­so­lu­zio­ne standard è rimasta invariata (ad esempio perché il Raspberry è stato uti­liz­za­to nella modalità headless senza essere collegato al monitor) ed è perciò troppo bassa.

Trovate le cor­ri­spon­den­ti pos­si­bi­li­tà di re­go­la­zio­ne nel tool già uti­liz­za­to raspi-config, che avviate con il noto comando del terminale:

sudo raspi-config

Se­le­zio­na­te il punto del menu “Advanced Options“ e ricercate la voce “Re­so­lu­tion“, dove potete stabilire la ri­so­lu­zio­ne de­si­de­ra­ta, prima di chiudere il tool e la riga di comando.

Consiglio

Se volete avere un maggiore controllo sulle im­po­sta­zio­ni HDMI del vostro Raspberry Pi, potete apportare modifiche nel file di con­fi­gu­ra­zio­ne /boot/config.txt. Alla voce hdmi_mode definite ad esempio i relativi valori tra oltre 50 formati output HDMI. Nei manuali online ufficiali (Paragrafo: “HDMI mode options“) trovate una spie­ga­zio­ne esau­rien­te e una lista completa dei possibili valori.

Ottavo passaggio: ot­ti­miz­za­re la per­for­man­ce per il VNC sul Raspberry Pi Zero e Pi 1

Se avete con­fi­gu­ra­to un server VNC sul Raspberry Pi 1 o Zero, la per­for­man­ce non è sempre stabile a causa delle pre­sta­zio­ni inferiori di questi modelli più datati. Se siete loggati in una rete locale sicura, potete risolvere questa questione di­sat­ti­van­do la crit­to­gra­fia e di­mi­nuen­do così lo sfrut­ta­men­to della CPU.

N.B.

La di­sat­ti­va­zio­ne della crit­to­gra­fia è possibile solo per con­nes­sio­ni dirette e non per quelle cloud.

Aprite il menu del server VNC sul Raspberry Pi e andate sulle opzioni. Scegliete la modalità esperto e impostate il parametro “En­cryp­tion” su “AlwaysOFF“. Le modifiche non vengono applicate alle sessioni attive, quindi è ne­ces­sa­rio in­ter­rom­pe­re e riavviare le con­nes­sio­ni esistenti.

Vai al menu prin­ci­pa­le