Firmware-Updates Over-the-Air mit Eclipse hawkBit
Schritt-für-Schritt-Anleitung, um mit Eclipse hawkBit einen eigenen Update-Server per Docker Compose aufzusetzen, Geräte als Client zu registrieren und Firmware Over-the-Air auszurollen.
IoT-Geräte wie Gateways oder Steuerungen sollten auch nach der Inbetriebnahme regelmässig mit der aktuellen Firmware versorgt werden. Updates schliessen bekannte Sicherheitslücken und erhöhen so die Sicherheit und Stabilität der gesamten Anlage.
Eclipse hawkBit ist ein Open-Source-Backend für das Software- und Firmware-Rollout auf vernetzte Geräte. Auf jedem Gerät läuft ein hawkBit-Client, der sich beim zentralen Server meldet und neue Distributionen automatisch oder gesteuert herunterlädt und installiert. Diese Anleitung führt durch die komplette Einrichtung: vom Server über die Geräteregistrierung bis zum eigentlichen Firmware-Rollout.
Der hawkBit-Server lässt sich lokal, auf einem eigenen vServer oder bei einem Cloud-Anbieter betreiben. Lokal eignet sich für erste Tests, ein erreichbarer Server im Internet erlaubt Updates ortsunabhängig.
Praxis-Testaufbau
Mit dem Rollout-Verfahren von hawkBit liessen sich im Test 27 Geräte mit einem Klick in rund 15 Minuten aktualisieren. Für etwa 100 Geräte ist ein Zeitrahmen von ca. 15 bis 25 Minuten realistisch. Da der Server zusätzlich in einer eigenen Cloud-Umgebung betrieben wurde, konnten die Geräte auch über das Internet aktualisiert werden.
Voraussetzungen
Bevor Sie beginnen, sollten auf dem Linux-Server folgende Werkzeuge vorhanden sein: Docker und Docker Compose für den Betrieb der Container sowie Git, um das offizielle hawkBit-Repository zu laden. Die Installation von Git wird im ersten Schritt gezeigt.
1. hawkBit-Server unter Linux installieren
hawkBit wird über eine offiziell bereitgestellte Docker-Compose-Datei installiert. Die folgenden Schritte laden das Repository herunter und starten die Container.
Schritt 1.1 Git installieren.
1sudo apt-get install git
Schritt 1.2 Docker-Compose-Datei per Git auf den Server laden.
1sudo git clone https://github.com/eclipse/hawkbit.git
Schritt 1.3 In das Verzeichnis mit der Compose-Datei wechseln.
1cd hawkbit/hawkbit-runtime/docker
Im Verzeichnis ~/hawkbit/hawkbit-runtime/docker liegt die für die Installation benötigte Docker-Compose-Datei.
Schritt 1.4 Container per Docker Compose starten.
1sudo docker-compose up -d
Nach Ausführen des Kommandos werden folgende Container gestartet:
- RabbitMQ (Nachrichten-Broker) - MySQL (Datenbank) - hawkBit Management (Server und Weboberfläche)
Die Installation ist damit abgeschlossen. Die Weboberfläche erreichen Sie anschliessend unter http://[IP-ADRESSE]:8080.
Die Standard-Anmeldedaten lauten:
1Username: admin2Password: admin
Die Standard-Zugangsdaten admin/admin sollten vor einem produktiven Einsatz unbedingt geändert werden. Sie lassen sich direkt in der Docker-Compose-Datei anpassen.
2. Gerät als Client registrieren
Damit ein Gerät Updates empfangen kann, muss es im hawkBit-Server angelegt und der hawkBit-Client auf dem Gerät konfiguriert werden. Server und Gerät tauschen dabei eine Controller-ID (die eindeutige Geräte-Kennung) sowie einen Security-Token aus, mit dem sich der Client authentifiziert.
2.1 Gerät im Server anlegen
Legen Sie in der hawkBit-Weboberfläche über das Plus-Symbol ein neues Ziel (Target) an. Tragen Sie als Controller-ID die eindeutige Geräte-Kennung ein, vergeben Sie einen aussagekräftigen Namen und ergänzen Sie bei Bedarf eine Beschreibung. Speichern Sie mit SAVE, damit der Client im Server angelegt wird.
Nach dem Anlegen erzeugt hawkBit einen Security-Token für das Gerät. Kopieren Sie diesen Token, er wird bei der Client-Konfiguration benötigt.
2.2 hawkBit-Client auf dem Gerät konfigurieren
Aktivieren Sie auf dem Gerät den hawkBit-Client und tragen Sie folgende Werte ein:
- Server-Adresse: http://[IP-ADRESSE]:8080 - Controller-ID (Device-ID): die eindeutige Kennung des Geräts, identisch zur im Server hinterlegten ID - Tenant: bleibt auf default - Authentifizierung per Security-Token aktivieren und den zuvor kopierten Token eintragen
Übernehmen Sie die Einstellungen, um die Konfiguration abzuschliessen.
2.3 Verbindung prüfen
Ist die Konfiguration korrekt, signalisiert der Client-Status auf dem Gerät die Verbindung (typischerweise grün). Auch im Server wechselt der Status des Geräts auf verbunden, und es erscheinen zusätzliche Angaben. Damit ist das Gerät erfolgreich mit dem hawkBit-Server verbunden.
3. Firmware hochladen und ausrollen
Ohne hinterlegte Firmware lässt sich kein Update durchführen. In diesem Abschnitt wird die Firmware als Software-Modul hochgeladen, einer Distribution zugeordnet und auf das Gerät ausgerollt.
3.1 Software-Modul anlegen und Firmware hochladen
Wechseln Sie im linken Menü zum Bereich Upload und erstellen Sie über das Plus-Symbol im Fenster Software Module ein neues Modul:
- Type auf OS setzen - einen Namen vergeben (im Beispiel GW30) - die Firmware-Version angeben - Einstellungen speichern
Wählen Sie anschliessend das soeben erstellte Software-Modul aus und laden Sie die Firmware-Datei per Drag-and-Drop oder über Upload File hoch. Sobald der Upload abgeschlossen ist, wird der Status grün. Dem Modul ist nun eine Firmware hinterlegt.
3.2 Authentifizierung im Server aktivieren
Wechseln Sie in den Bereich System Config und aktivieren Sie dort die Authentifizierung per Security-Token. Speichern Sie die Einstellung.
3.3 Distribution erstellen
Wechseln Sie zum Bereich Distributions und erstellen Sie über das Plus-Symbol eine neue Distribution:
- Type auf OS only setzen - einen Namen vergeben - die Version angeben - Einstellungen speichern
Ordnen Sie nun das Software-Modul der Distribution zu, indem Sie es per Drag-and-Drop auf den entsprechenden Slot ziehen, und bestätigen Sie mit OK.
3.4 Update auf das Gerät ausrollen
Wechseln Sie in den Bereich Deployment. Dort erscheint die zuvor angelegte Distribution mit dem hinterlegten Software-Modul.
- Ziehen Sie die Distribution per Drag-and-Drop auf das gewünschte Gerät - Wählen Sie die Rollout-Bedingung, etwa Forced, damit das Update sofort durchgeführt wird - Bestätigen Sie mit OK, um das Update zu starten
Der Gerätestatus wechselt nun auf gelb, das Gerät wird gerade aktualisiert. Den Fortschritt sehen Sie direkt am Gerät. Ist das Update abgeschlossen, wechselt der Status auf grün.
Fazit
Mit Eclipse hawkBit steht eine herstellerunabhängige Lösung bereit, um Firmware-Updates zentral und Over-the-Air auf viele Geräte gleichzeitig auszurollen. Der Server ist über Docker Compose schnell aufgesetzt, Geräte werden per Controller-ID und Security-Token sicher angebunden, und der eigentliche Rollout erfolgt mit wenigen Klicks. So bleiben IoT-Anlagen auch nach der Inbetriebnahme dauerhaft aktuell und sicher.
