實驗室 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 之類的文字編輯器
建立基本映像
建立工作區
- 在 Windows 檔案總管中,移至您安裝 IoT Core ADK 附加元件的資料夾,例如 C:\IoT-ADK-AddonKit,然後開啟 IoTCorePShell.cmd。 它應該會提示您以系統管理員身分執行。
這會載入 PowerShell 模組,並檢查 ADK、IoT 核心版套件的版本。 這也會檢查證書存儲中的測試憑證,如果不存在,則會自動安裝它們。
疑難解答:錯誤:「系統找不到指定的路徑」。 如果您取得此專案,請以滑鼠右鍵按下圖示,並將 [目標] 中的路徑修改為您選擇安裝工具的位置。
- 在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 等必要套件匯入工作區。
- 將範例套件匯入工作區。 您可以選擇選擇性地匯入套件或全部匯入。
# 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 檔案中。
將RPi_BSP.zip下載到本機目錄,例如
C:\Downloads\RPi_BSP.zip
。
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
。
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
以在技術人員計算機上安裝測試憑證。
建置映像
退出任何卸載式儲存磁碟驅動器,包括 Micro SD 記憶卡和任何 USB 快閃磁碟驅動器。
使用 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
啟動 Windows IoT 核心版儀錶板。
將您的 Micro SD 記憶卡插入您的技術人員電腦,然後在工具中加以選取。
從 [設定新的裝置] 區段,選取 [裝置類型] 下的 [Raspberry Pi 2 和 3]。
選取 [OS 組建] 底下的 [ 自定義 ]。
按兩下 [瀏覽 ] 並瀏覽並選取您稍早建立的 FFU 檔案。 在這裡情況下,您的 FFU 檔案位於
C:\MyWorkspace\Build\<arch>\ProductA\Test\Flash.ffu
。 然後按一下 [下一步]。確認您的 microSD 記憶卡列在 [ 磁碟驅動器 ] 選取範圍底下。
您可以選擇性地設定裝置的 [裝置名稱] 和 [管理員 istrator 密碼] 選項。
核取 [ 我接受軟體授權條款 ] 複選框(右下角),然後按兩下 [ 安裝]。
Windows IoT 核心版儀錶板現在會開啟命令視窗,並使用 DISM(部署映射服務與管理工具)將 FFU 檔案刷新到您的 microSD 記憶卡。
注意
或者,您也可以使用 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 更新工具之後,您必須先將 DragonBoard 裝置放在程式設計模式中。 這是藉由將 dipswitch #1 (在裝置背面) 設定為 ON 位置來完成:
連線 DragonBoard 裝置到您的技術人員電腦,並搭配微USB 纜線和面板電源。
執行 DragonBoard 更新工具、瀏覽您要部署的 FFU 映射檔,然後按 [程式] 按鈕。 當裝置閃爍 FFU 檔案時,您應該會看到綠色的 連線 狀態和進度列。
一旦閃爍程式完成,請中斷面板的電源,以及 microUSB 纜線。 然後,您必須將 dipswitch #1 翻回 OFF 位置。 重新連線電源以開機 Windows IoT 核心版。
英特爾
阿波羅湖/布拉斯韋爾/櫻桃小徑
我們將使用 DISM (部署映射和服務管理工具) 和可開機的 USB 棒,將 FFU 映射檔刷新到指定的 Intel 裝置 (Apollo Lake/Braswell/Cherry Trail)。 您可以在這裡找到 DISM 的新增資訊。
建立USB可開機磁碟驅動器
我們必須先建立可開機的USB磁碟驅動器,以便用來在指定的Intel硬體裝置上開機。 我們可以針對此使用 Window PE (WinPE)(WinPE 的新增資訊在這裡)。
- 從 Windows ADK Windows 預安裝環境附加元件安裝 WinPE。
- 準備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。
- 建立 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:
- 將 FFU 檔案複製到 USB 磁碟驅動器的根磁碟驅動器。
- 將您的 USB 磁碟驅動器插入 Intel 硬體裝置,並從 USB 磁碟驅動器開機。 您可能需要輸入硬體裝置的 BIOS(或開機功能表),以指定要從 USB 磁碟驅動器開機。
- 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
命令來驗證驅動器號。
- 一旦閃爍程式完成,請關閉硬體裝置,並移除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:將應用程式新增至您的映射。