Impostazione in modalità headless per il tuo Raspberry Pi 3

Pubblicato da

Il Raspberry Pi 3 offre un incredibile gamma di possibilità in una confezione davvero piccola ed economica. Puoi trasformarlo in qualunque cosa, da un media center da tenere dietro la TV a un sistema di irrigazione intelligente, ma prima di tutto devi iniziare a farlo funzionare.

Io consiglio di utilizzare monitor, tastiera e mouse dedicati, in modo che il Pi 3 diventi un computer autonomo, ma so bene che ciò non è sempre possibile. Quindi cosa fare, se hai a disposizione solo un laptop e spazio e fondi limitati? Nessun problema. Per il sistema Raspberry Pi va benissimo una connessione seriale o SSH e non ha davvero bisogno di altri articoli per funzionare. Per effettuare un'impostazione headless efficace hai bisogno di fare due cose: installare il SO e stabilire la connettività. Ecco come.

Passaggio 1 – Impara dai miei sbagli

Dapprima pensavo di utilizzare un adattatore USB seriale come il Serial Cable di Adafruit per Raspberry Pi. In passato li ho trovati affidabili, utilizzandoli per Pi 1 e 2 e per vari altri progetti di programmazione. Pensavo che le cose sarebbero state abbastanza semplici, ma mi sbagliavo. Ricordati che RX e TX significa ricevere verso un dispositivo e trasmettere da un dispositivo, quindi l'RX dell'adattatore necessita di essere collegato al TX del Raspberry Pi e il TX nell'RX del Pi. Sul Raspberry Pi i pin corretti sono l'8 e il 10, rispettivamente per TX e RX. Assicurati di collegare la messa a terra al pin 9 o 6. Io preferisco utilizzare il pin 9 per la messa a terra, perché ho un piccolo ventilatore collegato ai pin 4 e 6 per 5 V e la messa a terra, che aiuta a mantenere il Pi fresco sotto sforzo.

Visualizza prodotti correlati

954

Adafruit Industries Cable Assembly USB Visualizza

0816 Headless image 1

Una volta collegato il cavo seriale e caricato NOOBS nella scheda SD, pronto per far partire il sistema, ho riscontrato immediatamente due problemi: NOOBS non si presta a una installazione headless in configurazione predefinita e la porta seriale mi porta verso una console di recupero con la quale non posso interagire. Ho ricaricato la scheda SD direttamente in Raspbian per ovviare al problema di NOOBS che non riesce ad essere installato senza altri dispositivi di interfaccia. Durante questa operazione, avevo il Pi collegato a un monitor secondario per controllare i suoi progressi e assicurarmi che le cose stessero procedendo. Raspbian si era installato correttamente, ma la mia console seriale non visualizzata nulla, né reagiva agli input.

Dopo qualche ricerca, ho scoperto che esiste un problema relativo al collegamento di una console seriale a Raspberry Pi 3. Dal momento che il nuovo Pi dispone di più funzionalità, come WiFi e Bluetooth, le connessioni erano cooptate per supportarle. Nello specifico, l'UART dove in precedenza si trovava la console seriale ora veniva utilizzato per le comunicazioni Bluetooth. L'UART era necessario perché la velocità del bus può essere impostata indipendentemente dalla velocità dell'orologio di sistema, necessario per il modulo Bluetooth. Raspberry Pi 3 dispone di un UART secondario, che però ha un problema: la sua velocità di baud è legata alla frequenza di sistema, il che significa che varia al variare della velocità del processore. Senza una velocità di baud fissa è pressoché impossibile ottenere comunicazioni efficienti. Una soluzione per questo problema consiste nell'utilizzare un flag di configurazione che fissa la frequenza di sistema, consentendo una velocità di baud costante a 115200. Ciò, purtroppo, ha come effetto secondario una riduzione delle prestazioni generali del Raspberry Pi, ma è possibile ovviare a ciò forzando il Raspberry Pi alla modalità turbo costante. Ricordati: forza la modalità turbo solo se hai provveduto a un sistema di dissipazione del calore e hai installato un ventilatore per il tuo Pi.

Conseguenze dell'abilitazione dell'interfaccia seriale

Per abilitare la connessione seriale sul mini-UART, aggiungi “enable_uart=1” al file config.txt che si trova nella root directory, quando hai una scheda SD con Raspbian inserita in una macchina Windows. Config.txt si trova anche in /boot/ quando esplori il filesystem dall'interno del Raspberry Pi. Facendo ciò avrai una console seriale per accedere al Pi non appena è pronto a funzionare. Ora puoi inserire una scheda microSD caricata con Raspbian e utilizzare un terminale come Putty per connetterti al Pi. 

0816 Headless image 2

0816 Headless image 3

Ora, con l'interfaccia seriale aperta in Raspberry Pi, puoi connetterti al WiFi da linea di comando. Per avere un elenco di tutti i punti di accesso nel raggio del tuo Pi utilizza il comando “sudo iwlist wlan0 scan”. Se vuoi connetterti, devi identificare l'ESSID del WiFi e lo stile di autenticazione utilizzato, elencato sotto il SSID. Il resto di questo metodo funziona bene con le protezioni WPA e la più recente WPA2, ma, se la tua autenticazione utilizza un server RADIUS o WPA2 Enterprise, hai bisogno di un'altra guida. Io sconsiglio vivamente di utilizzare WEP o qualunque altra impostazione wireless, perché possono essere facilmente attaccate. Una volta ottenute le chiavi SSID e WiFi, dovrai modificare la configurazione wpa-supplicant utilizzando “sudo nano /etc/wpa_supplicant/wpa_supplicant.conf”. Ti conviene aggiungere il seguente testo alla fine del file, per sostituire SSID e chiave con le seguenti informazioni:

network={

ssid="The_ESSID_from_earlier"
                psk="Your_wifi_password"
}

Premi Ctrl+X poi Y seguito da Enter per uscire da nano e salvare il file. A questo punto, WPA-supplicant dovrebbe notare i cambiamenti e cercare di connettersi alla rete elencata. Se ciò non avviene, puoi riavviare manualmente l'interfaccia con “sudo ifdown wlan0 && sudo ifup wlan0” o eseguire il reboot con “sudo reboot now”. Puoi verificare una connessione network e determinare l'indirizzo IP al quale connetterti via SSH utilizzando “ifconfig wlan0”. L'inet addr è indirizzo IP del Pi in rete.

Utilizzare un seriale in questo modo è il mio metodo preferito per connettere Raspberry Pi3 alla rete, se non ho tastiera e mouse dedicati, dato che posso configurare il WiFi e determinare l'indirizzo IP velocemente per passare da seriale a SSH. Quando hai finito di utilizzare l'interfaccia seriale, ti consiglio di portare “enable_uart” a 0 nel file config.txt che abbiamo modificato in precedenza, per riabilitare velocità di orologio maggiori nel Pi. Questo ultimo passaggio ti aiuta a evitare le conseguenze che comporta la connessione seriale.

Il metodo semplice

Un altro metodo, molto più semplice, per far funzionare il WiFi è inserire il file wpa_supplicant.conf configurato nella root di una scheda SD Raspbian recente. È importante che sia una scheda SD nuova che non è ancora stata sottoposta al processo di installazione. Una volta avviata la scheda SD in Raspberry Pi, il processo di installazione porterà anche il tuo file di configurazione personalizzato nel sistema principale, consentendo al Pi di inserirsi nel tuo network. Uno dei difetti di questo metodo, rispetto alla connessione seriale, è che non ti dice immediatamente l'indirizzo IP per la connessione via SSH. Un Pi appena avviato che non è stato personalizzato avrà “raspberrypi” come nome di rete, il che significa che puoi facilmente inviargli dei ping, se si trova all'interno della rete sulla quale hai anche la tua macchina principale, in questo modo ottieni l'indirizzo IP che ti serve per le connessioni SSH.

Per NOOBS

L'installer NOOBS disponibile richiede un po' più di lavoro ma ti consente di poter utilizzare NOOBS per diverse funzioni del SO. Per utilizzare NOOBS in modalità headless, è necessario configurarlo per un'installazione silenziosa e avere la possibilità di sposare il file wpa-supplicant dopo aver installato Raspbian. Per abilitare l'installazione silenziosa in NOOBS devi modificare il file recover.cmdline nella root directory della scheda SD. Inizialmente, il file si presenta in questo modo:

runinstaller quiet ramdisk_size=32768 root=/dev/ram0 init=/init vt.cur_default=1 elevator=deadline

La versione modificata per silentinstall e default per una tastiera statunitense ha questo aspetto:

runinstaller quiet ramdisk_size=32768 root=/dev/ram0 init=/init vt.cur_default=1 elevator=deadline keyboard=us silentinstall

Questa versione di recovery.cmdline installa automaticamente il SO presente nella scheda SD. È importante che ci sia un solo SO nella scheda SD, altrimenti l'installazione silenziosa non andrà a buon fine. L'attuale installer offline di NOOBS dispone di Raspbian e, nel mio caso, ha funzionato senza alcuna modifica.

Per abilitare la copia sul file wpa_supplicant.conf dobbiamo aggiungere uno strumento di terze parti chiamato NOOBSConfig di Procount. Dispone di un esempio specifico per copiare il file wpa per Raspbian.

Aggiungendo silentinstall e NOOBSConfig abbiamo una scheda SD che può essere inserita in Raspberry Pi, installarsi in autonomia e connettersi a una rete. Per trovare l'indirizzo IP puoi seguire gli stessi passaggi elencati sopra, fino a inviare un ping e poi connetterti via SSH alla tua nuova piccola macchina linux.

Pulizie e conclusioni

Dopo aver eseguito uno dei metodi descritti sopra per ottenere un Raspberry Pi 3 headless, ti consiglio di concludere con alcuni altri passaggi. Utilizzando “sudo raspi-config”, entrerai in un menu composto da una serie di strumenti utili. Il primo da utilizzare è “Expand Filesystem”, che espande il sistema per assicurarsi di utilizzare tutto lo spazio disponibile, dato che copiare un'immagine su una scheda SD potrebbe creare spazio non allocato. Cambia poi la password utente utilizzando la seconda opzione del menu, le password predefinite rendono il tuo sistema insicuro e facile da attaccare. La quinta opzione di consente di cambiare località, fuso orario, layout della tastiera e paese del WiFi; in questo modo sei sicuro che tutto sia allineato alle tue aspettative di sistema. Il menu delle opzioni avanzate include molte altre opzioni, in particolare, qui puoi trovare l'opzione per abilitare e disabilitare la comunicazione seriale, che aziona la variabile enable_uart di cui abbiamo parlato in precedenza.

0816 Headless image 4

Ora hai un Raspberry Pi che può connettersi online e ha una potenza di elaborazione maggiore dei computer che ci hanno portato sulla Luna, oltre a una comunità di entusiasti molto attiva, con migliaia di progetti di esempio. Divertiti a creare qualunque cosa ti passa per la testa e condivi la tua passione con gli altri. Il Raspberry Pi 3 rappresenta un ottimo modo per avvicinare chiunque all'elettronica spendendo poco.

Ultime notizie

Sorry, your filter selection returned no results.

Non perderti le ultime novità sull'elettronica

Abbiamo aggiornato la nostra politica sulla privacy. Si prega di prendere un momento per rivedere questi cambiamenti. Cliccando su Accetto, l'utente accetta la Politica sulla privacy e Condizioni di utilizzo di Arrow Electronics.

Il nostro sito web mette i cookies sul vostro dispositivo per migliorare la vostra esperienza e il nostro sito. Leggete altre informazioni sui cookies che usiamo e su come disabilitarli qui. I cookies e le tecnologie di tracking possono essere usati per scopi commerciali.

Con un click su “Accept”, voi consentite l'inserimento dei cookies sul vostro dispositivo e l'uso da parte nostra di tecnologie di tracking. Per avere altre informazioni e istruzioni su come disabilitare i cookies e le tecnologie di tracking, clickate su “Read More” qui sotto. Mentre l'accettazione dei cookies e delle tecnologie di tracking è volontaria, una loro disabilitazione potrebbe determinare un funzionamento non corretto del sito web, ed alcuni messaggi di allarme potrebbero essere per voi meno importanti.

Noi rispettiamo la vostra privacy. Leggete qui la nostra politica relativa alla privacy