Dispositivi integrati: rimani costantemente informato grazie agli aggiornamenti FOTA

L'aggiornamento Firmware Over the Air (aggiornamento FOTA) è una delle funzioni più importanti per la stragrande maggioranza dei dispositivi moderni integrati che vengono utilizzati, ad esempio, dai produttori nel settore automobilistico, dell'elettronica di consumo e in quello sanitario. Da un lato, la funzione di aggiornamento FOTA permette ai produttori di correggere i bug nei componenti software del sistema esistente, dall'altro consente l'installazione degli aggiornamenti da remoto. Ciò significa che i dispositivi rimangono sempre aggiornati, anche quando le nuove funzionalità e caratteristiche vengono aggiunte solo dopo l'acquisto del dispositivo.

Modifica di un sistema durante l'esecuzione

Nel settore automobilistico, uno dei principali requisiti di un dispositivo, in qualità di componente, consisteva nella possibilità di installare un aggiornamento durante il tempo di esecuzione di una piattaforma Linux e di distribuirlo nelle applicazioni del bootloader secondario, del kernel Linux e user land. Nel meccanismo di aggiornamento era compreso anche un dispositivo di controllo esterno per il monitoraggio dell'avvio del kernel aggiornato, al fine di evitare potenziali tempi d'inattività. Inoltre, era importante fornire un processo di aggiornamento non supervisionato dotato di funzione di ripristino automatico in caso di errore o interruzione dell'aggiornamento.

Tempi d'inattività ridotti e funzione di rollback

Sono stati implementati tre set di partizioni NAND flash per ridurre al minimo i tempi d'inattività del sistema durante l'aggiornamento e fornire una funzione di rollback automatico. Ciascun set contiene una partizione per il kernel Linux e una per il file system di root. Quando il sistema è in esecuzione sul set di partizioni A, le nuove immagini del kernel e del file system di root vengono installate nel set di partizioni B. Una volta completata la procedura di flashing, l'intero sistema si riavvia sul set di partizioni B. Durante il primo avvio, viene eseguito un controllo delle funzionalità. In caso di errore nel controllo, il sistema si riavvia nuovamente sul set di partizioni A.

Se non è possibile eseguire l'avvio dal set di partizioni B, e nemmeno eseguire il rollback al set di partizioni A, viene usato un terzo set di partizioni F, in cui F sta per "Factory Firmware" (ossia firmware di fabbrica). Questo set di partizioni non può essere modificato per tutta la durata del ciclo di vita del dispositivo e pertanto contiene un firmware che è stato verificato e installato durante la produzione in fabbrica. Nonostante il firmware nella partizione F possa essere considerato obsoleto, esso garantisce la disponibilità per lo meno delle funzionalità di sistema minime fino all'arrivo di un tecnico dell'assistenza che ritirerà il dispositivo guasto per sottoporlo a manutenzione.

Tre set di partizioni

Massima tolleranza ai guasti e resilienza

Anche nel caso in cui l'aggiornamento del firmware non possa essere effettuato in maniera completa, sono state adottate delle precauzioni, ossia un dispositivo di controllo esterno usato per ripristinare il dispositivo. Durante il riavvio, il bootloader riconosce il motivo per cui è stato eseguito il riavvio del sistema: tramite il dispositivo di controllo, per via di un'interruzione di corrente o perché il sistema ha ricevuto una richiesta di riavvio una volta completato l'aggiornamento. Il bootloader decide quindi il set di partizioni da selezionare per l'avvio corrente, tenendo in considerazione la causa alla base del riavvio. Ciò è possibile usando una matrice di riavvio, nella quale viene mantenuto lo stesso codice e viene modificata solo la matrice di riavvio per fornire un percorso di riavvio aggiuntivo o bloccare quello esistente. Tutto ciò rende il sistema una soluzione estremamente flessibile ed esportabile allo stesso tempo.

Esistono già diverse implementazioni degli aggiornamenti FOTA, basate su due set di partizioni. Tuttavia, Concept Reply ha deciso di sviluppare la propria soluzione con tre set di partizioni per rendere i sistemi dei clienti più tolleranti ai guasti e più robusti rispetto ad altre soluzioni simili. Tutto ciò rende il concetto interessante anche per i dispositivi nei quali l'affidabilità rappresenta un criterio decisivo.