Come si può eseguire il boot da USB per Raspberry Pi? Non esiste una procedura unica e dipende anche da quale scheda vuoi utilizzare: scopriamolo assieme in questo articolo.
Che tu voglia eseguire il boot tramite un hard disk, oppure un SSD, insomma stai cercando di eseguire un sistema operativo per Raspberry Pi tramite le sue porte USB anziché la classica SD: la soluzione c'è, ma siccome non è la stessa per tutte le schede Raspberry Pi, è giusto suddividere in base ai casi e anche fare una precisazione doverosa.
Ma prima di cominciare, permettimi di presentarmi: sono Lorenzo Neri: chief education officer di Elettronica Open Source, mi occupo di realizzare contenuti educativi per aiutare persone come te a comprendere meglio questo mondo!
Il boot da USB, quindi tramite le memorie di massa a nostra disposizione, è disponibile SOLO per Raspberry Pi 2B v1.2, 3A+, 3B, 3B+, 4B, 400 e per finire i Compute Module versione 3, 3+ e 4.
Raspberry Pi 4B e Raspberry Pi 400: il boot da USB per loro due
Raspberry Pi 400, il computer formato tastiera e il Raspberry Pi 4B, per intenderci quello offerto con RAM fino ad 8GB, supportano il boot da USB di default.
Che cosa significa questo? Che abbiamo a nostra disposizione un bootloader pronto all'uso: dobbiamo solo decidere come sfruttarlo.
Raspberry Pi Imager per eseguire il boot da USB e aggiornare il bootloader
Questa è la procedura consigliata in casa Raspberry Pi: i passi da seguire sono questi.
- Scarica Raspberry Pi Imager
- Seleziona una SD card. Attenzione: nella procedura sarà sovrascritta!
- Lancia Raspberry Pi Imager
- Seleziona la voce "Misc utility images" nella sezione "Operating System"
- Seleziona la voce "Bootloader"
- Seleziona "USB"
- Seleziona l'hard disk, la chiavetta o l'SSD in cui hai intenzione di installare il sistema operativo e procedi con "Write"
Raspberry Pi Images non è l'unica opzione che abbiamo, vediamo la seconda.
Usare "raspi-config" direttamente da Raspberry Pi OS
Questa è la seconda opzione che abbiamo per eseguire il boot da USB per Raspberry Pi 4B e Raspberry Pi 400 e modificare la modalità di boot, quindi la boot-mode:
- Apri una finestra terminale
- Esegui il comando "sudo raspi-config"
- Nel menu seleziona la voce "Advanced Options"
- Procedi selezionando "Boot Order"
- Seleziona l'opzione "USB"
- Riavvia Raspberry Pi
Come "flashare" il Compute Module 4
Il Compute Module versione 4, devi "flasharlo": in parole molto semplici devi sovrascrivere la memoria presente su di esso: qui trovi dettagli aggiuntivi su come procedere.
Come eseguire il boot USB per Raspberry Pi 3B+
Raspberry Pi 3B+, il "nonno" diretto della serie 4, rende le cose più semplici.
Il boot da USB per questo modello è fornito, come si suol dire, in "out of the box": significa che è già integrato e pronto all'uso e non sono richieste modifiche da fare al bootloader.
Vediamo cosa dobbiamo fare per gli altri modelli.
Cosa fare per il boot dei Raspberry Pi 2B v1.2, 3A+, 3B e i Compute Module 3 e 3+
Per questi modelli di Raspberry Pi dovrai eseguire un paio di step diversi.
Il primo fra questi, è abilitare la host boot mode USB di cui ti lascio i riferimenti a distanza di un click qui.
Questo step ti permette di eseguire il boot USB tramite memorie di massa ma anche il network boot!
... Lo dico per completezza: il network boot non è possibile eseguirlo per Raspberry Pi 3A+ e la risposta è intrinseca nel "come è fatto".
Tutto questo però non basta: Raspberry Pi, per abilitare tutto ciò, dev'essere "bootato" quindi avviato da una scheda SD con un'opzione speciale.
Questa opzione speciale ti permette di impostare la USB host boot mode all'interno della memoria OTP.
È mio compito avvisarti che la memoria OTP di Raspberry Pi, una volta modificata, non può più essere toccata. I cambiamenti che farai saranno permanenti.
Per poterlo fare, dovrai eseguire a terminale la seguente riga di comandi:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
Questo aggiungerà semplicemente "program_usb_botto_mode=1" alla fine del file "/boot/config.txt".
Il prossimo step consiste nel riavviare Raspberry Pi tramite "sudo reboot".
Per verificare se hai programmato correttamente l'OTP per eseguire il boot da USB, lancia il seguente comando da terminale:
vcgencmd otp_dump | grep 17:
Verifica che nell'output sia presente la stringa "0x3020000a": se non ci fosse, significa che l'OTP non è stata programmata correttamente e dovrai ripetere la procedura.
Se non funziona nemmeno al secondo tentativo è probabile che c'è un problema hardware legato alla tua scheda.
Un appunto importante per questa procedura
Naturalmente potrai di nuovo usare la scheda SD se volessi eseguire il boot da essa!
Per poterlo fare ti è sufficiente rimuovere ciò che hai scritto prima dentro il file "/boot/config.txt" e riavviare Raspberry Pi.
Ho fatto tutto e adesso?
Adesso si tratta semplicemente di inserire la memoria di massa che hai intenzione di usare come boot da USB nella tua scheda Raspberry Pi e via!
Ovviamente, accertati che sia alimentato a sufficienza Raspberry: certi hard disk esterni richiedono un'alimentazione aggiuntiva e se il tuo alimentatore è piccolo, il problema all'avvio potrebbe essere legato a questo!