Handbuch zur Herstellung von IoT Core

Hinweis

Die vorherige Version finden Sie unter IoT Core manufacturing guide for v5.x.

Planen Sie die serienmäßige Herstellung von Geräten, die Windows 10 IoT Core ausführen? Verwenden Sie die Windows ADK IoT Core-Add-Ons, um Images zu erstellen, für die Sie schnell einen Flash auf neue Geräte ausführen können.

Sie können Testimages erstellen, die Tools zum schnellen Zugriff auf Geräte und zum Ändern der Geräte enthalten. Testimages eignen sich hervorragend für:

  • Entwickler, Hardwarehersteller und Hersteller (OEMs), die neue Gerätedesigns ausprobieren
  • Amateure und Organisationen, die Geräte erstellen, die für die Ausführung in nicht vernetzten oder kontrollierten Netzwerkumgebungen konzipiert sind

Sie können verkaufsfähige Images erstellen, die für öffentliche oder Unternehmensnetzwerke sicherer gemacht werden können, während sie weiterhin Updates erhalten.

Sie können Anpassungen hinzufügen, einschließlich Apps, Einstellungen, Hardwarekonfigurationen und Board-Supportpakete (BSPs).

Bei OEM-Images werden Ihre Anpassungen in Paketdateien (CAB) umschlossen. Mithilfe von Paketen können OEMs, ODMs, Entwickler und Microsoft zusammenarbeiten, um Sicherheits- und Featureupdates auf Ihren Geräten bereitzustellen, ohne die Arbeit des anderen zu beeinträchtigen.

Ihr IoT Core-Gerät mit Windows 10-Standortdienst informiert Ihre Apps und Dienste, wo Sie sich befinden oder wo Sie waren.

Ab der Version Windows 10 IoTCore RS5 November 2019 „11 B“ (Betriebssystemversion 17763.865) werden Standortdienste für IoT Core standardmäßig auf „deaktiviert“ konfiguriert. Wenn Sie ein OEM sind und die Standortdienste aktivieren möchten, führen Sie die folgenden Schritte aus. Dies gilt nur für IoT Core.

Legen Sie unter dem Registrierungsschlüssel HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionCapabilityAccessManagerCapabilitieslocationeditiondie folgenden Werte fest:

  • name=InitSystemGlobalConsentDenied value="0" valueType=REG_DWORD
  • name=InitUserGlobalConsentDenied value="0" valueType=REG_DWORD

Ersteller von Kits sollten sich für die Erstellung eines benutzerdefinierten Images mit diesen Registrierungseinstellungen an den Anweisungen unter Lab 1c: Hinzufügen von Dateien und Registrierungseinstellungen zu einem Image orientieren.

Szenarien

Konzepte

Damit Sie den Prozess zum Erstellen und Bereitstellen von Windows IoT Core-Images gut verstehen, müssen zunächst einige Konzepte und Terminologie definiert werden.

Der Prozess zum Erstellen eines Windows IoT Core-Images umfasst eine Reihe von Schritten, die hier aufgeführt sind:

  1. Testen Sie alle Anpassungen, die im Image enthalten sein sollen, um sicherzustellen, dass sie ordnungsgemäß funktionieren. Dazu gehören Apps, Einstellungen, Treiber oder Board-Supportpakete (BSPs).
  2. Installieren Sie Testzertifikate auf Ihrem PC, und packen Sie Ihre Anpassungen in CAB-Dateien.
  3. Erstellen Sie ein Windows 10 IoT Core-Testimage, das Ihre Anpassungen sowie das IoT Core-Paket und alle Updates Ihres Hardwareherstellers enthält.
  4. Führen Sie für das Image einen Flash auf ein Gerät aus, und testen Sie, ob es funktioniert. Sie können die in das Testimage integrierten Testtools verwenden, um Probleme zu beheben, die auftreten können.
  5. Nachdem Sie überprüft haben, dass alles ordnungsgemäß funktioniert, rufen Sie ein gültiges Einzelhandelszertifikat ab, und signieren Sie Ihre Anpassungen mit Ihrem Einzelhandelszertifikat. Anschließend sollten Sie die Anpassung in neue CAB-Dateien packen.
  6. Erstellen Sie ein verkaufsfähiges Image mit Ihren signierten CAB-Dateien, und führen Sie für das Image einen Flash auf Ihre Geräte aus.

IoT Core-Imageerstellung

Begriff

Pakete

Pakete (CAB-Dateien) sind die logischen Bausteine von IoT Core. Sie enthalten alle Dateien, Bibliotheken, Registrierungseinstellungen, ausführbaren Dateien und Daten auf dem Gerät. Von Gerätetreibern zu Systemdateien muss jede Komponente in einem Paket enthalten sein. Diese modulare Architektur ermöglicht eine präzise Steuerung von Updates: Ein Paket ist die kleinste servicefähige Einheit auf dem Gerät.

Paketinhalt:

  • Der Inhalt des Pakets, z. B. eine signierte Treiberbinärdatei oder eine signierte Appx-Binärdatei.
  • Eine Paketdefinitionsdatei (.wm.xml) gibt den Inhalt des Pakets an und wo er im endgültigen Image platziert werden soll. Im %SRC_DIR%\Packages\-Verzeichnis des Windows ADK IoT Core Add-On-Kits finden Sie verschiedene Beispiele für Paketdateien. Sehen Sie sich beispielsweise Appx.IoTCoreDefaultApp.wm.xml an.
  • Eine Signatur. Ein Paket kann mit einem Test- oder Einzelhandelszertifikat signiert werden.

Das pkggen-Tool fasst diese Elemente in signierten Paketen zusammen. Zu unseren Beispielen gehören die Skripts createpkgund createprovpkg, die pkggen aufrufen, um Pakete für unsere Treiber, Apps und Einstellungen zu erstellen.

Featuremanifeste (FMs)

Nachdem Sie alles in Pakete eingefügt haben, verwenden Sie Featuremanifeste (FM-Dateien), um aufzulisten, welche Ihrer Pakete in das endgültige Image gehören.

Sie können beliebig viele FMs in einem Image verwenden. In diesem Handbuch beziehen wir uns auf die folgenden FMs:

  • OEMFM.xml enthält Features, die ein OEM zu einem Gerät hinzufügen kann, z. B. die App und ein Bereitstellungspaket.
  • BSPFM.xml enthält Features, die ein Hardwarehersteller verwenden kann, um ein Board zu definieren. Beispielsweise enthält OEM_RPi2FM.xml alle Features, die für den Raspberry Pi 2 verwendet werden.

Mithilfe dieser Tags listen Sie die Features auf, die hinzugefügt werden sollen:

  • <BasePackages>: Pakete, die Sie immer in Ihre Images aufgenommen haben, z. B. Ihre Basis-App.
  • <Features>\<OEM>: Weitere einzelne Pakete, die für ein bestimmtes Produktdesign spezifisch sein können.

Das Featurezusammenführungstool generiert die erforderlichen Featurebezeichnerpakete, die für die Wartung des Geräts erforderlich sind. Führen Sie dieses Tool aus, wenn Änderungen an den FM-Dateien vorgenommen werden. Nachdem Sie die OEM FM- oder OEM COMMON FM-Dateien geändert haben, führen Sie buildfm oemaus. Führen Sie nach dem Ändern der BSPFM-Datei buildfm bsp <bspname>aus. Diese Befehle werden aus der IoT Core-Shell ausgeführt.

Board-Supportpakete (BSPs)

Board-Supportpakete enthalten eine Reihe von Software-, Treiber- und Startkonfigurationen für ein bestimmtes Board, die normalerweise von einem Boardhersteller bereitgestellt werden. Der Boardhersteller kann regelmäßig Updates für das Board bereitstellen, die Ihre Geräte empfangen und anwenden können. Sie können auch Ihr eigenes BSP erstellen, wenn der Boardhersteller keines bereitstellt und Sie über die entsprechenden Software- und Treiberdateien verfügen. Unterstützte BSPs sind hier aufgeführt.

Imagedateien für vollständige Flashupdates

Dateien für vollständige Flashupdates (Full Flash Update, FFU) sind Imagedateien, die auf einem bestimmten Hardwaregerät bereitgestellt werden können (d. h., für sie kann ein Flash ausgeführt werden). Wenn Sie für eine FFU-Datei einen Flash auf ein Gerät ausführen, wird die gesamte erforderliche Software gleichzeitig auf diesem Gerät installiert. Eine FFU-Imagedatei bündelt Startladeprogramme, das Windows-Betriebssystem, Treiber, Peripherieimages und alle anderen erforderlichen Dateien in ein einzelnes Paket.

Vordergrund- und Hintergrund-Apps

Es gibt zwei Arten von Anwendungen, die unter Windows IoT Core ausgeführt werden können.

  • Vordergrund-Apps – diese Apps verfügen über eine Benutzeroberfläche. Nur eine App kann auf einem IoT-Gerät als Vordergrund-App ausgeführt werden. Wenn mehrere Vordergrund-Apps im Image enthalten sind, sollte nur für eine festgelegt werden, dass sie beim Systemstart automatisch gestartet wird.
  • Hintergrund-Apps – diese Apps verfügen nicht über eine Benutzeroberfläche. Mehrere Apps können auf einem IoT-Gerät als Hintergrund-Apps ausgeführt werden. Sie können eine beliebige Anzahl von Hintergrund-Apps für den automatischen Start konfigurieren.

Weitere Informationen finden Sie unter Vordergrund-Apps oder Hintergrund-Apps.

Erstellen des Images: ImgGen und die Imagekonfigurationsdatei (OEMInput.xml)

Zum Erstellen des endgültigen Images verwenden Sie das imggen-Tool mit einer Imagekonfigurationsdatei, OEMInput.xml-Datei.

Die Imagekonfigurationsdatei listet Folgendes auf:

  • Die Featuremanifeste (FMs) und die Pakete, die Sie von jedem installieren möchten.

  • Ein SoC-Chipbezeichner, der verwendet wird, um die Gerätepartitionen einzurichten. Die unterstützten Werte für soc werden in der entsprechenden bspfm.xml unter <devicelayoutpackages> definiert.

  • Ein Gerätebezeichner, der zum Auswählen des Gerätelayouts verwendet wird. Die unterstützten Werte für device werden in der entsprechenden bspfm.xml unter <oemdeviceplatformpackages> definiert.

  • Der ReleaseType (entweder Produktion oder Test).

    Verkaufsfähige Builds: Es wird empfohlen, verkaufsfähige Images frühzeitig in Ihrem Entwicklungsprozess zu erstellen, um zu überprüfen, ob alles funktioniert, wenn Sie versandbereit sind.

    Diese Builds enthalten alle aktivierten Sicherheitsfeatures.

    Zur Verwendung dieses Buildtyps muss der gesamte Code mithilfe von Einzelhandels-Codesignaturzertifikaten (nicht Testzertifikaten) signiert werden.

    Ein Beispiel finden Sie unter %SRC_DIR%\Products\SampleA\RetailOEMInput.xml.

    Testbuilds: Verwenden Sie diese Builds, um neue Versionen Ihrer Apps und Treiber auszuprobieren, die von Ihnen und Ihren Hardwareherstellerpartnern erstellt wurden.

    In diesen Builds sind einige Sicherheitsfeatures deaktiviert, was es Ihnen ermöglicht, entweder testsignierte oder produktionssignierte Pakete zu verwenden.

    Diese Builds enthalten auch Entwicklertools wie Debugtransport, SSH und PowerShell, mit denen Sie Probleme beheben können.

    Ein Beispiel finden Sie unter %SRC_DIR%\Products\SampleA\TestOEMInput.xml.

Bereich Verkaufsfähige Builds Testbuilds
Imageversionstyp ReleaseType: Produktion ReleaseType: Test
Paketversionstyp Nur Pakete des Typs „Produktion“ werden unterstützt Sowohl Produktionstyp als auch Testtyp werden unterstützt.
Testsignierte Pakete Nicht unterstützt Unterstützt
Feature IOT_ENABLE_TESTSIGNING muss aufgenommen werden.
Codeintegritätsprüfung Unterstützt. Diese Option ist standardmäßig aktiviert. Unterstützt. Standardmäßig wird keine Richtlinie erzwungen.

OK, probieren Sie es aus!

Beginnen Sie hier: Abrufen der zum Anpassen von Windows IoT Core erforderlichen Tools.