我们将为 Windows IoT 核心版映像创建一些测试文件和注册表项,并将它们打包,以便在分发给你的客户后可以对其进行服务。 由于你添加到映像的文件和注册表项通常不是特定于体系结构的,因此我们建议你创建一个可以在所有设备架构中使用的通用包。
目标
- 为你的设备创建一个包含注册表和文件设置的包
- 打包注册表/文件设置包,使其可以包含在 FFU 映像中
- 修改 IoT 加载项工具包项目配置文件以包含你的注册表/文件设置包
- 生成并部署包含注册表/文件设置包的 FFU 映像
我们将为映像创建一些测试文件和注册表项,再次将它们打包,以便客户在获得了映像之后便可以使用。
我们将将这些内容添加到常见功能清单 (OEMCommonFM.xml) ,该清单用于 x86、x64 和 Arm 版本。
对于此实验,我们将启动一个新产品 ProductB,以便稍后我们可以使用 IoT 示例应用获取我们设备的 IP 地址并验证我们的文件和注册密钥是否有效。
先决条件
请确保已根据之前的创建基本映像创建了一个基本映像。
要完成此操作,需要安装以下工具:
- Windows 评估和部署工具包 (Windows ADK)
- IoT 核心版 Powershell 环境
- Windows 10 IoT 核心版程序包
- IoT 核心版 ADK 加载项
- 文本编辑器,比如记事本或 VS Code。
创建测试文件
使用记事本创建一些示例文本文件并添加一些随机文本,以使这些文件不为空。 对于我们的示例,我们创建了两个文件,分别名为 TestFile1.txt 和 TestFile2.txt。
生成测试文件包
打开 IoT 核心版 PowerShell 环境:以管理员身份运行
C:\MyWorkspace\IoTCorePShell.cmd并使用 Add-IoTFilePackage 创建文件包:# Array of files with destinationDir, Source and destinationFilename $myfiles = @( ("`$(runtime.system32)","C:\Temp\TestFile1.txt", ""), ("`$(runtime.bootDrive)\OEMInstall","C:\Temp\TestFile2.txt", "TestFile2.txt") ) Add-IoTFilePackage Files.Configs $myfiles这会在
C:\MyWorkspace\Common\Packages\Files.Configs中创建一个新文件夹。这还会将 FeatureID FILES_CONFIGS 添加到
C:\MyWorkspace\Common\Packages\OEMCOMMONFM.xml文件中。类似
$(runtime.system32)的变量将在C:\Program Files (x86)\Windows Kits\10\Tools\bin\i386\pkggen.cfg.xml中定义。使用 Add-IoTRegistryPackage 创建注册表包:
# Array of files with destinationDir, Source and destinationFilename $myregkeys = @( ("`$(hklm.software)\`$(OEMNAME)\Test","StringValue", "REG_SZ", "Test string"), ("`$(hklm.software)\`$(OEMNAME)\Test","DWordValue", "REG_DWORD", "0x12AB34CD") ) Add-IoTRegistryPackage Registry.Settings $myregkeys这会在
C:\MyWorkspace\Common\Packages\Registry.Settings创建一个新文件夹。这还会将 FeatureID REGISTRY_SETTINGS 添加到
C:\MyWorkspace\Common\Packages\OEMCOMMONFM.xml文件中。使用 New-IoTCabPackage 生成包:
New-IoTCabPackage Files.Configs (or) buildpkg Files.Configs New-IoTCabPackage Registry.Settings (or) buildpkg Registry.Settings该软件包已生成并在
C:\MyWorkspace\Build\<arch>\pkgs提供。
创建新产品
创建新产品文件夹。
Add-IoTProduct ProductB RPi2 (or) newproduct ProductB RPi2这将提示你输入 SMBIOS 值。
更新项目的配置文件
使用 Add-IoTProductFeature 更新产品测试配置以包含功能:
Add-IoTProductFeature ProductX Test FILES_CONFIGS -OEM
(or) addfid ProductX Test FILES_CONFIGS -OEM
Add-IoTProductFeature ProductX Test REGISTRY_SETTINGS -OEM
(or) addfid ProductX Test REGISTRY_SETTINGS -OEM
生成和测试映像
再次生成 FFU映像,如创建基本映像中所述。 只需运行 New-IoTFFUImage 命令:
New-IoTFFUImage ProductX Test
(or)buildimage ProductX Test
构建 FFU 文件后,便可以按照刷入 Windows IoT 核心版映像中的说明,将其刷入硬件设备。
验证已添加的文件和注册表项
为了验证文件是否已添加到设备上,请执行以下操作:
将你的技术人员 PC 和设备连接到同一个以太网网络。
例如,若要通过有线网络进行连接,请插入以太网电缆。 若要直接连接到设备,请将网络电缆直接从你的技术人员 PC 插入设备。
在测试应用上,记下设备的 IP 地址。 例如 10.100.0.100。
在技术人员 PC 上,打开文件资源管理器并输入设备 IP 地址(带有 \ 前缀和 \c$ 后缀):
\\10.100.0.100\c$
使用设备名称、默认管理员帐户和密码登录。 (默认为:minwinpc\Administrator / p@ssw0rd)
检查设备上是否存在文件。 对于我们的示例,查找:
\\10.100.0.100\c$\Windows\system32\TestFile1.txt
\\10.100.0.100\c$\OEMInstall\TestFile2.txt
验证注册表项
在技术人员 PC 上,使用 SSH 客户端(例如 PuTTY)连接你的设备。 例如,使用 IP 地址和端口 22 连接到设备。 然后使用管理员帐户和密码登录。 (要了解更多信息,请参阅 SSH)。
从 SSH 客户端的命令行中,向系统查询注册表项。 在我们的示例中,执行此命令以检查注册表项是否存在:
reg query HKLM\Software\Fabrikam\TestSSH 客户端应该显示你的测试值。
或者,你可以使用连接设备的 Windows 设备门户中的“运行命令”来运行
reg query命令。
输出窗口应显示你的测试值。