Inhaltsverzeichnisliste

Artikel von: Mohamed BELOUARGA

Das Hinzufügen einer Funktion, das Beheben eines Fehlers oder das Korrigieren einer Sicherheitsverletzung sind Teil des Lebenszyklus einer Software, einer Bibliothek oder einer Firmware. Für Architekten und Entwickler ist die Durchführung dieser Aufgaben jedoch immer noch mit technischen Nachteilen und einer Menge möglicher unerwünschter Ergebnisse (mehr Bugs, Rollbacks usw.) verbunden

Bisher schicken die Industrie und insbesondere die Embedded-System-Branche ihre Techniker weiterhin vor Ort, um Updates an ihren Produkten durchzuführen. Diese Verfahren sind zeitaufwändig, erfordern eine aufwändige Logistik, sind teuer und werden daher oft übersehen, was bei Kunden und Benutzern zu großer Verachtung führt.

Remote-Updates, auch Over The Air (OTA) -Updates genannt, sind besser für die zukünftigen Bedürfnisse der meisten Industrieunternehmen, Hersteller und ihrer zukünftigen Produkte geeignet.

In Embedded Linux sind OTA-Updates verfügbar

In diesem Artikel werden Remote-Updates für eingebettete Linux-Systeme behandelt.

OTA-Updates ermöglichen Softwareänderungen an einem System, ohne physischen Kontakt mit dem System herzustellen. Diese Updates können mit mehreren Open-Source-Lösungen durchgeführt werden, ihre Implementierung ist jedoch nicht immer einfach.

Da sich die Hersteller die Aktualisierungsoptionen ansehen, ziehen sie als Erstes eine paketweise Aktualisierung in Betracht. Diese Lösung ist aus mehreren Gründen für eingebettete Systeme am wenigsten geeignet:

  • Wenn das Update nicht wie geplant verläuft, können Sie keinen Rollback-Vorgang durchführen.
  • Jede Komponente muss entsprechend ihren Abhängigkeiten verwaltet werden
  • Versionskonflikte: In einem Desktop-System können wir es uns leisten, zwei Versionen derselben Bibliothek zu haben, aber das ist in einem System mit eingeschränktem Speicher nicht der Fall.
  • Die Validierung eines Updates ist eine sehr herausfordernde Aufgabe. Mehr noch, je mehr Updates vorgenommen werden, desto komplizierter und teurer wird die Aktualisierung. Es ist notwendig, den Übergang von V1 zu V2, von V2 zu V3, aber auch von V1 zu V3 usw. zu planen.

 

👉 Zu den Beispielen gehören Ausbessern, Ostree, RAUC...

 

Dennoch gibt es andere Lösungen, mit denen all diese Nachteile vermieden werden können, wie SW-Aktualisierung, Mender, Ostree, RAUCusw.

Jede Lösung hat ihre eigene Art, mit Updates umzugehen. Wir werden nur darauf eingehen Stefano Babics SWUpdate in diesem Artikel.

#Swupdate ist eher ein Framework als andere Komplettlösungen

Im Gegensatz zur Komplettlösung Mender, die mit ihren Anforderungen, Einschränkungen und Einschränkungen einhergeht, kann SWUpdate eine benutzerdefinierte Version von Mender erstellen, in der Funktionen hinzugefügt oder entfernt werden. Erstellung einer Aktualisierungslösung, die perfekt auf die Bedürfnisse des Kunden zugeschnitten ist.

Der Nachteil ist, dass die Aktualisierungsdatei beträchtlich sein kann, was die Netzwerkpreise erhöht. Dieses Problem kann jedoch auch vermieden werden, indem beim Aktualisieren komprimierte Rootfs verwendet werden oder indem das Delta-Update verwendet wird. Wir werden das später entwickeln.

Festlegung einer Aktualisierungsstrategie

Vor der Implementierung einer Aktualisierungslösung muss eine Aktualisierungsstrategie definiert werden. Diese Strategie entspricht der Lebensdauer eines Produkts und ist sehr schwer zu ändern.

Einige Beispiele für Aktualisierungsstrategien sind:

Doppelter Kopiermodus

  • Doppelter Kopiermodus besteht aus duplizierenden Elementen, was bedeutet, dass zwei Rootfs, zwei Kernel, zwei DT (Gerätebaum), zwei Bootloader-Umgebungen usw. vorhanden sind.

Das Aktualisierungsverfahren läuft wie folgt ab. Während das Produkt mit rootfs1 und kernel1 arbeitet, aktualisiert swupdate rootfs2 oder kernel2 und startet dann auf rootfs2 und kernel2 neu.

Wenn das Update erfolgreich ist, bleibt das Produkt unverändert. Aber wenn das nicht der Fall ist (rootfs2 ist beschädigt oder Kernel2 gerät in Panik), führt das U-Boot eine Rollback-Operation zurück zu rootfs1 und Kernel1 aus.

SWUpdate linux embedded system update double copy strategy

Eine einzige Rettungsstrategie

  • Einmalige Rettung Strategie verbraucht weniger Speicherplatz als der Doppelkopiermodus, da er mit einem Rescue-Rootfs und einem Kernel arbeitet.

Der Rescue-Kernel ist auf die notwendigen Treiber beschränkt, und das Rescue-Rootfs ist auf die notwendigen Bibliotheken und swupdate beschränkt. Die anderen Rootfs und der Kernel sind die Produktionsfirmware.

Wenn ein Update bereit ist, wird das Image auf dem Rescue-Image neu gestartet und vom Rescue-Image aus werden Rootfs und Kernel aktualisiert. Nach der Aktualisierung wird das Image auf dem Produktionskernel und auf dem Rootfs neu gestartet.

In jedem Fall dienen der Rescue-Kernel und das Rootfs als Backups, falls das Update fehlschlägt.

SWUpdate linux embedded systems single rescue update strategy

Wie bereits erwähnt, ist SWUpdate ein Framework, mit dem alles möglich ist. Die einzigen Einschränkungen sind die Vorstellungskraft seiner Benutzer.

Bootloader-Schnittstelle

SwUpdate muss mit dem Bootloader funktionieren, was bedeutet, dass, wenn das Gerät oder Produkt das Rootfs ändern muss, der Bootloader die Befehlszeile ändert, die der Kernel empfängt. Das macht diese Verbindung für das Aktualisierungssystem unverzichtbar.

Nachdem wir nun die Aktualisierungsstrategien und die Bootloader-Schnittstelle gesehen haben, wollen wir uns die verschiedenen Tools ansehen, die SWUpdate zum Senden eines aktuellen Updates bereitstellt.

Mangoose-Modus

Die Oberfläche könnte so aussehen:

SWUpdate mangoose mode screenshot

SWUpdate im Mangoose-Modus beinhaltet einen eingebetteten Webserver, der es uns ermöglicht, die Aktualisierungsdatei über eine Weboberfläche zu senden.

Sobald swUpdate korrekt konfiguriert ist, ermöglicht diese Schnittstelle dem Benutzer, eine Aktualisierungsdatei (.swu) an das Ziel zu senden. Die Oberfläche zeigt auch Einblicke wie den Aktualisierungsstatus und die Protokolle.

Surricata-Modus

SWUpdate im Surricata-Modus fragt einen Remote-Server nach Updates, ruft sie ab, installiert sie und meldet dann die Ergebnisse.

Der Surricata-Modus wird hauptsächlich für große Kartenmengen verwendet und zentralisiert und überwacht die Steuerung des Aktualisierungssystems. Von der Serverseite aus können wir Eclipse HawkBit verwenden, um den Status eines Kartenparks zu überwachen.

Derzeit wird nur Eclipse HawkBit unterstützt, aber dank des Open-Source-Charakters dieser Lösungen kann ein maßgeschneiderter Server hinzugefügt werden, der als Workaround dient.

Eclipse hawkBit used to monitor updates through SWUpdate

Machen Sie SWUpdate zu einem integralen Bestandteil Ihrer Geschäftsprozesse

SWUpdate, das wie ein Framework agiert, bietet Benutzern viele weitere Funktionen und Tools. Zum Beispiel in der Situation, in der ein Benutzer ein .swu-Update mit einer anderen Anwendung eingeben möchte. Die Datei kann mit dem Tool swUpdate-Client an den SWUpdate-Daemon gesendet werden. Darüber hinaus kann dieselbe Anwendung mit SWUpdate-Progress die Fortschrittsdaten der Aktualisierung abrufen, was eine externe Überwachung ermöglicht.

Es sind viele andere Funktionen verfügbar, und alle sind sehr gut dokumentiert.

Handler

Wenn Sie spezielle Anforderungen haben, z. B. wie Sie ein bestimmtes Update installieren oder einen mit dem Ziel verknüpften Mikrocontroller aktualisieren, können Sie mit SWUpdate Ihren eigenen Handler hinzufügen.

Signierte Updates

Sicherheit bleibt für SWUpdate wichtig. Die Fähigkeit, HTTPS mit dem Surricata-Modus zu verwenden, zeigt dies bereits, aber wir können auch.swu-Dateien signieren. SWUpdate ist dann in der Lage zu überprüfen, ob die empfangenen Updates von einer autorisierten Quelle stammen (privater Schlüssel/öffentlicher Schlüssel).

Lösung des Problems mit Größe und Bandbreite

👉 Komprimierte Updates

Der teuerste Teil eines Aktualisierungsvorgangs sind in den meisten Fällen die Bandbreitenkosten. Das Aktualisieren eines Rootfs für eine große Anzahl von Zielen erfordert ebenfalls eine große Menge an Bandbreite. Um das Problem zu lösen und die Kosten zu senken, ermöglicht SwUpdate die Verwendung komprimierter Rootfs.

👉 Delta-Aktualisierungen

Der Bandbreitenpreis bleibt auch nach der Komprimierung hoch, weshalb SWUpdate eine andere auf Deltas basierende Lösung vorschlägt.

Diese Lösung wird in einem zukünftigen Artikel besprochen.

Zusammenfassend lässt sich sagen, dass SWUpdate ein umfangreiches Framework ist, das viele spezifische Situationen lösen kann. Wenn SWUpdate gut konfiguriert ist, kann es Ihre Aktualisierungskosten reduzieren und gleichzeitig die Aktualisierung von Linux-basierten Systemen für alle viel einfacher machen.

 

Wenn Sie mehr über SWUpdate erfahren möchten und wie es Ihrem Unternehmen helfen kann, wenden Sie sich an:

Fabien LAHOUDERE, T&S Linux-Praxisleiter
Martin COUSSERANS, Geschäftsführer

Kontaktiere uns

Teilen:
Teilen

Unsere Experten sind nur einen Anruf entfernt!

Teilen Sie uns Ihre Umstände mit und gemeinsam finden wir die beste Lösung für Ihre Produktentwicklung.
Kontaktiere uns

Lesen Sie mehr Neuigkeiten

5/6/25

Einführung in Embedded Linux: maßgeschneiderte Lösungen für Ihr Projekt

„Entdecken Sie die Grundlagen von Linux Embarqué, einem Open-Source-Betriebssystem, leicht und modular, das im Internet der Dinge, in vernetzten Objekten, in industriellen oder medizinischen Systemen eingesetzt wird. Technologie und Strategie vous accompagne dans vos projets innovants grâce à son expertise.

MEHR LESEN
3/6/25

T&S Success Story: Rückblick auf Sébastien Juliens Karriere bei T&S und Englab

Sébastien Julien hat Englab bei T&S strukturiert und weiterentwickelt. Er brachte strategische Visionen, praktische Erfahrung und menschliches Wachstum ein, um ein Ingenieurbüro zu einem wichtigen Kapital des Unternehmens zu machen.

MEHR LESEN
15/5/25

Das Engagement von Technology & Strategy für SBTi: ein ehrgeiziger Klimapfad bis 2033

T&S verpflichtet sich gemeinsam mit SBTi zu einem ehrgeizigen Ansatz, um seine CO2-Emissionen zu reduzieren und seine Maßnahmen bis 2033 unter aktiver Beteiligung aller seiner Unternehmen an den globalen Klimazielen auszurichten.

MEHR LESEN