Handbuch zur Herstellung von IoT Core

Hinweis

Informationen zur vorherigen Version finden Sie im IoT Core-Fertigungshandbuch für v5.x.

Denken Sie an Massenproduktionsgeräte, die Windows 10 IoT Core ausführen? Verwenden Sie die Windows ADK IoT Core-Add-Ons, um Bilder zu erstellen, die Sie schnell auf neue Geräte flashen können.

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

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

Sie können Einzelhandelsbilder 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).

Für OEM-Formatbilder werden Ihre Anpassungen in Paketdateien (.cab) umgebrochen. Pakete ermöglichen OEMs, ODMs, Entwicklern und Microsoft zusammenarbeiten, um Sicherheits- und Featureupdates für Ihre Geräte bereitzustellen, ohne auf die Arbeit der anderen zu stompen.

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

Ab dem Windows 10 IoTCore RS5 November 2019 "11 B"-Version (Os Version 17763.865) werden Standortdienste für IoT Core standardmäßig auf "off" 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

Kit-Generatoren sollten sich auf Lab 1c beziehen: Hinzufügen von Dateieinstellungen und Registrierungseinstellungen zu einem Bild für Anweisungen zum Erstellen eines benutzerdefinierten Bilds mit diesen Registrierungseinstellungen

Szenarien

Konzepte

Um den Prozess zum Erstellen und Bereitstellen Windows IoT Core-Images klar zu verstehen, müssen einige Konzepte und Terminologie zuerst definiert werden.

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

  1. Testen Sie alle Anpassungen, die im Bild enthalten sind, um sicherzustellen, dass sie ordnungsgemäß funktionieren. Dazu gehören Apps, Einstellungen, Treiber oder Board-Supportpakete (BSPs).
  2. Installieren Sie Testzertifikate auf Ihrem PC, und verpacken Sie Ihre Anpassungen in .CAB Dateien.
  3. Erstellen Sie ein Test-Windows 10 IoT Core-Image, das Ihre Anpassungen umfasst, zusammen mit dem IoT Core-Paket und allen Updates aus Ihrem Hardwarehersteller.
  4. Flash das Bild auf ein Gerät und testen Sie, ob es funktioniert. Sie können die in das Testbild integrierten Testtools verwenden, um Probleme zu beheben, die auftreten können.
  5. Nachdem Sie überprüft haben, dass alles ordnungsgemäß funktioniert, erhalten Sie ein gültiges Einzelhandelszertifikat und signieren Sie Ihre Anpassungen mit Ihrem Einzelhandelszertifikat. Anschließend sollten Sie die Anpassung erneut in neue .CAB Dateien packen.
  6. Erstellen Sie ein Einzelhandelsimage mit ihren signierten .CAB Dateien, und flashen Sie das Bild auf Ihren Geräten.

iot core image creation process

Begriff

Pakete

Pakete (.cab Dateien) sind die logischen Bausteine von IoT Core. Sie enthalten alle Dateien, Bibliotheken, Registrierungseinstellungen, ausführbare 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 die genaue Kontrolle von Updates: ein Paket ist die kleinste dienstbare Einheit auf dem Gerät.

Jedes Paket enthält:

  • Der Inhalt des Pakets, z. B. eine signierte Treiber-Binärdatei oder eine signierte Appx-Binärdatei.
  • Eine Paketdefinitionsdatei (.wm.xml) gibt den Inhalt des Pakets an und wo sie im endgültigen Bild platziert werden sollen. Weitere Informationen finden Sie im Verzeichnis %SRC_DIR%\Pakete\ aus dem Windows ADK IoT Core-Add-On-Kit für verschiedene Beispiele von Paketdateien. Sehen Sie sich beispielsweise Appx.IoTCoreDefaultApp.wm.xmlan.
  • Eine Signatur. Ein Paket kann mit einem Test- oder Einzelhandelszertifikat signiert werden.

Das pkggen Tool kombiniert diese Elemente in signierten Paketen. Unsere Beispiele umfassen Skripts: createpkgund , die pkggen aufrufen, um Pakete für unsere Treiber, Apps und createprovpkgEinstellungen zu erstellen.

Featuremanifeste (FMs)

Nachdem Sie alles in Pakete eingefügt haben, verwenden Sie Featuremanifestdateien (FM-Dateien), um zu listen, welche Ihrer Pakete in das endgültige Bild gehören.

Sie können so viele FMs in ein Bild wie gewünscht verwenden. In diesem Leitfaden verweisen wir 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.

Sie werden auflisten, welche Features mithilfe dieser Tags hinzugefügt werden sollen:

  • <BasePackages>: Pakete, die Sie immer in Ihre Bilder eingeschlossen haben, z. B. Ihre Basis-App.
  • <Features>\<OEM>: Andere einzelne Pakete, die für ein bestimmtes Produktdesign spezifisch sind.

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 die Ausführung aus buildfm oem. Führen Sie nach dem Ändern der BSPFM-Datei die Ausführung aus buildfm bsp <bspname>. 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, in der Regel von einem Boardhersteller bereitgestellt. Der Boardhersteller kann regelmäßig Updates für das Board bereitstellen, die Ihre Geräte erhalten und anwenden können. Sie können auch eigene BSP erstellen, wenn der Boardhersteller keines bereitstellt, und Sie verfügen über den entsprechenden Satz von Software- und Treiberdateien. Unterstützte BSPs werden hier aufgeführt.

Vollständige Flash Aktualisieren von Bilddateien

Vollständige Flash Update-Dateien (FFU) sind Bilddateien, die bereitgestellt werden können (aka). "flashed") auf ein bestimmtes Hardwaregerät. Wenn Sie eine FFU-Datei auf ein Gerät flashen, wird alle erforderlichen Software gleichzeitig auf diesem Gerät installiert. Eine FFU-Bilddatei bündelt Startlaster, 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 auf 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-Apps ausgeführt werden. Wenn mehrere Vordergrund-App im Bild enthalten ist, sollte nur eine als automatischer Start auf dem Start festgelegt werden.
  • 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 so konfigurieren, dass sie automatisch gestartet werden.

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

Erstellen des Bilds: ImgGen und die Bildkonfigurationsdatei (OEMInput.xml)

Um das endgültige Bild zu erstellen, verwenden Sie das imggen Tool mit einer Bildkonfigurationsdatei, OEMInput.xml Datei.

Die Bildkonfigurationsdatei enthält:

  • 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 den entsprechenden bspfm.xml unter <devicelayoutpackages> definiert.

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

  • Der ReleaseType ( entweder Produktion oder Test).

    Einzelhandelsbuilds: Wir empfehlen, Einzelhandelsbilder frühzeitig in Ihrem Entwicklungsprozess zu erstellen, um zu überprüfen, ob alles funktioniert, wenn Sie bereit sind, zu versenden.

    Diese Builds enthalten alle aktivierten Sicherheitsfeatures.

    Um diesen Buildtyp zu verwenden, müssen alle Codesignaturzertifikate (nicht testen) mithilfe von Einzelhandels-Codesignaturzertifikaten signiert werden.

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

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

    Diese Builds haben einige Sicherheitsfeatures deaktiviert, mit denen Sie entweder testsignierte oder produktionssignierte Pakete verwenden können.

    Zu diesen Builds gehören 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 Einzelhandelsbuilds Testbuilds
Image release type ReleaseType: Produktion ReleaseType: Testen
Paketfreigabetyp Nur Produktionstyppakete werden unterstützt Sowohl Produktionstyp als auch Testtyp werden unterstützt.
Testsignierte Pakete Nicht unterstützt Unterstützte
IOT_ENABLE_TESTSIGNING-Funktion muss enthalten sein.
Codeintegritätsprüfung Unterstützt. Standardmäßig ist dies aktiviert. Unterstützt. Standardmäßig wird keine Richtlinie erzwungen.

OK, versuchen wir es

Beginnen Sie hier: Abrufen der Tools, die zum Anpassen Windows IoT Core erforderlich sind.