Raspberry Pi: come tornare indietro in caso di aggiornamento problematico

| |

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

Backup

Come da tradizione del blog, appoggio delicatamente qui il solito messaggio promozional-farmaceutico per evitare brutti scherzi o lamentele postume:

Prima di partire, il solito consiglio: occhio sempre a quello che tocchi e che rimuovi, effettua dei backup del tuo sistema per sicurezza. Potrai così tornare indietro in caso di problemi.

Se non sai come effettuare il backup e il ripristino del tuo RPi, ne ho parlato in questo articolo: raspiBackup: backup senza la necessità di togliere la scheda SD (in alternativa, c'è sempre RPi: backup della scheda SD su Windows e macOS).

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

Correzioni, suggerimenti? Lascia un commento nell'apposita area qui di seguito o contattami privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! ☕ :-)

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! :-)

Condividi l'articolo con i tuoi contatti:
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Commenti
Inline Feedbacks
View all comments