共用方式為


實驗室 1a:建立基本映射 (create-a-basic-image)

若要開始使用,我們將建立基本 Windows 10 IoT 核心版 (IoT 核心版) 映射,並將其刷新至特定硬體裝置。

我們將建立代表第一個設計的產品資料夾。 針對我們的第一個產品開發,我們將自定義足以讓IoT核心裝置開機並執行內建的OOBE應用程式,我們應該能夠在HDMI相容的監視器上看到該應用程式。

為了更輕鬆地執行這些命令,我們將安裝和使用IoT核心版殼層,其預設為數個常用的路徑和變數。

必要條件

在建立IoT核心版映像之前,請確定您的技術人員計算機已安裝必要的工具。

請參閱 取得自定義 Windows IoT 核心版 所需的工具,讓您的技術人員計算機準備就緒。

重要

使用的 ADK 版本必須符合下面使用的 IoT 核心套件版本。

您需要安裝下列工具來完成本節:

  • Windows 評定與部署 KiT (Windows ADK)
  • Windows 10 IoT 核心版 套件
  • IoT 核心版 ADK 附加元件
  • IoT 核心版 PowerShell 環境
  • 記事本 或 VS Code 之類的文字編輯器

建立基本映像

建立工作區

  1. 在 Windows 檔案總管中,移至您安裝 IoT Core ADK 附加元件的資料夾,例如 C:\IoT-ADK-AddonKit,然後開啟 IoTCorePShell.cmd。 它應該會提示您以系統管理員身分執行。

這會載入 PowerShell 模組,並檢查 ADK、IoT 核心版套件的版本。 這也會檢查證書存儲中的測試憑證,如果不存在,則會自動安裝它們。

疑難解答:錯誤:「系統找不到指定的路徑」。 如果您取得此專案,請以滑鼠右鍵按下圖示,並將 [目標] 中的路徑修改為您選擇安裝工具的位置。

  1. 在IoTCorePShell中,使用New-IoTWorkspace為架構arm建立具有 OEM 名稱Contoso的新工作區C:\MyWorkspace
New-IoTWorkspace C:\MyWorkspace Contoso arm
(or) new-ws C:\MyWorkspace Contoso arm

IoT 核心版支援四種架構:x64、x86、arm 和 arm64。

OEM 名稱中僅支援英數位元,因為這會作為各種產生檔名的前置詞。

這會產生IoTWorkspace.xml,並設定設計的版本號碼,以供日後更新使用。 第一個版本號碼預設為10.0.0.0。

系統會自動將登錄.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

下一個步驟是採用面板支援套件檔案和額外/建置其.CAB檔案,以包含在 FFU 檔案中。

  1. 將RPi_BSP.zip下載到本機目錄,例如 C:\Downloads\RPi_BSP.zip

  2. 使用 Import-IoTBSP 匯入 bsp

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

如需可用 BSP 的詳細資訊,請參閱 Windows 10 IoT 核心版 BSP

建立測試專案

從 IoT 核心殼層環境,建立使用 Raspberry Pi 2 BSP 的新產品資料夾。 此資料夾代表我們想要建置的新裝置,並包含可用來啟動專案的範例自定義檔案。 使用 Add-IoTProduct 建立新產品

Add-IoTProduct ProductA RPi2
(or) newproduct ProductA RPi2

系統會提示您輸入 SMBIOS 資訊,例如製造商名稱(OEM名稱)、系列、SKU、BaseboardManufacturer和BaseboardProduct。 以下是一些範例值:

  • 系統 OEM 名稱: Fabricam
  • 系統系列名稱: FabricamHub
  • 系統 SKU 號碼: AI-001
  • 基礎板製造商 箭號
  • 基礎板產品: Raspberry Pi 2

BSP 名稱與 BSP 的資料夾名稱相同。 您可以在資料夾中查看哪些 BSP 可供使用 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 核心殼層中,使用 New-IoTCabPackage 建置工作資料夾中的所有套件,讓您的環境準備好建立產品:

New-IoTCabPackage All
(or) buildpkg All

注意

如果您在測試模式中建置套件時收到 SignTool 錯誤,請執行 installoemcerts.cmd 以在技術人員計算機上安裝測試憑證。

建置映像

  1. 退出任何卸載式儲存磁碟驅動器,包括 Micro SD 記憶卡和任何 USB 快閃磁碟驅動器。

  2. 使用 New-IoTFFUImage 在 IoT Core PowerShell 環境中輸入下列命令,以建置 FFU 映像檔:

New-IoTFFUImage ProductA Test
(or) buildimage ProductA Test

這會在建置具有基本映像 C:\MyWorkspace\Build\<arch>\ProductA\Test的 FFU 檔案。 此測試映像將包含可用於偵錯用途的其他工具。 建置最終 FFU 檔案大約需要 10 到 30 分鐘才能完成。

若要將所有輸出導向控制台,而不是記錄檔,請新增 -Verbose 旗標,例如以下的輸出。

new-IoTFFUImage -Verbose ProductX Test

注意

如果您收到0x80070005或0x800705b4作為錯誤碼,請拔除所有外部磁碟驅動器(包括 micro SD 記憶卡和 USB 拇指磁碟驅動器),然後再試一次。 如果無法運作,請返回設定 您的計算機並下載範例 ,並確定所有專案都已安裝。

刷新 Windows IoT 核心版映像

現在已建置您的 FFU 映像檔,您可以擷取此檔案,並將該映射部署到您的裝置。 下面列出將 FFU 映像檔刷新到特定製造商裝置的步驟。

必要條件/需求

您需要安裝下列工具來完成本節:

  • Windows IoT 核心版儀錶板 (僅限 Raspberry Pi)
  • Dragonboard Update Tool (僅限 Qualcomm DragonBorad)
  • 部署映像處理與服務與管理 (DICM) 工具 (僅限 Intel 裝置)

因為我們在這裡使用Raspberry Pi,因此我們將從Raspberry Pi開始,但也說明如何在其他裝置上快閃影像。

Raspberry Pi

  1. 啟動 Windows IoT 核心版儀錶板

  2. 將您的 Micro SD 記憶卡插入您的技術人員電腦,然後在工具中加以選取。

  3. 從 [設定新的裝置] 區段,選取 [裝置類型] 下的 [Raspberry Pi 2 和 3]。

  4. 選取 [OS 組建] 底下的 [ 自定義 ]。

  5. 按兩下 [瀏覽 ] 並瀏覽並選取您稍早建立的 FFU 檔案。 在這裡情況下,您的 FFU 檔案位於 C:\MyWorkspace\Build\<arch>\ProductA\Test\Flash.ffu。 然後按一下 [下一步]。

  6. 確認您的 microSD 記憶卡列在 [ 磁碟驅動器 ] 選取範圍底下。

  7. 您可以選擇性地設定裝置的 [裝置名稱] 和 [管理員 istrator 密碼] 選項。

  8. 核取 [ 我接受軟體授權條款 ] 複選框(右下角),然後按兩下 [ 安裝]。

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

Windows IoT 核心版儀錶板現在會開啟命令視窗,並使用 DISM(部署映射服務與管理工具)將 FFU 檔案刷新到您的 microSD 記憶卡。

Raspberry Pi Flashing DISM

注意

或者,您也可以使用 DISM 命令手動刷新映像: dism.exe /Apply-Image /ImageFile:"D:\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

一旦閃爍程式完成,請從技術人員計算機退出 microSD 記憶卡,並將其插入Raspberry Pi 中。 重新連線電源以開機 Windows IoT 核心版。 您應該會看到 IoT核心版默認應用程式,其中顯示映像的基本資訊。

DragonBoard 410c

Qualcomm 已提供 Dragonboard 更新工具 應用程式,我們將用來將 FFU 圖像檔刷新至 Dragonboard 410c。 您可以下載 x86 或 x64 版本(我們建議 x64)。

DragonBoard update tool

安裝 DragonBoard 更新工具之後,您必須先將 DragonBoard 裝置放在程式設計模式中。 這是藉由將 dipswitch #1 (在裝置背面) 設定為 ON 位置來完成:

Dragonboard Dipswitch

連線 DragonBoard 裝置到您的技術人員電腦,並搭配微USB 纜線和面板電源。

執行 DragonBoard 更新工具、瀏覽您要部署的 FFU 映射檔,然後按 [程式] 按鈕。 當裝置閃爍 FFU 檔案時,您應該會看到綠色的 連線 狀態和進度列。

一旦閃爍程式完成,請中斷面板的電源,以及 microUSB 纜線。 然後,您必須將 dipswitch #1 翻回 OFF 位置。 重新連線電源以開機 Windows IoT 核心版。

DragonBoard Update tool position 1DragonBoard Update tool position 2

英特爾

阿波羅湖/布拉斯韋爾/櫻桃小徑

我們將使用 DISM (部署映射和服務管理工具) 和可開機的 USB 棒,將 FFU 映射檔刷新到指定的 Intel 裝置 (Apollo Lake/Braswell/Cherry Trail)。 您可以在這裡找到 DISM 的新增資訊。

建立USB可開機磁碟驅動器

我們必須先建立可開機的USB磁碟驅動器,以便用來在指定的Intel硬體裝置上開機。 我們可以針對此使用 Window PE (WinPE)(WinPE 的新增資訊在這裡)。

  1. Windows ADK Windows 預安裝環境附加元件安裝 WinPE。

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

這會在 C:\WinPE_amd64建立 Windows PE 檔案的工作複本。

將USB磁碟驅動器插入技術員電腦上,並執行此命令以在USB磁碟驅動器上安裝WindowsPE。 請確定您可以使用 USB 磁碟驅動器的驅動器號取代 X:

MakeWinPEMedia /UFD C:\WinPE_amd64 X:
  1. 將 FFU 檔案複製到 USB 磁碟驅動器的根磁碟驅動器。
  2. 將您的 USB 磁碟驅動器插入 Intel 硬體裝置,並從 USB 磁碟驅動器開機。 您可能需要輸入硬體裝置的 BIOS(或開機功能表),以指定要從 USB 磁碟驅動器開機。
  3. Windows PE 環境開機後,您會看到命令視窗。 將磁碟驅動器和目前目錄變更為 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 核心版。
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 命令 (透過 Intel 硬體裝置上的 WinPE)
X:\WinPE>d:

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

後續步驟

暫時讓裝置保持開啟,並繼續前往 實驗室 1b:將應用程式新增至您的映射