Ben ritrovati.
Quarta ed ultima puntata dedicata al nuovo Rpi.
Come avevamo già anticipato, non tutto era a posto e forse il lancio estivo della nuova Rpi 4 ha preso tutti in contropiede. Ma già a settembre, con il primo aggiornamento, molte cose sono andate a posto, almeno per quanto riguarda il sistema operativo Raspbian. Vediamo queste novità, e un in particolare, il nuovo uso dell’EEPROM (cosa sarà mai….?)
E l’aggiornamento…
Il rilascio della release del sistema operativo Raspbian, datata 25 settembre 2019, ha introdotto ulteriori novità, sia per quanto riguarda le versioni dei pacchetti inclusi nella distribuzione che per quanto riguarda alcune funzionalità “sotto il cofano”, come la gestione del boot da memoria EEPROM e la disponibilità di kernel a 64 bit.
Ma andiamo con ordine.
Per iniziare elenchiamo la lista degli aggiornamenti presenti nella nuova release, della distribuzione, estratta dalle “note” allegate al nuovo rilascio, in data 25 settembre 2019:
1) aggiunta la funzionalità “rpi-eeprom” che permette di aggiornare il contenuto della EEPROM di Raspberry Pi 4 all’ultima versione stabile disponibile. Nel seguito dell’articolo descriviamo le principali funzionalità associate all’utilizzo della EEPROM;
2) Menu “Appearance Settings” – possibilità di duplicare lo stesso desktop su entrambi i monitor ovvero di mostrare icone differenti su ciascuno dei due monitor;
3) La barra dei menu viene mostrata sul monitor 1, se al boot non viene rilevato il monitor 0;
4) Possibilità di reindirizzare l’uscita video verso una periferica HDMI, inserita nel controllo di volume;
5) Possibilità di scambiare le sorgenti audio di ingresso nel controllo di volume;
6) Lo strumento “Audio Settings” è stato modificato per integrarsi maggiormente con il controllo di volume;
7) Nello strumento “Screen Configuration” sono state separate le voci di menu per configurare la risoluzione video ed il “refresh rate”;
8) Aggiunte nuove combinazioni di tasti (scorciatoie) – Ctrl-Alt-End apre il menu di shutdown; Ctrl-Alt-M sposta la barra dei menu da un monitor all’altro;
9) Migliorate le funzionalità di collegamento di periferiche audio in Bluetooth;
10) Modificato l’editor di testi (Mousepad al posto di Leafpad), Aggiornate le versioni di Thonny, Chromium (eliminato Epiphany), VLC, Flash player, Real VNC Viewer, Mathematica, NodeRED, Sonic Pi;
11) Sistemati vari bug e malfunzionamenti della versione precedente;
12) Aggiunto Scratch 3.
Molte di queste modifiche sono importanti, ma, per i nostri scopi, probabilmente, fondamentale risulta il nuovo utilizzo della EEPROM.
EEPROM o non EEPROM
Fin dalla sua uscita, il Raspberry Pi 4 ospita un chip EEPROM (4MBits/512KB) collegato via bus SPI, che contiene la porzione di codice che gestisce la partenza iniziale del sistema, e che sostituisce inoltre il programma “bootcode.bin” che inizialmente era allocato all’interno della partizione “boot” sulla SDCard. Se si analizza il contenuto della partizione “boot” della SDCard, si può notare un file “bootcode.bin”, utilizzato per il boot dei modelli precedenti di Raspberry Pi. Nel caso di Raspberry Pi 4, questo file viene semplicemente ignorato ed al suo posto viene utilizzato il codice presente in EEPROM. Ma perché mai utilizzare il codice su EEPROM al posto della procedura “classica”?
Per più motivi.
Innanzitutto, perché, con l’utilizzo della EEPROM, viene superata la necessità di modificare permanentemente la modalità di boot nei bit OTP. In Raspberry Pi 3, questa operazione era necessaria per configurare il boot da periferica USB o da network. In Raspberry Pi 4 , invece, non esistono bit OTP modificabili dall’utilizzatore. Il supporto per le modalità di boot da device USB e da network verranno rilasciate nel prossimo futuro. Il piano sembrerebbe essere di rilasciare per prima la modalità di boot da network e solo successivamente anche la modalità di boot da device USB.
Inoltre, nella nuova Rpi 4, le periferiche USB fanno capo al bus PCIe e il driver Ethernet Gigabit è completamente diverso da quello dei modelli precedenti. Per questi motivi, non è stato considerato opportuno “congelare” anche questi componenti nella ROM del SoC. Una EEPROM di ridotte dimensioni permette inoltre di correggere errori ed aggiungere funzionalità in tempi successivi alla commercializzazione.
Infine, il processo di boot della scheda Raspberry Pi 4 e quello di inizializzazione della memoria SDRAM è decisamente più complesso rispetto ai processi di boot dei modelli precedenti. Per questo motivo si è preferito non “congelare” il codice di inizializzazione del sistema all’interno della ROM nei SoC, ma in un device dove poter essere aggiornato o sostituito.
Problemi al Boot?
Nel caso capitasse che Raspberry Pi 4 non esegua il boot correttamente, si può sempre attivare una semplice procedura di diagnosi. Per verificare se il bootloader in EEPROM funziona correttamente, si può seguire questa procedura:
1) spegnere il Raspberry Pi 4,
2) scollegare tutte le periferiche connesse ed estrarre la SD Card.
3) Ridare alimentazione al Raspberry Pi 4. Se il LED verde lampeggia con una sequenza ripetitiva, significa che il bootloader in EEPROM funziona correttamente e il motivo del lampeggio risiede nella mancanza del file start*.elf che non viene ovviamente trovato, dato che la SD Card è stata rimossa. In caso il LED verde non si accendesse allora la causa è da ricercare nel bootloader sulla EEPROM che deve essere ripristinato con il file “recovery.bin”.
Il file “recovery.bin” si trova nella sezione ‘Downloads” del sito www.raspberrypi.org.
Una volta scaricato il file, questo va scompattato in una cartella qualsiasi e copiato su una SD Card con formattazione FAT che va inserita nello slot del Raspberry Pi 4. Poi, data tensione, occorre attendere finché il LED verde non lampeggia velocemente. Quindi si deve spegnere la single board, togliere la SD Card ed inserire quella contenente il sistema operativo e infine ridare tensione.
Bene, e stavolta è davvero tutto.
Prometto, la prossima volta si fa sul serio: iniziamo ad usare l’Rpi per un progetto: un NAS domestico a basso costo.
Alla prossima…