RAUC – OTA Field Updates

Die zuverlässige Versorgung mit Updates im Feld ist für moderne eingebettete Systeme inzwischen eine zentrale Anforderung. Zum einen schon aus regulatorischen Gründen, aber vor allem um Geräte im Feld kontinuierlich mit Sicherheits-Updates, Fehlerkorrekturen oder neuen Features versorgen zu können.

Mit RAUC entwickelt und maintained Pengutronix (zusammen mit einer weltweiten Community) eines der führenden Open Source-Frameworks für Over-The-Air-Updates. RAUC unterstützt neben klassischen A/B-Updates eine ganze Reihe individueller Szenarien und lässt sich nahtlos in bestehende Infrastruktur und Applikationen integrieren.

RAUC bietet zum einen das Tooling um auf Host-Seite Update-Artefakte zu erstellen und ist gleichzeitig der Service auf dem Target, der Installations-Bundles entgegen nimmt, authentifiziert und automatisch Images und Artefakte auf den passenden Ziel-Partitionen oder Verzeichnissen atomar installiert. Der aktuelle Zustand des Redundanz-Systems ist dabei über das D-Bus-Interface des RAUC-Service bzw. das bereitgestellte Kommandozeilen-Tool vollständig introspektierbar und kontrollierbar.

Des weiteren bietet RAUC eine Bandbreite nützlicher Features wie

  • HTTP(S)-Streaming ohne Zwischenspeicher
  • Adaptive Updates zur Reduzierung der Download-Größe
  • Verschlüsselung von Updates
  • Unterstützung von Recovery-Systemen
  • Unabhängige Daten-/Applications-/Container-Updates als Artifacts
  • atomare Bootloader-Updates

Die Integration von RAUC als Update-Lösung für ein Embedded-Linux-System wird sowohl von Yocto (meta-rauc Layer), PTXdist als auch diversen anderen Embedded Linux-Buildsystemen unterstützt. Die selbsbestimmte Nutzung von RAUC als Update-Lösung wird darüber hinaus durch eine umfangreiche Dokumentation unterstützt.

Pengutronix bietet professionellen Support im Bereich

  • Entwicklung/Erweiterung und Mainlining neuer RAUC-Features
  • Sponsoring von Maintenance- und Wartungsaufgaben an RAUC
  • Integration von RAUC in neue und bestehende Projekte
  • Update-orientierte Anpassung des Gesamtsystems (Watchdog, systemd, Partitionierung, etc.)
  • Professionelles Key-Handling in Produktion und Gerät
  • Updating im Kontext von Verified Boot, OP-TEE, etc.

Ressourcen

Webseite rauc.io
Dokumentation: rauc.readthedocs.io
GitHub: github.com/rauc/rauc
meta-rauc: github.com/rauc/meta-rauc