Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Device Update for Azure IoT Hub unterstützt image-, paket- und skriptbasierte Updates.
Imageupdates bieten ein höheres Maß an Vertrauen in den Endzustand des Geräts. Normalerweise ist es einfacher, die Ergebnisse einer Imageaktualisierung zwischen einer Vorproduktionsumgebung und einer Produktionsumgebung zu replizieren, da sie nicht die gleichen Herausforderungen wie Pakete und deren Abhängigkeiten darstellt. Aufgrund ihrer atomischen Natur können Sie auch problemlos ein A/B-Failovermodell übernehmen.
Dieses Lernprogramm führt Sie durch die Schritte zum Ausführen eines end-to-end imagebasierten Updates mithilfe von Device Update for IoT Hub auf einem Raspberry Pi 3 B+ Board.
In diesem Tutorial lernen Sie, wie Sie:
- Laden Sie ein Bild herunter.
- Fügen Sie Ihrem IoT-Gerät ein Etikett hinzu.
- Importieren eines Updates
- Erstellen einer Gerätegruppe.
- Bereitstellung eines Image-Updates
- Überwachen Sie die Updatebereitstellung.
Hinweis
Bildaktualisierungen in diesem Lernprogramm wurden auf dem Raspberry Pi B3-Board überprüft.
Voraussetzungen
Falls noch nicht geschehen, erstellen Sie ein Geräteaktualisierungskonto und eine Instanz , und konfigurieren Sie einen IoT-Hub.
Herunterladen des Bilds
Wir stellen Beispielbilder in Assets auf der Release-Seite von Device Update auf GitHub bereit. Die .gz Datei ist die Image-Datei, die Sie auf einen Raspberry Pi 3 B+ flashen können. Die swUpdate-Datei ist das Update, das Sie über Device Update für IoT Hub importieren würden.
Das Image auf eine SD-Karte flashen
Verwenden Sie Ihr bevorzugtes Betriebssystem-Flashing-Tool, um das Device Update-Basisimage (adu-base-image) auf der SD-Karte zu installieren, die auf dem Raspberry Pi 3 B+-Gerät verwendet wird.
Verwenden von bmaptool zum Einspielen der SD-Karte
Installieren Sie das
bmaptoolDienstprogramm, falls nicht bereits installiert.sudo apt-get install bmap-toolsSuchen Sie den Pfad für die SD-Karte in
/dev. Der Pfad sollte etwa wie/dev/sd*oder/dev/mmcblk*aussehen. Sie können das Hilfsprogrammdmesgverwenden, um den richtigen Pfad zu finden.Hängen Sie alle eingehängten Partitionen vor dem Flashen aus.
sudo umount /dev/<device>Stellen Sie sicher, dass Sie über Schreibberechtigungen für das Gerät verfügen.
sudo chmod a+rw /dev/<device>Optional: Laden Sie die Bimap-Datei und die Bilddatei herunter und legen Sie sie im selben Verzeichnis ab.
Spielen Sie die SD-Karte ein.
sudo bmaptool copy <path to image> /dev/<device>
Geräteupdate für Azure IoT Hub-Software unterliegt den folgenden Lizenzbedingungen:
Lesen Sie die Lizenzbedingungen vor der Verwendung des Agents. Ihre Installation und Nutzung stellt Ihre Annahme dieser Bedingungen dar. Wenn Sie den Lizenzbedingungen nicht zustimmen, verwenden Sie nicht den Device Update for IoT Hub Agent.
Erstellen eines Geräts oder Moduls in IoT Hub und Abrufen einer Verbindungszeichenfolge
Fügen Sie nun das Gerät zum IoT Hub hinzu. Von IoT Hub aus wird eine Verbindungszeichenfolge für das Gerät generiert.
Starten Sie IoT Hub im Azure-Portal.
Erstellen Sie ein neues Gerät.
Klicken Sie im linken Bereich auf Geräte. Wählen Sie dann Neu.
Geben Sie unter Geräte-ID einen Namen für das Gerät ein. Stellen Sie sicher, dass das Kontrollkästchen Schlüssel automatisch generieren aktiviert ist.
Wählen Sie Speichern aus. Auf der Seite "Geräte" sollte sich das erstellte Gerät in der Liste befinden.
Rufen Sie die Geräteverbindungszeichenfolge mithilfe einer von zwei Optionen ab:
- Option 1: Verwenden Sie den Geräteaktualisierungs-Agent mit einer Modulidentität: Wählen Sie auf derselben Seite "Geräte " oben "Modulidentität hinzufügen" aus. Erstellen Sie ein neues Device Update-Modul mit dem Namen IoTHubDeviceUpdate. Wählen Sie andere Optionen aus, während sie für Ihren Anwendungsfall gelten, und wählen Sie dann "Speichern" aus. Wählen Sie das neu erstellte Modul aus. Wählen Sie in der Modulansicht das Symbol "Kopieren " neben der primären Verbindungszeichenfolge aus.
- Option 2: Verwenden Sie den Geräteaktualisierungs-Agent mit der Geräteidentität: Wählen Sie in der Geräteansicht das Symbol "Kopieren " neben der primären Verbindungszeichenfolge aus.
Fügen Sie die kopierten Zeichen an einer beliebigen Stelle ein, um sie später in den folgenden Schritten zu verwenden:
Diese kopierte Zeichenfolge ist Ihre Geräteverbindungszeichenfolge.
Vorbereiten von Gerätekonfigurationen für Geräteupdates für IoT Hub
Zwei Konfigurationsdateien müssen sich auf dem Gerät befinden, damit geräteupdate für IoT Hub ordnungsgemäß konfiguriert wird. Die erste Datei ist die du-config.json-Datei, die an /adu/du-config.json vorhanden sein muss. Die zweite Datei ist die du-diagnostics-config.json-Datei, die an /adu/du-diagnostics-config.json vorhanden sein muss.
Hier sind zwei Beispiele für die du-config.json- und die du-diagnostics-config.json-Dateien:
Beispiel-du-config.json
{
"schemaVersion": "1.0",
"aduShellTrustedUsers": [
"adu",
"do"
],
"manufacturer": "fabrikam",
"model": "vacuum",
"agents": [
{
"name": "main",
"runas": "adu",
"connectionSource": {
"connectionType": "string",
"connectionData": "HostName=example-connection-string.azure-devices.net;DeviceId=example-device;SharedAccessKey=M5oK/rOP12aB5678YMWv5vFWHFGJFwE8YU6u0uTnrmU="
},
"manufacturer": "fabrikam",
"model": "vacuum"
}
]
}
Beispiel-du-diagnostics-config.json
{
"logComponents":[
{
"componentName":"adu",
"logPath":"/adu/logs/"
},
{
"componentName":"do",
"logPath":"/var/log/deliveryoptimization-agent/"
}
],
"maxKilobytesToUploadPerLogPath":50
}
Konfigurieren des Device Update-Agents auf Raspberry Pi
Stellen Sie sicher, dass Raspberry Pi 3 mit dem Netzwerk verbunden ist.
Führen Sie die folgenden Anweisungen aus, um die Konfigurationsdetails hinzuzufügen:
Melden Sie sich zunächst über SSH am Rechner an, indem Sie den folgenden Befehl im PowerShell-Fenster verwenden:
ssh raspberrypi3 -l rootErstellen oder öffnen Sie die
du-config.jsonDatei zum Bearbeiten mit:nano /adu/du-config.jsonNachdem Sie den Befehl ausgeführt haben, sollte ein geöffneter Editor mit der Datei angezeigt werden. Wenn Sie die Datei noch nie erstellt haben, ist sie leer. Kopieren Sie nun das vorherige Beispiel du-config.json Inhalte, und ersetzen Sie die für Ihr Gerät erforderlichen Konfigurationen. Ersetzen Sie dann die Beispielverbindungszeichenfolge durch die Zeichenfolge für das Gerät, das Sie in den vorherigen Schritten erstellt haben.
Nachdem Sie die Änderungen abgeschlossen haben, wählen Sie STRG+X aus, um den Editor zu beenden. Geben Sie dann "y" ein, um die Änderungen zu speichern.
Jetzt müssen Sie die
du-diagnostics-config.jsonDatei mithilfe ähnlicher Befehle erstellen. Beginnen Sie mit dem Erstellen oder Öffnen der Datei für diedu-diagnostics-config.jsonBearbeitung mithilfe von:nano /adu/du-diagnostics-config.jsonKopieren Sie das vorherige Beispiel du-diagnostics-config.json Inhalt, und ersetzen Sie alle Konfigurationen, die sich vom Standardbuild unterscheiden. Die Beispieldatei du-diagnostics-config.json repräsentiert die Standardprotokollspeicherorte für Device Update für IoT Hub. Sie müssen diese nur ändern, wenn sich Ihre Implementierung unterscheidet.
Nachdem Sie die Änderungen abgeschlossen haben, wählen Sie STRG+X aus, um den Editor zu beenden. Geben Sie dann "y" ein, um die Änderungen zu speichern.
Verwenden Sie den folgenden Befehl, um die Dateien im
/adu/Verzeichnis anzuzeigen. Sie sollten beide Ihrer Konfigurationsdateien, die du-diagnostics-config.json Dateien, zur Bearbeitung betrachten, indem Sie Folgendes verwenden:ls -la /adu/
Starten Sie den Geräteupdate-Systemdaemon neu, um sicherzustellen, dass die Konfigurationen angewendet wurden. Verwenden Sie den folgenden Befehl innerhalb des Terminals, in dem Sie bei
raspberrypiangemeldet sind.systemctl start adu-agentÜberprüfen Sie, ob der Agent live ist, indem Sie den folgenden Befehl verwenden:
systemctl status adu-agentSie sollten sehen, dass der Status wieder lebendig und grün ist.
Verbinden des Geräts im Geräteupdate für IoT Hub
Klicken Sie im linken Bereich auf Geräte.
Wählen Sie den Link mit dem Gerätenamen aus.
Wählen Sie oben auf der Seite "Device Twin " aus, wenn Sie mithilfe der IoT-Geräteidentität eine direkte Verbindung mit Device Update herstellen. Wählen Sie andernfalls das Modul aus, das Sie erstellt haben, und wählen Sie dessen Modultwin aus.
Suchen Sie im gemeldeten Abschnitt der Device Twin-Eigenschaften nach der Linux-Kernelversion. Für ein neues Gerät, das kein Update von Device Update erhalten hat, stellt der Wert "DeviceManagement:DeviceInformation:1.swVersion " die Firmwareversion dar, die auf dem Gerät ausgeführt wird. Nachdem ein Update auf ein Gerät angewendet wurde, verwendet Device Update den Wert der AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId-Eigenschaft , um die firmwareversion darzustellen, die auf dem Gerät ausgeführt wird.
Die Basis- und Aktualisierungsimagedateien weisen eine Versionsnummer im Dateinamen auf.
adu-<image type>-image-<machine>-<version number>.<extension>
Verwenden Sie diese Versionsnummer im späteren Abschnitt "Update importieren".
Hinzufügen eines Tags zu Ihrem Gerät
Melden Sie sich beim Azure-Portal an, und navigieren Sie zum IoT-Hub.
Suchen Sie im linken Bereich unter Geräte Ihr IoT-Gerät, und navigieren Sie zu Ihrem Geräte-Twin oder Modul-Twin.
Löschen Sie im Modulzwilling des Device Update-Agent-Moduls alle vorhandenen Device Update-Tagwerte, indem Sie sie auf „NULL“ festlegen. Wenn Sie die Geräteidentität mit dem Geräteupdate-Agent verwenden, nehmen Sie diese Änderungen auf dem Gerät Twin vor.
Fügen Sie wie hier gezeigt einen neuen Device Update-Tagwert hinzu:
"tags": { "ADUGroup": "<CustomTagValue>" }
Importieren des Updates
Laden Sie das Beispiel-Lernprogrammmanifest (Tutorial Import Manifest_Pi.json) und das Beispielupdate (adu-update-image-raspberrypi3-0.6.5073.1.swu) von Release Assets für den neuesten Agent herunter.
Melden Sie sich beim Azure-Portal an, und navigieren Sie zu Ihrem IoT-Hub mit Device Update. Wählen Sie im linken Bereich unter Automatische Geräteverwaltung die Option Updates aus.
Wählen Sie die Registerkarte Updates aus.
Wählen Sie + Neues Update importieren aus.
Klicken Sie auf + Aus Speichercontainer auswählen. Wählen Sie ein vorhandenes Konto aus, oder erstellen Sie über die Option + Speicherkonto ein neues. Wählen Sie dann einen vorhandenen Container aus, oder erstellen Sie mithilfe von + Container einen neuen. Dieser Container wird verwendet, um Ihre Aktualisierungsdateien für den Import vorzubereiten.
Hinweis
Es wird empfohlen, bei jedem Import eines Updates einen neuen Container zu verwenden, um zu vermeiden, dass versehentlich Dateien aus früheren Updates importiert werden. Wenn Sie keinen neuen Container verwenden, müssen Sie vor diesem Schritt alle Dateien aus dem vorhandenen Container löschen.
Wählen Sie in Ihrem Container Hochladen aus, und wechseln Sie zu den in Schritt 1 heruntergeladenen Dateien. Nachdem Sie alle Aktualisierungsdateien ausgewählt haben, wählen Sie "Hochladen" aus. Klicken Sie dann auf die Schaltfläche Auswählen, um zur Seite Update importieren zurückzukehren.
Dieser Screenshot veranschaulicht den Importschritt. Dateinamen stimmen möglicherweise nicht mit denen überein, die im Beispiel verwendet werden.
Überprüfen Sie auf der Seite Update importieren die zu importierenden Dateien. Klicken Sie dann auf Update importieren, um den Importvorgang zu starten.
Der Importvorgang beginnt, und der Bildschirm wechselt zum Abschnitt " Importverlauf ". Wenn in der Spalte Status angezeigt wird, dass der Import erfolgreich war, klicken Sie auf den Header Verfügbare Updates. Ihr importiertes Update sollte nun in der Liste angezeigt werden.
Erfahren Sie mehr über das Importieren von Updates.
Erstellen einer Updategruppe
Navigieren Sie oben auf der Seite zur Registerkarte Gruppen und Bereitstellungen.
Wählen Sie Gruppe hinzufügen aus, um eine neue Gruppe zu erstellen.
Wählen Sie in der Liste ein IoT Hub-Tag und eine Geräteklasse aus. Wählen Sie anschließend Gruppe erstellen aus.
Nachdem die Gruppe erstellt wurde, werden das Kompatibilitätsdiagramm und die Gruppenliste aktualisiert. Das Updatekonformitätsdiagramm zeigt die Anzahl von Geräten in verschiedenen Konformitätszuständen: Mit neuestem Update, Neue Updates verfügbar und Updates werden ausgeführt. Informieren Sie sich weiter über die Updatekonformität.
Ihre neu erstellte Gruppe und alle verfügbaren Updates für die Geräte in der neuen Gruppe sollten angezeigt werden. Wenn Geräte vorhanden sind, die die Geräteklassenanforderungen der Gruppe nicht erfüllen, werden sie in einer entsprechenden ungültigen Gruppe angezeigt. Klicken Sie in dieser Ansicht neben der Gruppe auf Bereitstellen, um das beste verfügbare Update für die neue benutzerdefinierte Gruppe bereitzustellen.
Erfahren Sie mehr darüber, wie Sie Tags hinzufügen und Updategruppen erstellen.
Bereitstellen des Updates
Nachdem die Gruppe erstellt wurde, sollte ein neues Update für Ihre Gerätegruppe verfügbar sein. Ein Link zum Update sollte unter "Bestes Update" stehen. Möglicherweise müssen Sie den Browser einmal aktualisieren. Informieren Sie sich weiter über die Updatekonformität.
Wählen Sie die Zielgruppe aus, indem Sie den Gruppennamen auswählen. Sie werden zu den Gruppendetails unter Allgemeine Informationen zu Gruppen weitergeleitet.
Um die Bereitstellung zu starten, wechseln Sie zur Registerkarte "Aktuelle Bereitstellung ". Wählen Sie den Bereitstellungslink neben dem gewünschten Update im Abschnitt "Verfügbare Updates" aus. Das beste verfügbare Update für eine bestimmte Gruppe wird mit Beste hervorgehoben.
Planen Sie den Start Ihrer Bereitstellung sofort oder zu einem späteren Zeitpunkt. Klicken Sie anschließend auf Erstellen.
Unter Bereitstellungsdetails wird der Status in Aktiv geändert. Das Bereitstellungsupdate ist mit (Wird bereitgestellt) gekennzeichnet.
Zeigen Sie das Kompatibilitätsdiagramm an, um herauszufinden, ob das Update jetzt in Bearbeitung ist.
Nachdem das Gerät erfolgreich aktualisiert wurde, erkennen Sie, dass Ihr Konformitätsdiagramm und die Bereitstellungsdetails so aktualisiert wurden, dass sie übereinstimmen.
Überwachung der Updatebereitstellung
Klicken Sie oben auf der Seite auf die Registerkarte Bereitstellungsverlauf.
Klicken Sie neben der von Ihnen erstellten Bereitstellung auf Details.
Wählen Sie Aktualisieren aus, um die neuesten Statusdetails anzuzeigen.
Sie haben jetzt ein erfolgreiches End-to-End-Imageupdate mit Device Update für IoT Hub auf einem Raspberry Pi 3 B+ -Gerät abgeschlossen.
Bereinigen von Ressourcen
Wenn sie nicht mehr benötigt wird, bereinigen Sie Ihr Geräteupdatekonto, Instanz, IoT-Hub und IoT-Gerät.