我是building a Windows 10 IoT Core image的Raspberry Pi 3B,它需要在EFIESP分区的根目录中包含一个自定义的config.txt
文件。
我有edited the MyApp.FilesAndRegKeys.wm.xml file包含经过编辑的config.txt
文件,如下所示:
<onecorePackageInfo
targetPartition="EFIESP"
releaseType="Production"
ownerType="OEM" />
<files>
<file
destinationDir="$(runtime.bootDrive)"
source="config.txt"
name="config.txt" />
</files>
但是buildimage MyApp test
命令给出了文件冲突错误:
错误:[00:00:01] onecore \ base \ cbs \ mobile \ iuvalidator \ packagevalidationrules.cpp, PackageValidationRules :: Rule_DetectFileCollisions,第716行,错误, 错误-检测到文件冲突,在软件包中找到文件'\ config.txt' “ MyOEMName.MyApp.FilesAndRegKeys”和“ RASPBERRYPI.RPi2.BootFirmware”。
如果我将name="config.txt"
更改为name="config2.txt"
,则没有错误,并且文件创建成功。但是我希望它替换现有文件,而不是创建一个新文件。我在config.txt
或C:\IoT-ADK-AddonKit
的任何地方都看不到原始的C:\BSP
文件,因此我不确定如何编辑此现有程序包或强制进行替换。
答案 0 :(得分:1)
如果要编辑config.txt文件,则可以在映像生成后对其进行编辑。插入已闪烁图像的SD卡。您将在EFIESP驱动器中找到config.txt文件,如下所示:
参考:“ R-Pi configuration file”和“ CONFIG.TXT”
更新:使用修改后的config.txt文件构建IoT核心版映像。
config.txt是在软件包(RASPBERRYPI.RPi2.BootFirmware.cab)中提供的。因此,我们需要使用修改后的config.txt文件重新生成RASPBERRYPI.RPi2.BootFirmware.cab。您可以按照以下步骤操作:
D:\NewCab
。您可以在EFIESP驱动器中找到它们(可以在闪存的SD卡中找到EFIESP驱动器):RPi_UEFI.pkg.xml
文件生成新的CAB文件:<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) Microsoft Corporation. All rights reserved.
-->
<Package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
Owner="RASPBERRYPI"
Component="RPi2"
SubComponent="BootFirmware"
OwnerType="OEM"
ReleaseType="Production"
Platform="RPi2"
Partition="EFIESP"
BinaryPartition="false"
xmlns="urn:Microsoft.WindowsPhone/PackageSchema.v8.00">
<Components>
<OSComponent>
<Files>
<File
Source="bootcode.bin"
Name="bootcode.bin"
DestinationDir="$(runtime.root)"/>
<File
Source="config.txt"
Name="config.txt"
DestinationDir="$(runtime.root)"/>
<File
Source="fixup.dat"
Name="fixup.dat"
DestinationDir="$(runtime.root)"/>
<File
Source="fixup_cd.dat"
Name="fixup_cd.dat"
DestinationDir="$(runtime.root)"/>
<File
Source="fixup_x.dat"
Name="fixup_x.dat"
DestinationDir="$(runtime.root)"/>
<File
Source="kernel.img"
Name="kernel.img"
DestinationDir="$(runtime.root)"/>
<File
Source="LICENCE.broadcom"
Name="LICENCE.broadcom"
DestinationDir="$(runtime.root)"/>
<File
Source="start.elf"
Name="start.elf"
DestinationDir="$(runtime.root)"/>
<File
Source="start_cd.elf"
Name="start_cd.elf"
DestinationDir="$(runtime.root)"/>
<File
Source="start_x.elf"
Name="start_x.elf"
DestinationDir="$(runtime.root)"/>
</Files>
</OSComponent>
</Components>
</Package>
在iot-adk-addonkit中启动IoTCoreShell-arm.cmd
并导航到路径D:\NewCab
并运行以下命令:
pkggen RPi_UEFI.pkg.xml
您将在工作文件夹中看到一个RASPBERRYPI.RPi2.BootFirmware.cab
。
使用新生成的RASPBERRYPI.RPi2.BootFirmware.cab
替换此路径C:\Program Files (x86)\Windows Kits\10\MSPackages\retail\arm\fre
中的默认值
之后,当您构建映像时,将在其中添加已编辑的config.txt。