Installazione di Raspberry Pi +qtVlm

qtVlm In questa paginetta descriviamo l'installazione di qtVlm, un potente e completo programma di routing per barche a vela, su Raspberry, che e' un computer completo fornito su una singola scheda, piccola ma assai ricca di connettori esterni.

In realta' l'installazione di qtVlm e' molto semplice, un poco piu' lunga e' invece la preparazione del Raspberry che nel seguito viene configurato in modalita' headless, ovvero senza collegare ne video ne tastiera.

Passi

Raspberry Pi4 Vi sono diversi passi necessari per completare l'installazione... ed i primi sono i piu' sono importanti.

Anche se le prime scelte sono le piu' importanti, dipendono da molti fattori quindi le accennero' solo per brevita' lasciando le diverse considerazioni alla fine di questa pagina.

Come scheda Raspeberry Pi utilizzeremo un Raspberry Pi 4 4GB di RAM con cui si hanno velocita' adeguata, memoria a sufficienza, inserendolo in un case in alluminio per dissipare il calore per contatto.
Una normale scheda microSD da 32GB C10 ed un alimentatore USB-C 2A completano il nostro hardware.

Come software utilizziamo Raspberry Pi OS nella versione Bullseye (definita Legacy ma comunque recente) e l'ultima versione di qtVlm.

Ora che abbiamo tutti i pezzi e deciso cosa installare possiamo procedere a creare l'immagine.

Creazione immagine

L'immagine completa del sistema operativo, con la parte di boot ed il file system che verra' resa disponibile sul Raspberry si crea in modo semplice con il programma Raspeberry Pi Imager. Raspberry Pi Imager si scarica dal sito ufficiale ed e' disponibile per Windows, Mac OS e Linux.

Lanciato il programma bisogna scegliere cosa installare: Raspberry Imager Scegliamo la versione Legacy (2023-05): Raspberry Imager - OS Version Sono importanti le impostazioni.
Il nome dell'host per default e' raspberrypi non e' necessario cambiarlo ma lo facciamo lo stesso impostandolo a lamp-ONE. Il nome dell'utente di default e' pi, si puo' cambiare ma sopratutto e' importante impostare e ricordarne la password. Altrettanto importante e' impostare un WiFi funzionante per collegarsi successivamente. Raspberry Imager - Settings Abilitiamo l'SSH per poterci connettere ed utilizziamo l'autenticazione con password: Raspberry Imager - SSH Settings Terminate le impostazioni confermiamo la scrittura, che ovviamente cancellera' ogni precedente contenuto della microSD: Raspberry Imager - Sure? Un poco di pazienza: la fase di scrittura e verifica dell'SSD puo' richiedere una decina di minuti! Raspberry Imager - Sure? Ora possiamo inserire la microSD nella scheda Rapsberry ed accenderla collegandola all'alimentatore!

Configurazione base

Il primo boot richiede qualche momento in piu' ma generalmente un paio di minuti sono sufficienti e possiamo collegarci dal nostro PC.

Per collegarci dal nostro PC alla scheda Raspberry abbiamo bisogno di una connessione a terminale ed una connessione grafica.
Con Windows un ottimo programma e' il Putty mentre per la connessione grafica con VNC uno dei piu' utilizzati e' RealVNC.
Utilizzando un Mac il Terminal e' gia' disponibile e per la connessione grafica, tra le molte alternative, ho utilizzato TigerVNC [NdA perche' mi funziona anche con Wayland ma e' un dettaglio].
Se utilizzate Linux... gia' sapere come collegarvi!

Quando il boot e' terminato risponde al ping, possiamo connetterci alla scheda ed effettuare una configurazione di base:

me@MacBook ~ % ping lamp1.local PING lamp1.local (192.168.0.110): 56 data bytes Request timeout for icmp_seq 0 64 bytes from 192.168.0.110: icmp_seq=1 ttl=64 time=126.127 ms 64 bytes from 192.168.0.110: icmp_seq=2 ttl=64 time=8.925 ms ... me@MacBook ~ % ssh pi@lamp1.local The authenticity of host 'lamp1.local (fe80::f1fa:2023:fd50)' can't be established. ... Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'lampone001.local' (ED25519) to the list of known hosts. pi@lampone001.local's password: **** Linux lampone001 6.1.0-rpi4-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 ... Last login: Tue Oct 10 06:07:57 2023 pi@lamp1:~ % sudo raspi-config

Molti messaggi a cui rispondere, alcuni preoccupanti, ma non e' stato difficile: abbiamo dato solo i comandi ssh pi@lamp1.local, confermato, inserito una password e tutto funziona correttamente.

Raspberry raspi-config

Lanciando il comando raspi-config si puo' modificare la configurazione del Raspberry. Con raspi-config, navigando sui suoi semplici menu dobbiamo:

raspi-config effettua immediatamente le configurazioni, restituisce eventuali errori e, se necessario, all'uscita effettua un reboot.

A questo punto l'accesso grafico e' configurato ed e' possibile accedere con VNC anche alla console grafica. Siamo pronti ad installare il software ma prima impariamo a conoscere il sistema operativo.

Raspeberry Pi OS

Facciamo un giro sul nostro sistema operativo ospite.
Raspberry pinout Raspberry Pi OS e' un Linux Debian con poche differenze rispetto alla distribuzione originale. Personalmente mi trovo benissimo a lavorarci, sopratutto con la connessione da terminale, ma per chi e' abituato solo a windows le differenze sono molte. Dalla console grafica si possono effettuare la maggioranza delle configurazioni ma per le impostazioni piu' complesse o fare in fretta spesso si utilizza una sessione a terminale.

L'utente pi corrisponde all'uid 1000 e deve utilizzare il comando sudo per lanciare comandi amministrativi. La home directory e' /home/pi ed in genere si partira' questa directory per scaricare programmi e file. Vi sono due file system / e /boot/firmware sempre presenti. Eventuali dischi esterni vengono montati su /media/pi/HARD-DRIVE-LABEL. Sono presenti tutti i comandi standard linux della distribuzione Debian: sudo apt-get update; sudo apt-get upgrade; sudo apt-get -y install xxx; ... insomma c'e' tutto, anche il vi ;-)

Importanti sono i comandi aggiuntivi di Raspberry.

pinout riporta il layout della scheda.

sudo raspi-config permette di eseguire le principali configurazioni del Raspberry in modo semplificato (l'interfaccia a caratteri e' la stessa di base-config o di dpkg-reconfigure). In pratica configura il contenuto del file /boot/firmware/config.txt ed esegue il reboot quando necessario.

L'ambiente grafico PIXEL e' ottimizzato per il processore utilizzato ed e' giustamente moderato nell'utilizzo di risorse. L'interfaccia grafica risulta semplice e diretta: e' molto semplice aggiungere programmi al menu o sul desktop.

Dal menu si possono richiamare diversi programmi tra cui cito (in ordine casuale): Cromium, LVC media player, Thonny, ...

Da ultimo qualche semplice consiglio per iniziare bene e finire meglio:

Installazione qtVlm

Per l'installazione di qtVlm basta scaricare il software dal sito ufficiale e copiarlo sul Raspberry.

Per copiare il file bisogna utilizzare dal nostro PC sftp oppure il comando scp qtVlm-5.12.1-rpi32Bullseye.tar.gz pi@lamp1.local quindi va scompattato il file con:

tar zxvf qtVlm-5.12.1-rpi32Bullseye.tar.gz

Il programma e' installato. Per lanciarlo bisogna essere connessi in VNC e da terminale lanciare i comandi:

cd qtVlm ./qtVlm

E' sicuramente comodo lanciare qtVlm da menu anziche' da linea di comando sul terminale. Si imposta facilmente nelle Preferences / Main Menu Editor inserendo il lancio di qtVlm:

PIXEL Menu Add qtVlm to the Menu

E' anche possibile creare un collegamento sul desktop: basta copiare l'icona del menu.

Finalmente possiamo dedicarci alle nostre rotte! qtVlm - Routage Transat Jacques Vabre 2023

Configurazioni ulteriori

Ci sarebbe molto da dire su cosa aggiungere al Raspberry: GPIO, Wifi, altri software (eg. OpenCPN, System K), video, ...

Anche per il qtVlm usato in barca ci sono innumerevoli configurazioni aggiuntive: AIS, NMEA, companion (per leggere i dati con un tablet), ...

Ma l'alternativa che consiglio e' quella di utilizzare l'immagine di OpenPlotter come descritto in questa paginetta.

Problemi? Parliamone!

Durante ogni fase dell'installazione possono verificarsi problemi... Molti dei messaggi che si ricevono in realta' sono del tutto normali ed un sistemista Linux saprebbe come risolverli; ma non tutti sono utenti esperti, quindi cerchiamo di vederne alcuni!

Innanzi tutto inserendo la scheda microSD nel vostro computer il sistema operativo vorra' utilizzarla. A seconda dei casi chiedera' di formattarla, inizializzarla, montarla, ... Non serve, anzi puo' dare problemi quindi declinate gentilmente l'offerta.
Attenzione: quando scegliete su cosa scaricare l'immagine del Raspberry Pi OS controllate bene che si tratti della scheda microSD!

Allow imager Ho un Mac OS che mi chiede il permesso ogni volta che che un programma accede ad una risorsa o salva una password. Corretto dal punto di vista della sicurezza ma un po' noioso: in ogni caso anche a questi messaggi bisogna confermare l'operazione.

Le connessioni con SSH sono sicure, come dice il nome (Secure Socket Shell), quindi vengono effettuati una serie di controlli ed inviati messaggi sia quando e' la prima volta che accediamo ad un host:

The authenticity of host 'lamp1.local (aiai::f1fa:f1da:d1ce)' can't be established. ED25599 key fingerprint is SHA256:vrc0QgvX2P7o/aCkK5fifaPIC0tv9M. This key is not known by any other names.
O peggio quando abbiamo cambiato un immagine mantenendo lo stesso IP:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ED25599 key sent by the remote host is SHA256:f1fafifafifaWDQTo2RZ/e2zR6tBWGFjdipOt68U. Please contact your system administrator.

In entrambe i casi e' possibile continuare (se abbiamo capito il messaggio sappiamo cosa fare...).

Insomma di solito dobbiamo confermare i vari messaggi e proseguire... Unknown Autority

Variazioni sul tema

Ci sono moltissime variazioni rispetto a quanto indicato in questa pagina che possono essere applicate.
Ci sono tecniche per determinare l'indirizzo IP, ci si puo' collegare con un cavo di rete, ... ho scelto la modalita' di semplice senza ricorrere ad un'immagine gia' costruita.

Ma andiamo con ordine: prima la scelta dell'HW.
Case Raspberry Innanzi tutto serve una scheda Raspeberry Pi. Ve ne sono diverse in commercio e le piu' recenti hanno differenti quantita' di RAM tra cui scegliere. Il modello che ho scelto e' il Pi 4 con 4GB di RAM per avere velocita' adeguata, memoria a sufficienza e non dover utilizzare una ventola. Infatti utilizzero' un case in alluminio per dissipare il calore solo per contatto. Il Pi 5 e' la versione piu' recente e veloce, sarebbe stato la scelta migliore per un server NAS o compiti CPU based. Puo' anche essere piu' efficiente in termini di consumi e quindi di temperatura ma ha picchi piu' elevati. Concludendo Pi 4 4GB e case in alluminio.

Altro componente importante e' la scheda microSD che e' in pratica l'Hard Disk del nostro sistema. 32GB sono sufficienti per i miei scopi mentre per la velocita'... piu' veloce e' e meglio e'. Ho utilizzato una normale C10 perche' gia' l'avevo a casa ma si puo' fare meglio, ad esempio utilizzare una A1 o una A2 che garantiscono molte piu' IOPS [NdA sulla velocita' ci sono molti elementi da considerare, per avere qualche riferimento meglio dare un'occhiata a Wikipedia]. Come dimensione 32GB sono sufficienti ma la differenza di prezzo con una 64GB e' minima, se da predere nuova conviene acquistare una 64GB.
L'alimentatore e' un componente HW semplice ma necessario; serve un alimentatore USB-C 5V da almeno 2 o meglio 3 ampere. In casa qualsiasi alimentatore per PC con cavo USB-C va benissimo. Se si utilizza in barca ovviamente la cosa piu' comoda e' utilizzare la batteria dei servizi che ha una tensione di 12V. Serve quindi un convertitore DC-DC 12V-5V: ve ne sono sia da collegare direttamente che da utilizzare con la presa dell'accendisigari. I consumi sono comunque limitati.
Il Raspeberry Pi e' un computer completo ma non ha tastiera, video, mouse, ... ovviamente si possono collegare ma non sono necessari e non li abbiamo usati effettuando un'installazione headless.
Come video la scelta e' davvero ampia e dipende molto dall'utilizzo. La qualita' delle uscite video dei Pi 4 e' molto buona perche' supporta 2 video HDMI da 4k (connettori micro), per utilizzarli ovviamente serve il cavo ed un display. Ma piu' spesso si utilizza il Wifi per connettersi con un dispositivo mobile. La mia preferenza va per un tablet a basso costo anche se molti suggeriscono, non a torto, tablet waterproof. La scelta della risoluzione video e le diverse impostazioni relative sono poi importanti per avere una visione fluida e nitida e si effettuano facilmente con raspi-config.

Ora il software!
Raspberry Come sistema operativo avrei voluto utilizzare l'ultima versione di Raspeberry Pi OS a 64bit che e' basato su Debian 12 Bookworm. Sono molte le novita' introdotte nella 12 per Raspberry tra cui Wayland al posto di X11 e PipeWire al posto di PulseAudio oltre al supporto dei nuovi Pi 5. Ma ho trovato un'incompatibilita' [NdA QT e' compatibile con Wayland, il problema e' su una libreria audio] e mi sono accontentato di utilizzare la versione precedente basata su Debian 11 Bullseye. Comunque utilizzare la versione appena precedente e' spesso la scelta migliore.

Il Raspberry ha una presa di rete RJ-45 ed il bluetooth. Oltre che come client il Raspberry puo' operare come Hotspot di una rete WiFi anche in modalita' network bridge. Insomma le possibilita' di connessione sono moltissime e tutte utilizzabili. La configurazione? Con raspi-config si hanno le configurazioni piu' comuni, altrimenti su file come su una qualsiasi Debian della versione corrispondente.

Su web si trovano moltissime pagine ed indicazioni sul Raspberry. In generale sono tutte utili, bisogna solo fare attenzione perche' alcuni suggerimenti erano validi con le versioni precedenti e non sono piu' corretti. Ad esempio la configurazione iniziale del WiFi sul wpa_supplicant.conf e' ora automatizzata con il file /boot/firmware/config.txt [NdA ma le reti Wifi come station sono sempre memorizzate su /etc/wpa_supplicant/wpa_supplicant.conf], la password dell'utente pi non e' raspberry ma viene cambiata, ... Al contrario altri documenti possono essere troppo recenti e riferirsi alla versione 12 Bookworm che, almeno al momento, e' ancora un po' troppo recente e, a mio avviso, non ancora sufficientemente testata con alcune applicazioni; ma ovviamente lo sara' sempre piu' nei prossimi mesi.

Varie ed eventuali

Per l'installazione di OpenPlotter su Raspberry vedere questa paginetta.

L'elenco delle versioni di Raspberry Pi OS e' riportato in questa paginetta.

Buon vento!


Titolo: Installazione di Raspberry Pi +qtVlm
Livello: Avanzato (3/5)
Data: 31 Ottobre 2023 🎃 Halloween
Versione: 1.0.0 - 31 Ottobre 2023
Autore: mail [AT] meo.bogliolo.name