Projekt
Containerbasierte Firmware für IoT-Geräte
Vorbereitung der Firmware für IoT-Geräte basierend auf Containern unter Yocto Linux
CPU
ARM
Hersteller
Toradex
OS
Linux
Kompetenzen
Linux
Containers
Python, Bash
Docker, Yocto
Linux Systemd
Uptane, OSTree
Torizon
Projektgröße:
Schwierigkeit:
Anfrage/Problem:
Unser Kunde hat ein Gerät entwickelt, welches als IoT-Gerät an Fahrzeugen montiert werden soll. Dieses erfasst Sensorinformationen vom Fahrzeug und lädt diese dann über das Mobilfunknetz in die Cloud hoch, wo die Daten mit Hilfe von künstlicher Intelligenz weiter analysiert werden. Ziel war es, eine Firmware zu erstellen, die die folgenden Eigenschaften erreicht:
- Basiert auf Linux und mit allen Gerätetreibern, die für die verwendeten Sensoren und Kommunikationsgeräte aktiviert sind
- Ermöglicht die Ausführung der Anwendung als Container.
- Führt den Container im nicht-privilegierten Modus mit Zugriff auf alle Geräte aus.
- Bietet eine Möglichkeit für Over-the-Air-Updates für die Anwendung und das Linux-Betriebssystem.
- Verfolgt Systemfehler und behandelt sie auf definierte Weise, um eine zuverlässige Funktionalität zu ermöglichen.
- Bietet einen nachhaltigen Weg für das Firmware-Management ohne hohe Wartungskosten.
Lösungsansatz:
Das Gerät verwendet das Toradex Verdin SoM auf einer kundenspezifischen Trägerplatine, die Zugang zu den erforderlichen Peripheriegeräten und Geräten für die Schnittstelle zu den Sensoren bietet. Da Toradex das Torizon OS für seine Module zur Verfügung stellt, war dieses zu Beginn die erste Wahl, aber es erforderte eine Menge Anpassungen, um alle Anforderungen zu erfüllen. Wir fügten folgende Anpassungen zum Torizon OS hinzu:
- Benutzerdefinierter Devicetree für das Gerät
- Systemd-Komponenten wie z. B.
- Zusätzliche udev-Regeln, um die externen Geräte zu initialisieren und sie so zuzuordnen, dass der Zugriff auf die im Docker-Container laufende Anwendung auf deterministische Weise möglich ist.
- Systemmonitor-Dienst, um den Status der Anwendung und des angeschlossenen Geräts zu verfolgen, um Fehler zu erkennen und wenn möglich zu beheben.
- Zusätzliche Dienste zur Initialisierung der Geräte mit Anpassungen, die für die Anwendung erforderlich sind.
- Kundenspezifische Firmware für den M4-Prozessor
- Zusätzliche Anpassungen über die Startskripte, damit der Container auf allen erforderlichen Geräten im nicht-privilegierten Modus zugreifen kann, um die Angriffsfläche im Gerät zu reduzieren.
- reproduzierbare Möglichkeit, um OS (Torizon) Images mit den kundenspezifischen Anpassungen zu generieren.
- Neue Releases von Toradex für Torizon können einfach mit den Anpassungen integriert und auf das Gerät aktualisiert werden.
- Zusätzliche Anpassungen können auch in der Zukunft integriert werden.
- Applikationsgenerierung und OS-Binärdateien, die für die Bereitstellung neuer Geräte verwendet werden können.
- OS- und Anwendungsänderungen im definierten Format an die OTA-Plattform pushen.
System Architektur:
Firmware Architektur:
Ergebnisse:
Die Geräte werden im Feld mit der Firmware eingesetzt, die über die gelieferte Anpassung für das Betriebssystem und die Referenzanwendung entwickelt wurde. Der Kunde verwendet auch die automatisierten Skripte, um OTA-Updates für die Anwendungen durchzuführen.