E



Embedded Update

Embedded Geräte benötigen ein vollständig automatisiert durchführbares Update. Dies wird oft mit dem Synonym OTA (over the air) Update bezeichnet. Die technische Umsetzung dieses Konzeptes muss dabei sowohl die unterschiedlichsten Speichermedien wie auch die verschiedensten Kommunikationswege zur Ausbringung des Updates berücksichtigen.

Die sich ständig weiter entwickelnde Komplexität von System-on-Chips erweitert den Funktionsumfang der damit hergestellten Geräte und stellt damit auch steigende Anforderungen an das Updatekonzept. Oftmals muss nicht mehr nur ein Prozessor mit Software versorgt werden, sondern auch weitere Bausteine wie FPGAs, heterogen aufgebaute CPU-Cores oder unterlagerte Geräte. Technologien wie Container oder Hypervisoren erlauben es, dass Software von Dritten auf einem Embedded Gerät zum Einsatz kommt. Diese Dritt-Software benötigt ebenfalls ein sicheres Update, wobei es wünschenswert ist, dass in diesem Falle das Update nicht zwangsläufig durch den Hersteller des Gerätes ausgeliefert werden muss.

Dazu kommen die schon immer vorhandenen hohen Ansprüche industriell genutzter Systeme. Hier sitzt kein Operator vor dem Gerät, der bei einem Fehler per Hand einen Reset auslösen kann. Die Ansprüche an ein Update System, die daraus abzuleiten sind, lassen sich wie folgt zusammenfassen:

  • Authentifizierung des Update Servers (security endpoint feature)
  • Signierte und optional verschlüsselte Updates (Datenintegrität)
  • Verifizierung jedes Updates lokal vor Download
  • Kein Einspielen veralteter, fehlerhafter Updates (Downgrade)
  • Power Failure Sicherheit und Robustheit gegenüber fehlerhaften Datenübertragungen
  • Rollback Möglichkeit, auch für nachgeordnete Geräte
  • Mehrere Images für mehrere Geräte in einem Update
  • Weiterleitung von Updates an nachgeordnete Geräte (FPGA, CPUs ...)
  • Optimale Nutzung von Speicher
  • Optimale Nutzung vorhandener Bandbreite (CDN freundliche Systeme) dank Delta-Updates
  • Update als Images, als Partitionsupdate, als Pakete und als Datei
  • Rückmeldung Update und Informationsaustausch zum Management Server

Diese Anforderungen haben wir auf Basis eines Open Source Tools (swupdate), das von uns entsprechende Erweiterungen erhalten hat, umgesetzt. Unser Tool lässt sich einfach in Yocto oder Debian basierte Buildumgebungen integrieren. Ein Update läuft dann wie unten dargestellt ab.

Oben genannte Punkte beschreiben die Anforderungen des Zielgerätes an das Update. Zusätzlich benötigt man auch ein Tool, bei dem sich das Gerät anmeldet und sein Update entgegennimmt, und das die Geräte verwalten kann.