Firmware Over-the-Air (FOTA) in Narrowband IoT (Part 2/2 - Praxis)

Christian Pereira

Christian Pereira – Chief Operating Officer

Im Internet der Dinge „IoT“ ist die Möglichkeit eines nachträglichen Software-Updates von IoT-Geräten zwingend vorzusehen. Beispielsweise um Fehler nachträglich zu beheben, neue Funktionalitäten auszurollen und nicht zuletzt aus Gründen der Cybersicherheit. Dieser Artikel behandelt die Besonderheiten von Firmware Over-the-Air (FOTA) im Mobilfunkdienst Narrowband IoT (NB-IoT).

Symbolisierung von FOTA: Blauer Globus mit einer Visualisierung der Konnektivität In Teil 1 dieses Artikels haben wir uns den beteiligten Systemen und auch den Herausforderungen von FOTA bei NB-IoT prinzipiell gewidmet. In diesem Teil gehen wir darauf ein, was in der Praxis bei FOTA zu beachten ist und welche Unterstützung grandcentrix für FOTA im NB-IoT bietet.

Was ist beim FOTA zu beachten?

FOTA hat viele Varianten. Im einfachsten Fall wird genau eine Datei mit einer neuen Firmwareversion auf genau ein Gerät gespielt. In der Praxis findet man bei FOTA allerdings oft ein individuelles und umfassendes Anforderungsspektrum vor. In der Regel geht es darum, ganze Flotten von Geräten mit der neuesten Version der Software auszustatten. - -

Manchmal sollen aber nur definierte Teile der Flotte mit einer neuen Software ausgerüstet werden. Das ist unter anderem relevant, wenn unterschiedliche Gerätehardware im Feld genutzt wird und die Firmware dann nur für einen bestimmten Gerätetyp ausgerollt werden soll.

Manchmal möchte man auch bestimmten Kunden oder Kundengruppen spezielle Firmwareversionen mit besonders vielen oder besonders wenigen Funktionen zur Verfügung stellen. Oder geht es darum, neu erkannte Sicherheitslücken bei bestimmten Hardware-/Firmware-Kombinationen durch ein Over-the-Air-Update zu schließen.

In einigen Fällen muss geprüft werden, welche Version der Firmware auf dem Gerät ist, denn eine neue Firmware kann nur bei definierten, bereits installierten Softwareständen ausgerollt werden. Für den Fall, dass die Firmware des Geräts keine passende Version hat, müssen gegebenenfalls Zwischenupdates ausgeführt werden, sodass dann die Bedingung für eine erfolgreiche Installation der neuesten Firmware erfüllt ist. Und nicht zuletzt ist herausfordernd, dass NB-IoT Geräte oft energiesparend eingesetzt werden. Befinden sich die Geräte in den NB-IoT Energiesparmodi wie PSM oder eDRX, so sind diese Geräte nicht jederzeit erreichbar. In diesen Modi sind die Geräte „schlafend“ und können daher nicht netzseitig angesprochen werden. Für solche Fälle muss überwacht werden, wann die Geräte aufwachen, denn nur dann gibt es entsprechende Zeitfenster, in denen die Geräte auch angesprochen werden können.

Wie wird die neue Version gestartet?

Sobald die Datei erfolgreich übertragen wurde, wird die neue Firmware sofort installiert. Dafür wird die neu heruntergeladene Firmware in eine separate, dafür vorgesehene Partition auf dem Gerät geschrieben. Die ursprüngliche Firmwareversion bleibt unangetastet. Nach dem Neustart erkennt das Gerät, dass eine neue Firmware vorliegt und versucht, von der entsprechenden Partition zu booten. Wenn dies gelingt, dann nutzt das Gerät die neue Firmware und die alte Firmware kann gelöscht oder überschrieben werden. Sollte der Reboot mit der neuen Firmware fehlschlagen (Signaturprüfung fehlgeschlagen, defektes Image…), bootet der Bootloader automatisch wieder von der vorherigen Firmwareversion. So wird verhindert, dass ein Gerät über Probleme beim FOTA im Feld unbenutzbar wird.

Was macht das Flotten- oder Device-Management?

Mit einem Flotten- oder Device-Management sind Gerätestatus und Versionierung zu verwalten. Hierdurch kann sichergestellt werden, dass die richtigen Geräte zum richtigen Zeitpunkt mit der richtigen Software versorgt werden. Wie oben angesprochen muss eine entsprechende Geräteverwaltung (im Backend) die Notwendigkeit von Firmwareupdates für die definierten Geräte feststellen. Danach, deren Status bezüglich der Erreichbarkeit überwachen, den FOTA Prozess starten und den erfolgreichen Abschluss registrieren.

Die oben beschriebenen Anforderungen zur Versionierung und Flottenmanagement werden in der Regel über **spezialisierte FOTA Systeme wie Eclipse Hawkbit im Zusammenspiel mit netzseitiger FOTA-Prozessunterstützung (z. B. über LwM2M) adressiert.

Welche applikationsspezifischen Anforderungen sind bei Firmware Over-the-Air relevant?

Darüber hinaus gibt es in der Praxis zusätzliche Anforderungen, die vom Einsatzbereich abhängig sind. Gängige Anforderungen zum Beispiel aus dem Bereich Automotive/E-Bikes sind, dass die Updates zwar beliebig übertragen werden, können, aber nur dann installiert werden dürfen, wenn die Geräte nicht in Betrieb sind. Einerseits muss dies funktional sichergestellt sein, da die Geräte, solange mit der bestehenden Firmware booten, bis die neue Firmware vollständig installiert ist. Andererseits muss auch eine entsprechende Signalisierung an den Benutzer sichergestellt sein.

Hier ist es üblich, einen laufenden Firmware-Updateprozess entweder am Gerät (Diode), Screen oder in einer App anzuzeigen. Danach wird die Durchführung des Updates vom Benutzer ausgelöst.

Wie unterstützt grandcentrix FOTA bei NB-IoT?

grandcentrix bietet einen in das Vodafone Netz integrierten Netzdienst „NB-IoT+“ an. Dieser unterstützt mit dem Plattform-as-a-Service (PaaS) „Cellular Hub“ neben dem SIM-Karten-Management, der Protokollkonvertierung der NB-IoT-Nutzdaten auf MQTT insbesondere auch den FOTA-Prozess.

Aufgrund der sehr unterschiedlichen Anforderungen werden hier ausschließlich die zentralen Funktionen des Softwareupdates fokussiert unterstützt. Mit dem aktuellen Funktionsumfang ist es möglich, einem Cellular Hub Gerät, welches durch seine Mobilfunknummer identifiziert wird („UCCID“) eine Firmware-Datei zuzuweisen und einen Download auszulösen. Dieser Update-Prozess wird derzeit manuell über einen Customer Service Prozess auf einzelne Geräte individuell angewendet. Dabei wird die zur Verfügung gestellte Firmwareversion ohne weitere Prüfung auf das Gerät übertragen.

Der FOTA-Prozess wird über die Cellular Hub Management Console (hubctl) ausgelöst. grandcentrix Mitarbeiter mit entsprechenden Berechtigungen (Kundenservice, CIOT-Team, Integrationsingenieure, die an einem Kundenprojekt arbeiten) sind in der Lage, einen FOTA-Prozess zu initiieren. Hierfür existiert eine Dokumentation über die Durchführung des FOTA-Prozesses.

Alternativ kann der Übertragungsprozess auch vom Backend des Kunden ausgelöst werden. Das Backend des Kunden wählt dann für den FOTA Prozess aus, welche Datei zu welchem Zeitpunkt auf welches Gerät übertragen werden soll. Dies ist notwendig, um komplexere FOTA Prozesse zu unterstützen. Beispielsweise, wenn die Geräte nicht jederzeit online sind oder mit unterschiedlichen Hard- und Softwareversionen im Feld gearbeitet wird.

Was sind die geplanten Erweiterungen für NB-IoT FOTA von grandcentrix ?

Dateiverwaltung

Es ist beabsichtigt, ein dediziertes Dateimanagement für unterschiedliche Dateien einzurichten. Diese Funktion ermöglicht vor allem, mit verschiedenen Firmware-Dateien umzugehen und ermöglicht dem Kunden-Backend, die vollständige Kontrolle über den FOTA-Prozess via API zu übernehmen.

Maschine-zu-Maschine-API

Das Dateimanagement soll externen (Web-)Diensten über eine offene API zur Verfügung gestellt werden. Dies wird es Kundenprojekten ermöglichen, FOTA-Funktionalität in ihre Kundenlösung zu integrieren. Mit der API wird es auch möglich sein, den FOTA-Prozess zu skripten, um z.B. einen stufenweisen Rollout durchzuführen oder eine ganze Geräteflotte auf einmal zu aktualisieren.

Perspektive Flottenmanagement

Aufgrund der unterschiedlichen Anforderungen wird die Flottenverwaltung auch perspektivisch im Aufgabenbereich der Kunden sein. Dafür wird die von der Dateiverwaltung bereitgestellte CoAP-URL der Firmware-Datei an die relevanten Geräte weitergeleitet und die Handhabung des LwM2M-Firmware-Update-Status selbst vorgenommen werden. Damit dies erfolgreich gelingt, werden die relevanten Infrastruktur- und Übertragungsprozesse angeboten. Des Weiteren werden dokumentierte Beispiele für FOTA Prozesse von dem Cellular IoT Team von grandcentrix zur Verfügung gestellt.