Systemdesign / Safety&Security

Updateszenarien für und mit Linux

13. August 2018, 15:42 Uhr | Jan Altenberg, Leiter des technischen Vertriebs bei Linutronix
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Tooling

Bedingt durch die Tatsache, dass sich Updates aus Linux heraus sehr generisch gestalten lassen, steht bereits eine Vielzahl von Werkzeugen zur Umsetzung von Updatekonzepten bereit. Die Verwendung solcher Tools spart manuelle Aufwände und reduziert die Fehleranfälligkeit. Ein sehr verbreitetes und bewährtes Tool bzw. Framework zur Umsetzung von Updates ist swupdate, welches unter einer Open-Source Lizenz frei verfügbar ist (https://github.com/sbabic/swupdate). Swupdate unterstützt nicht nur das Einlesen und Einspielen von Updates über ein einheitliches und streamfähiges Containerformat, Sofwarestände können auch signiert werden, um das Einspielen von Schadsoftware zu verhindern. Swupdate greift hier durchweg auf frei verfügbare Technologien und bewährte Standards zurück.

Deployment

Bevor ein Update eingespielt werden kann, muss es zuerst einmal auf das Gerät kommen. Swupdate unterstützt nicht nur das Einspielen von Updates, sondern auch das Deployment. Der einfachste Fall ist das Verarbeiten einer lokalen Datei, beispielsweise von einem USB-Stick oder einem ähnlichen Speichermedium. Weiterhin können Updates aus dem Netzwerk eingespielt werden.

Sowohl ein pull-Modell (Daten können von einer Server URL abgeholt werden), als auch ein push-Modell (Upload der Daten via Webserver) werden unterstützt. Für den Upload der Daten über einen Webserver gibt es bereits ein einfaches Web-UI. Darüberhinaus besteht die Möglichkeit einer Anbindung an den Deployment-Server Hawkbit.

Hawkbit ist ebenfalls ein Open-Source Projekt und beschäftigt sich mit dem Roll-Out von Software. Über ein serverbasiertes, grafisches Interface können Geräteklassen verwaltet und definierte Softwarestände an bestimmte Geräte ausgeliefert werden. Swupdate unterstützt die Anbindung an Hawkbit out-of-the-box.

Das grafische Interface von Hawkbit läßt sich individuell anpassen. Bild 3 zeigt ein solches angepaßtes Hawkbit-UI.

passend zum Thema

Bild 3: Ein angepasstes Hawkbit-UI
Bild 3: Ein angepasstes Hawkbit-UI
© Linutronix

Fazit

Security ist ein wesentlicher Aspekt des Produktdesigns. Updates sind daher ein zwingender Bestandteil von Embeddedsystemen. Eine wichtige Grundlage für die Bereitstellung von Updates ist die Verwendung von gewarteten Softwarepaketen. Updates werden üblicherweise nicht mehr aus dem Bootloader, sondern aus einem redundanten Linux System eingespielt. Dies erhöht die Flexibilität und die Wiederverwendbarkeit. Zudem kann bei der Implementierung auf fertige Werkzeuge und Frameworks, wie z.B. Swupdate, zurückgegriffen werden. Diese Werkzeuge unterstützen bereits alle gängigen Speichermedien und Deploymentmethoden. Die Verwendung bewährter Konzepte und Tools reduziert die Implementierungsaufwände drastisch und verringert zeitgleich die Fehleranfälligkeit. (ct)


  1. Updateszenarien für und mit Linux
  2. Paradigmenwechsel bei Updatekonzepten
  3. Tooling

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!