Dopo aver acquistato un Raspberry Pi Zero, mi sono chiesto come poter effettuare il primo accesso e le prime configurazioni, non disponendo in quel momento di un monitor HDMI e di tastiera e mouse USB.
Fortunatamente questo modello di Raspberry supporta la modalità USB OTG (On The Go): può “trasformarsi” in un dispositivo USB slave come un supporto di memorizzazione, una periferica HID o addirittura una webcam. Oggi vedremo come configurare un Raspberry Pi Zero in modo che venga riconosciuto dal PC come una scheda di rete: potremo quindi collegarci ad esso via SSH tramite un semplice collegamento USB.
Ancora più importante, potremo effettuare tutti i passi necessari alla configurazione agendo direttamente sulla SD card, senza necessità di collegare il Raspberry a periferiche esterne (monitor, tastiera…).
Configurazione
Per prima cosa installiamo (flash) una versione recente di Raspbian su una scheda SD. Avendo a disposizione un PC con S.O. Windows, utilizzo Win32 Disk Imager:
Al termine del processo, accediamo al contenuto della scheda SD e apriamo con un editor di testo il file config.txt:
Aggiungiamo alla fine del file la riga dtoverlay=dwc2 (se vogliamo possiamo aggiungere anche un commento come nello screenshot sottostante):
Apriamo ora il file cmdline.txt. Cerchiamo la parola rootwait e subito dopo aggiungiamo modules-load=dwc2,g_ether. Fate particolare attenzione agli spazi bianchi, come indicato nello screenshot:
Creiamo infine un file vuoto, chiamato ssh (attenzione, senza estensione!) per abilitare il server sshd:
La configurazione è terminata: inseriamo ora la scheda SD nel nostro Raspberry, accendiamolo e attendiamo qualche istante fino al termine del processo di boot. Se ora colleghiamo il Raspberry al PC, questo dovrebbe essere riconosciuto come RNDIS/Ethernet Gadget.
Installazione drivers
E’ possibile che su alcuni PC la periferica non venga riconosciuta automaticamente:
In questo caso dobbiamo aprire Gestione Dispositivi dal pannello di controllo:
Troveremo la periferica sotto altri dispositivi, facciamo doppio click:
Spostiamoci nel tab Driver, quindi clicchiamo su Aggiorna driver:
Selezioniamo Sfoglia il mio computer…:
Quindi Scegli da una lista…:
Infine selezioniamo come produttore Microsoft Corporation e finalmente il driver corretto:
Collegamento
Grazie al driver RNDIS, possiamo collegarci al nostro Raspberry Pi Zero come se fossimo collegati in rete. Utilizziamo quindi un client SSH (io ho scelto PuTTY) e inseriamo raspberrypi.local come indirizzo di destinazione:
Se il collegamento non funziona per un errore di host sconosciuto, significa che il PC che state utilizzando non supporta il servizio mDNS (Multicast DNS). Se state utilizzando il S.O. Windows, potete installare il servizio Bonjour di Apple, mentre per Linux è disponibile il demone Avahi.
Condivisione Internet
Tramite il collegamento appena creato, possiamo anche condividere la connessione Internet del nostro PC.
Accediamo all’elenco delle connessioni di rete del computer, facciamo click con il tasto destro sulla connessione principale (quella che ci consente l’accesso ad Internet) e selezioniamo Proprietà. Spostiamoci nel tab Condivisione, quindi attiviamo la voce Consenti ad altri utenti di collegarsi…. Nel menu a tendina, dobbiamo selezionare la connessione di rete stabilita con il nostro Raspberry Pi Zero:
Possiamo ora verificare che anche da Raspberry siano raggiungibili indirizzi Internet:
This is great! I also needed to configure my Pi Zero W without a monitor, keyboard, etc. but I solved it a slightly different way: https://davidgs.com/2017/accessing-your-raspberry-pi-zero-w/
Hi David, nice solution if your Raspberry has wifi connectivity! Thanks for sharing