Лаборатория 1a. Создание базового образа (create-a-basic-image)

Чтобы приступить к работе, мы создадим базовый образ Windows 10 IoT Базовая (IoT Core) и замечаем его на определенном аппаратном устройстве.

Мы создадим папку продукта, представляющую наш первый дизайн. Для нашего первого дизайна продукта мы настроим достаточно для начального устройства Интернета вещей, чтобы загрузить и запустить встроенное приложение OOBE, которое мы должны видеть на мониторе, совместимом с HDMI.

Чтобы упростить выполнение этих команд, мы установим и используем оболочку IoT Core, которая предустановит несколько часто используемых путей и переменных.

Необходимые компоненты

Убедитесь, что ваш технический компьютер имеет необходимые средства, установленные перед созданием образа IoT Core.

Ознакомьтесь с инструментами, необходимыми для настройки Windows IoT Core для подготовки технического компьютера.

Важно!

Используемая версия ADK должна соответствовать версии пакетов IoT Core, используемых ниже.

Для выполнения этого раздела потребуется следующее:

  • Оценка и развертывание Windows KiT (Windows ADK)
  • пакеты Windows 10 IoT Базовая
  • Надстройки ADK для IoT Core
  • Среда PowerShell Для Интернета вещей
  • Текстовый редактор, например Блокнот или VS Code

Создание базового образа

создать рабочую область;

  1. В Windows Обозреватель перейдите в папку, в которой установлены надстройки ADK IoT Core, например C:\IoT-ADK-AddonKit и откройте IoTCorePShell.cmd. Он должен запрашивать запуск от имени администратора.

Это загрузит модуль PowerShell, а также проверка версии пакета ADK, IoT Core. Это также проверка для тестовых сертификатов в хранилище сертификатов и, если они отсутствуют, установите их автоматически.

Устранение неполадок. Ошибка: "Система не может найти указанный путь". Если вы получите это, щелкните правой кнопкой мыши значок и измените путь в поле "Целевой" в расположение, выбранное для установки средств.

  1. В IoTCorePShell создайте рабочую область C:\MyWorkspace с именем Contoso OEM для архитектуры arm с помощью New-IoTWorkspace
New-IoTWorkspace C:\MyWorkspace Contoso arm
(or) new-ws C:\MyWorkspace Contoso arm

IoT Core поддерживает четыре архитектуры, x64,x86,arm и arm64.

В имени OEM поддерживаются только буквенно-цифровые символы, так как это используется в качестве префикса для различных созданных имен файлов.

Это создает IoTWorkspace.xml и задает номер версии для конструктора, который можно использовать для будущих обновлений. Номер первой версии по умолчанию — 10.0.0.0.0.

Необходимые пакеты, такие как Registry.Version, Custom.Cmd и Provisioning.Auto, будут автоматически импортированы в рабочую область.

PowerShell session showing setup of new IoTWorkSpace

  1. Импортируйте примеры пакетов в рабочую область. Вы можете импортировать пакеты выборочно или импортировать все.
# Importing Recovery packages from sample workspace (create-a-basic-image)
Import-IoTOEMPackage Recovery.*
(or) importpkg Recovery.*
# Below example imports all packages from the sample workspace (create-a-basic-image)
Import-IoTOEMPackage *
(or) importpkg *

Импорт Raspberry Pi BSP

Следующий шаг — принять файлы пакета поддержки Board и создать их .CAB файлы для включения в FFU-файл.

  1. Скачайте RPi_BSP.zip в локальный каталог, скажем C:\Downloads\RPi_BSP.zip.

  2. Импорт bsp с помощью Import-Io ТБ SP

Import-IoTBSP RPi2 C:\Downloads\RPi_BSP.zip
(or) importbsp RPi2 C:\Downloads\RPi_BSP.zip

Дополнительные сведения о доступных BSPs см. в Windows 10 IoT Базовая BSPs.

Создание тестового проекта

В среде Оболочки IoT Core создайте новую папку продукта, которая использует raspberry Pi 2 BSP. Эта папка представляет новое устройство, которое мы хотим создать, и содержит примеры файлов настройки, которые можно использовать для запуска проекта. Создание продукта с помощью Add-IoTProduct

Add-IoTProduct ProductA RPi2
(or) newproduct ProductA RPi2

Вам будет предложено ввести сведения О S МБ IOS, такие как имя производителя (имя изготовителя), семейство, SKU, BaseboardManufacturer и BaseboardProduct. Ниже приведены некоторые примеры значений:

  • Имя ИЗГОТОВИТЕЛЯ системы: Fabricam
  • Имя семейства систем: FabricamHub
  • Номер SKU системы: AI-001
  • Стрелка изготовителя базовой доски
  • Продукт базовой доски: Raspberry Pi 2

Имя BSP совпадает с именем папки для BSP. Вы можете увидеть, какие BSPS доступны, просматривая C:\MyWorkspace\Source-<arch>\BSP папки.

При этом создается папка: C:\MyWorkspace\Source-<arch>\Products\\ProductA

New Product

файл OemCustomization.cmd

Каждый образ содержит файл oemcustomization.cmd , который будет выполняться при каждой загрузке устройства. Вы можете изменить этот файл для настройки того, что выполняется при загрузке. Этот файл находится C:\MyWorkspace\Source-<arch>\Products\\ProductA в этом примере. Содержимое файла выглядит следующим образом:

@echo off
REM OEM Customization Script file
REM This script if included in the image, is called everytime the system boots.

reg query HKLM\Software\IoT /v FirstBootDone >nul 2>&1

if %errorlevel% == 1 (
    REM Enable Administrator User
    net user Administrator p@ssw0rd /active:yes
    if exist C:\Data\oobe (
        call folderpermissions.exe 'C:\Data\oobe -e'
    )
REM - Enable the below if you need secure boot/bitlocker
REM Enable Secureboot
REM if exist c:\IoTSec\setup.secureboot.cmd  (
REM    call c:\IoTSec\setup.secureboot.cmd
REM )

REM Enable Bitlocker
REM if exist c:\IoTSec\setup.bitlocker.cmd  (
REM    call c:\IoTSec\setup.bitlocker.cmd
REM )
    reg add HKLM\Software\IoT /v FirstBootDone /t REG_DWORD /d 1 /f >nul 2>&1
)

REM The below should be called on every boot
if exist C:\RecoveryConfig\Recovery.BcdEdit.cmd (
    call C:\RecoveryConfig\Recovery.BcdEdit.cmd
)

REM Set the crashdump file locations to data partition, set on every boot.
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v DedicatedDumpFile /t REG_SZ /d C:\Data\DedicatedDumpFile.sys /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v DumpFile /t REG_SZ /d C:\Data\MEMORY.DMP /f

Примечание.

Обратите внимание, что функции безопасности, такие как BitLocker и SecureBoot, по умолчанию отключены для пользовательского тестового образа. Если вы хотите включить эти функции (в образ розничной торговли), вы можете раскомментировать соответствующие строки в файле, прежде чем создавать образ.

Примечание.

Помните, что команды в этом файле выполняются с правами локальной системы.

Сборка пакетов

В оболочке IoT Core вы можете подготовить среду к созданию продуктов, создав все пакеты в рабочих папках с помощью New-IoTCabPackage:

New-IoTCabPackage All
(or) buildpkg All

Примечание.

Если при создании пакетов в тестовом режиме возникают ошибки SignTool, выполните установку installoemcerts.cmd тестовых сертификатов на компьютере технического специалиста.

Создание образа

  1. Удалите все съемные накопители, включая карта Micro SD и все USB-накопители флэш-памяти.

  2. Создайте файл образа FFU, введя следующую команду в среде PowerShell IoT Core с помощью New-IoTFFUImage:

New-IoTFFUImage ProductA Test
(or) buildimage ProductA Test

Это создает файл FFU с базовым изображением по адресу C:\MyWorkspace\Build\<arch>\ProductA\Test. Этот тестовый образ будет включать дополнительные средства, которые можно использовать для отладки. Создание окончательного файла FFU займет около 10 до 30 минут.

Чтобы направить все выходные данные в консоль вместо файла журнала, добавьте -Verbose флаг, например приведенный ниже.

new-IoTFFUImage -Verbose ProductX Test

Примечание.

Если вы получаете 0x80070005 или 0x800705b4 в виде кода ошибки, отключите все внешние диски (включая микро SD карта и USB-накопители) и повторите попытку. Если это не работает, вернитесь к настройке компьютера и скачайте примеры и убедитесь, что все установлено.

Flash a Windows IoT Core image

Теперь, когда файл образа FFU создан, вы можете использовать этот файл для флэш-памяти и развертывания eimage на устройстве. Перечисленные ниже действия по вспышке файла образа FFU на конкретных устройствах производителя.

Предварительные требования и требования

Для выполнения этого раздела потребуется следующее:

  • Панель мониторинга Windows IoT Core (только Raspberry Pi)
  • Средство обновления Dragonboard (только Qualcomm DragonBorad)
  • Средство "Образы развертывания" и "Обслуживание" (DICM) (только на устройствах Intel)

Так как мы используем Raspberry Pi здесь, мы начнем с Raspberry Pi, но также объясним, как мигать изображения на других устройствах.

Raspberry Pi

  1. Запустите панель мониторинга Windows IoT Core.

  2. Подключите микро SD-карта к вашему техническому компьютеру и выберите его в средстве.

  3. В разделе "Настройка нового устройства" выберите Broadcomm [Raspberry Pi 2 и 3] в разделе "Тип устройства".

  4. Выберите "Пользовательский" в разделе "Сборка ОС".

  5. Нажмите кнопку "Обзор" и выберите созданный ранее файл FFU. В этом случае файл FFU находится в C:\MyWorkspace\Build\<arch>\ProductA\Test\Flash.ffuпапке . Затем нажмите кнопку Далее.

  6. Убедитесь, что карта microSD указан в разделе "Диск".

  7. При необходимости можно задать имя устройства и Администратор istrator Password selections for your device.

  8. Проверьте условия лицензионного соглашения на программное обеспечение проверка box (в правом нижнем углу) и нажмите кнопку "Установить".

IoT Dashboard dialog box in Windows settings showing new device set up

Панель мониторинга Windows IoT Core теперь откроет командное окно и использует DISM (средство обслуживания образов развертывания и управления) для вспышки файла FFU в карта microSD.

Raspberry Pi Flashing DISM

Примечание.

Кроме того, можно использовать команду DISM для ручной вспышки изображения: dism.exe /Apply-Image /ImageFile:"D:\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

После завершения процесса вспышки извлеките микроСД карта с технического компьютера и вставьте его в Raspberry Pi. Повторно подключите питание для загрузки Windows IoT Core. Вы увидите приложение По умолчанию IoT Core, в котором отображаются основные сведения об изображении.

Qualcomm

DragonBoard 410c

Qualcomm предоставило приложение Dragonboard Update Tool , которое мы будем использовать для вспышки файла образа FFU в Dragonboard 410c. Вы можете скачать версию x86 или x64 (рекомендуется использовать x64).

DragonBoard update tool

После установки средства обновления DragonBoard необходимо сначала разместить устройство DragonBoard в режиме программирования. Это делается путем установки dipswitch #1 (на задней части устройства) в положение ON :

Dragonboard Dipswitch

Подключение устройство DragonBoard на ваш технический компьютер с кабелем microUSB и питанием на борту.

Запустите средство обновления DragonBoard, найдите развернутый файл образа FFU и нажмите кнопку "Программа". Вы увидите зеленый Подключение состояние и индикатор выполнения, когда устройство мигает файл FFU.

После завершения процесса мигания отключите питание от платы, а также кабель microUSB. Затем необходимо перевернуть дипсвитч #1 обратно в положение OFF . Повторно подключите питание для загрузки Windows IoT Core.

DragonBoard Update tool position 1DragonBoard Update tool position 2

Intel

Apollo Lake/Braswell/Черри Тропа

Мы будем использовать DISM (средство управления образами развертывания и обслуживанием) и загрузочный USB-адаптер для вспышки файла образа FFU на указанное устройство Intel (Apollo Lake/Braswell/Cherry Trail). Дополнительные сведения о DISM см . здесь.

Создание usb-загрузочного диска

Сначала необходимо создать загрузочный USB-диск, который можно использовать для загрузки на указанном аппаратном устройстве Intel. Для этого можно использовать windows PE (WinPE) (дополнительные сведения о WinPE здесь).

  1. Установите WinPE из надстроек среды предварительной установки Windows ADK для Windows.

WinPE Install screen

  1. Подготовка USB-диска

USB-накопитель, который вы хотите использовать, должен быть правильно отформатирован, прежде чем можно загрузить WinPE на него. Выполните следующие действия, чтобы правильно отформатировать USB-накопитель:

  • diskpart Запуск средства из командной строки администрирования
  • Запустите list disk , чтобы просмотреть список доступных дисков
  • Запуск select disk X, где X соответствует номеру диска USB-диска.
  • Запуск clean для очистки выбранного диска

Примечание.

Если возникла следующая ошибка, выполните следующую команду convert mbr:

ERROR: Failed to format "F:"; DiskPart errorlevel -2147212244
  • Запуск create partition primary для создания первичной секции на диске
  • Запуск format fs=fat32 quick для форматирования диска
  • Выполните команду assign , чтобы назначить диск
  • Выйдите из diskpart. Usb-накопитель теперь отформатирован и готов к установке WinPE.
  1. Создание рабочих файлов WinPE

Теперь необходимо создать рабочую копию файлов Windows PE на компьютере технического специалиста. Это можно сделать с помощью программы командной строки "Среда средств развертывания и создания образов". Самый простой способ начать Deployment and Imaging Tools Environment поиск развертывания с помощью меню "Пуск".

Запустите программу командной строки "Среда средств развертывания и образов" в качестве администратора и выполните следующую команду:

copype amd64 C:\WinPE_amd64

При этом будет создана рабочая копия файлов среды предустановки Windows в C:\WinPE_amd64.

Вставьте USB-диск на компьютер технического специалиста и выполните следующую команду, чтобы установить Windows PE на USB-накопителе. Убедитесь, что вы можете заменить X буквой диска USB-диска:

MakeWinPEMedia /UFD C:\WinPE_amd64 X:
  1. Скопируйте файл FFU в корневой диск USB-диска.
  2. Вставьте USB-диск на аппаратное устройство Intel и загрузите его с USB-диска. Возможно, потребуется ввести BIOS (или меню загрузки) аппаратного устройства, чтобы указать загрузку с USB-диска.
  3. После загрузки среды Предустановки Windows появится окно командной строки. Измените диск и текущий каталог на расположение файла FFU (в зависимости от перечисления дисков в C: или D: .). и т. д.) и выполните следующую команду, чтобы запустить файл образа FFU:
dism.exe /Apply-Image /ImageFile:"C:\IoT\Workspaces\ContosoWS\Build\ARM\ProductX\Test\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

Примечание.

В большинстве случаев целевой объект хранения на борту, который будет мигать, перечисляется как PhysicalDrive0, однако при наличии нескольких устройств хранения он может перечисляться как другой номер диска. Для проверки номера диска можно использовать list disk команду diskpart .

  1. После завершения процесса вспышки отключите аппаратное устройство и удалите USB-накопитель. Повторно подключите питание к аппаратному устройству для загрузки Windows IoT Core.
Команды Diskpart
C:\>diskpart
 Microsoft DiskPart version 10.0.17134.1
 Copyright (C) Microsoft Corporation.
 On computer: LWIN-CNCY-BUILD

 DISKPART> list disk

 Disk ###  Status         Size     Free     Dyn  Gpt
 --------  -------------  -------  -------  ---  ---
 Disk 0    Online          447 GB  1024 KB        *
 Disk 1    Online          167 GB  1024 KB        *
 Disk 2    Online           14 GB      0 B        *

 DISKPART> select disk 2
 Disk 2 is now the selected disk.

 DISKPART> clean
 DiskPart succeeded in cleaning the disk.

 DISKPART> convert mbr
 DiskPart successfully converted the selected disk to MBR format.

 DISKPART> create partition primary
 DiskPart succeeded in creating the specified partition.

 DISKPART> format fs=fat32 quick
   100 percent completed

 DiskPart successfully formatted the volume.

 DISKPART> assign
 DiskPart successfully assigned the drive letter or mount point.

 DISKPART> exit
Команды WinPE
copype amd64 C:\WinPE_amd64
MakeWinPEMedia /UFD C:\WinPE_amd64 X:
Команда DISM (через WinPE на аппаратном устройстве Intel)
X:\WinPE>d:

D:\>dism.exe /Apply-Image /ImageFile:"C:\IoT\Workspaces\ContosoWS\Build\ARM\ProductX\Test\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

Дальнейшие действия

Оставьте устройство на данный момент и перейдите к лаборатории 1b: добавьте приложение в образ.