Una manciata di giorni fa ho deciso di fare un aggiornamento del Raspberry Pi (di Raspbian in effetti, l’ultimo sopravvissuto in mezzo ai vari DietPi) per portarlo a una versione più recente del kernel Linux e dei vari moduli necessari.
Oggi la domanda che mi pongo è “chi me l’ha fatto fare?“. Questo perché, dopo aver portato il tutto alla versione 5.15.36-v7+, ho iniziato a notare alcuni problemi nel rilevamento dei chip integrati di WiFi e Bluetooth (improvvisamente non più utilizzabili nonostante i giusti driver a bordo macchina, anche reinstallati per ulteriore sicurezza) e – successivamente – anche un non più corretto funzionamento di Tailscale (di cui ancora devo parlare, lo so).
Considerato che questo RPi non è esposto direttamente in rete Internet ed è quello che si occupa di portare a termine i controlli di presenza in casa per tado°, Arlo e le altre cose relative all’IoT, così come la preparazione delle liste filtri mensili di X Files, ho scelto di tornare indietro nell’attesa di preparare una nuova microSD con DietPi e organizzare la migrazione del Raspberry.
Prima di partire
L’operazione è abbastanza banale una volta capito il meccanismo. Il software rpi-update
che si trova a bordo di Raspbian va a richiedere i file dei firmware direttamente a github.com/raspberrypi/rpi-firmware. Sullo stesso repository è possibile andare indietro nel tempo (tra i vari commit) e identificare i “bump” relativi al passaggio tra versioni disponibili del kernel e dei suoi moduli.
Puntando quindi rpi-update
a un commit preciso, si chiederà al software di passare al firmware desiderato. Collegati via SSH al tuo RPi e – basato su quanto appena detto – lancia questo comando:
sudo rpi-update 866751bfd023e72bd96a8225cf567e03c334ecc4
Ciò ti permetterà di tornare alla versione 4.19 del kernel, portando in dote anche librerie e tool relativi:
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom *** Performing self-update *** Relaunching after update *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom ############################################################# WARNING: 'rpi-update' updates to pre-releases of the linux kernel tree and Videocore firmware. 'rpi-update' should only be used if there is a specific reason to do so - for example, a request by a Raspberry Pi engineer. DO NOT use 'rpi-update' as part of a regular update process. ############################################################## Would you like to proceed? (y/N) *** Downloading specific firmware revision (this will take a few minutes) % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 114M 0 114M 0 0 646k 0 --:--:-- 0:03:01 --:--:-- 1909k *** Updating firmware *** Updating kernel modules *** depmod 4.19.118-v7+ *** depmod 4.19.118+ *** Updating VideoCore libraries *** Using HardFP libraries *** Updating SDK *** Running ldconfig *** Storing current firmware revision *** Deleting downloaded files *** Syncing changes to disk *** If no errors appeared, your firmware was successfully updated to 866751bfd023e72bd96a8225cf567e03c334ecc4 *** A reboot is needed to activate the new firmware
L’operazione durerà qualche minuto, porta pazienza e non interrompere il processo a meno che tu non sia realmente costretto. Al termine ti verrà richiesto di effettuare un riavvio del Raspberry Pi (sudo reboot
).
Quando nuovamente disponibile (tieni il RPi sotto ping), collegati via SSH e controlla che tutto funzioni nuovamente. Con me il rollback ha funzionato alla grande e mi ha permesso di tornare a una versione del sistema completamente funzionante.
#StaySafe
Ringraziamenti: rigacci.org/wiki/doku.php/doc/appunti/hardware/raspberrypi_kernel_upgrade_downgrade
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)