Freigeben über


Vornehmen von Änderungen an einem Gerät nach der Herstellung

Einer der letzten Schritte bei der Herstellung eines Azure Sphere-Geräts besteht darin , das Gerät in den DeviceComplete-Zustand zu versetzen, wodurch das Gerät vor Änderungen geschützt wird. Es gibt jedoch Situationen, in denen Geräte, die in den DeviceComplete-Zustand versetzt wurden, geändert werden müssen.

Der sichere Mechanismus für solche Szenarien ist die Verwendung einer Gerätefunktion. Es gibt zwei Arten von Gerätefunktionen: fieldServicing und appDevelopment, und Sie sollten die Geräte verwenden, die über die mindesten erforderlichen Features verfügen. Das heißt, wenn die fieldServicing-Funktion Ihre Anforderungen erfüllt, sollten Sie diese verwenden. Wenn jedoch mehr Flexibilität erforderlich ist, verwenden Sie stattdessen die AppDevelopment-Funktion . Obwohl die Funktionen für die beiden Szenarien entworfen wurden, nach denen sie benannt werden, sollten Sie die tatsächlich aktivierten Funktionen überprüfen, anstatt sich auf diesen Namen zu verlassen. Nur der Mandantenbesitzer des Geräts kann Funktionen für dieses Gerät abrufen, und jede Funktion ist auf ein einzelnes Gerät beschränkt.

Wenn Sie Änderungen an einem DeviceComplete-Gerät vornehmen, sollten Sie diese Funktionen nicht querladen. Dadurch soll das Risiko vermieden werden, dass die Funktion versehentlich vorhanden ist und das Gerät dadurch in einem unsicheren Zustand bleibt. Stattdessen sollten Sie eine Wartungssitzung verwenden.

Es gibt drei Phasen für die Verwendung von Funktionen zum Warten von Geräten: Herunterladen der Funktionen, Anwenden eines vertrauenswürdigen Keystore-Updates (falls erforderlich) und anschließendes Erstellen einer Wartungssitzung.

Herunterladen einer Funktion

Sie können eine Funktion mithilfe des Befehls azsphere device capability download herunterladen. Sie benötigen Zugriff auf den Mandanten, der das Gerät besitzt, und Internetzugriff, um eine Funktion herunterladen zu können. Standardmäßig wird das aktuell angeschlossene Gerät verwendet. Wenn mehrere Geräte angefügt sind, geben Sie entweder die IP-Adresse, die Geräte-ID oder die lokale Verbindungs-ID eines angeschlossenen Geräts im --device Parameter an. Geben Sie beim Herunterladen einer Funktion für ein nicht angefügtes Gerät eine Geräte-ID im --device Parameter an.

So laden Sie die Funktion für ein angeschlossenes Gerät herunter:

  1. Melden Sie sich bei dem Azure Sphere-Mandanten an, in dem das Gerät beansprucht wird.

  2. Verwenden Sie den folgenden Befehl mit den --type Parametern und --destination , um eine Funktionsdatei für das angefügte Gerät herunterzuladen. Zum Beispiel:

    azsphere device capability download --type fieldServicing --destination <capability-file>
    

    Ersetzen Sie <capability-file> durch den Speicherort auf Ihrem Computer, an dem die Funktionsdatei gespeichert werden soll.

So laden Sie die Funktion für ein nicht angefügtes Gerät herunter:

  1. Melden Sie sich bei dem Azure Sphere-Mandanten an, in dem das Gerät beansprucht wird.

  2. Verwenden Sie den folgenden Befehl mit den --deviceParametern , --typeund --destination , um eine Funktionsdatei für das nicht angefügte Gerät herunterzuladen. Zum Beispiel:

    azsphere device capability download --device <deviceID> --type fieldServicing --destination <capability-file>
    

    Geben Sie die Geräte-ID des Geräts an, für das Sie die Funktion benötigen, und ersetzen < Sie capability-file> durch den Speicherort auf Ihrem Computer, an dem die Funktionsdatei gespeichert werden soll.

Aktualisieren Des vertrauenswürdigen Keystores bei Bedarf

Wenn ein Gerät nicht mit dem Internet verbunden ist, besteht die Möglichkeit, dass das Gerät der Funktion nicht vertraut. Dies tritt auf, wenn AS3 seinen Imagesignaturschlüssel aktualisiert hat, mit dem alle Bilder einschließlich Funktionsimages signiert werden, aber das Gerät nicht über diesen aktualisierten Schlüssel im vertrauenswürdigen Schlüsselspeicher verfügt. Jedes verbundene Gerät aktualisiert automatisch seinen vertrauenswürdigen Keystore, aber wenn das Gerät nicht verbunden ist, ist dies möglicherweise nicht geschehen.

Informationen zur Behebung dieses Problems finden Sie in den ausführlichen Anweisungen hier.

Erstellen einer Wartungssitzung

Um ein Gerät zu warten, erstellen Sie eine Wartungssitzung, indem Sie eine Funktion auswählen. Jedes Mal, wenn der Azsphere-Befehl während der Sitzung ausgegeben wird, wird die ausgewählte Funktion an das Gerät übergeben, sodass das Gerät den Befehl trotz seines gesperrten Zustands ausführen kann. Die Funktionsdatei wird nicht dauerhaft auf dem Gerät gespeichert, sodass das Gerät gesperrt und geschützt bleibt. Wenn später ein anderer Computer ohne Zugriff auf die Funktionsdatei an das Gerät angefügt wird, kann das Gerät nicht geändert werden.

So erstellen Sie eine Wartungssitzung:

  1. Verbinden Sie das Gerät über die Programmier- und Debugschnittstelle mit dem PC.

  2. Verwenden Sie den Befehl azsphere device capability select mit dem Parameter --capability-file<capability-file> . Ersetzen Sie <capability-file> durch den Dateipfad, den Sie beim Herunterladen der Funktion angegeben haben.

    Nachdem Sie die Datei ausgewählt haben, wird Ihre Sitzung gestartet. Jedes Mal, wenn der Azsphere-Befehl während der Sitzung ausgeführt wird, werden die Funktionsinformationen an das Gerät übergeben, wodurch die Kommunikation entsperrt wird. Die Funktion wird auf Ihrem Computer gespeichert und ist mit Ihren Windows- oder Linux-Anmeldedaten verknüpft, nicht mit Ihrer Azure Sphere-Anmeldung. Die Wartungssitzung gilt für alle azsphere-Befehle, die von Ihrem Computer auf das Gerät gerichtet sind, nicht nur für Befehle, die über die aktuelle Eingabeaufforderung ausgeführt werden.

Verwenden Sie zum Beenden der Wartungssitzung den Befehl azsphere device capability select --none .

Wenn dieser Befehl erfolgreich ist, werden die Funktionsinformationen nicht mehr an das Gerät übergeben. Wenn Sie die Sitzung nicht beenden, wird bei der nächsten Ausgabe eines azsphere-Befehls von diesem Computer die aktuelle Gerätefunktion zusammen mit dem Befehl übergeben, sodass der Befehl fehlschlägt, wenn Sie mit einem anderen Gerät arbeiten. Wenn Sie die Funktionsdatei löschen, ohne die Wartungssitzung zu beenden, werden Sie mit dem nächsten Befehl gewarnt, dass die ausgewählte Funktionsdatei fehlt, und die Auswahl für weitere Befehle wird gelöscht.