使用修改后的 config.txt 文件构建 IoT Core 映像时出现文件冲突错误
File collision error building IoT Core image with modified config.txt file
我是 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
命令给出文件冲突错误:
ERROR: [00:00:01]
onecore\base\cbs\mobile\iuvalidator\packagevalidationrules.cpp,
PackageValidationRules::Rule_DetectFileCollisions, line 716, Error ,
Error - File collision detected, file '\config.txt' found in packages
'MyOEMName.MyApp.FilesAndRegKeys' and 'RASPBERRYPI.RPi2.BootFirmware'.
如果我将 name="config.txt"
更改为 name="config2.txt"
那么没有错误并且文件创建成功。但我希望它替换现有文件,而不是创建新文件。我在 C:\IoT-ADK-AddonKit
或 C:\BSP
中的任何地方都没有看到原始 config.txt
文件,所以我不确定如何编辑这个现有的包或强制进行替换。
如果你想编辑config.txt文件,你可以在镜像构建后编辑它。插入已闪烁图像的 SD 卡。您将在 EFIESP 驱动器中找到 config.txt 文件,如下所示:
参考:“R-Pi configuration file" and "CONFIG.TXT”
更新: 使用修改后的 config.txt 文件构建 IoT Core 映像.
config.txt在一个包中提供(RASPBERRYPI.RPi2.BootFirmware.cab)。所以我们需要用修改后的config.txt文件重新生成RASPBERRYPI.RPi2.BootFirmware.cab。您可以按照以下步骤操作:
- 获取构建 RASPBERRYPI 所需的所有文件。RPi2.BootFirmware.cab 并将它们复制到一个文件夹,例如
D:\NewCab
。您可以在 EFIESP 驱动器中找到它们(您可以在闪存的 SD 卡中找到 EFIESP 驱动器):
- 编辑config.txt。
- 使用此
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\MSPackages\retail\arm\fre
之后,当您构建图像时,将添加已编辑的 config.txt。
我是 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
命令给出文件冲突错误:
ERROR: [00:00:01] onecore\base\cbs\mobile\iuvalidator\packagevalidationrules.cpp, PackageValidationRules::Rule_DetectFileCollisions, line 716, Error , Error - File collision detected, file '\config.txt' found in packages 'MyOEMName.MyApp.FilesAndRegKeys' and 'RASPBERRYPI.RPi2.BootFirmware'.
如果我将 name="config.txt"
更改为 name="config2.txt"
那么没有错误并且文件创建成功。但我希望它替换现有文件,而不是创建新文件。我在 C:\IoT-ADK-AddonKit
或 C:\BSP
中的任何地方都没有看到原始 config.txt
文件,所以我不确定如何编辑这个现有的包或强制进行替换。
如果你想编辑config.txt文件,你可以在镜像构建后编辑它。插入已闪烁图像的 SD 卡。您将在 EFIESP 驱动器中找到 config.txt 文件,如下所示:
参考:“R-Pi configuration file" and "CONFIG.TXT”
更新: 使用修改后的 config.txt 文件构建 IoT Core 映像.
config.txt在一个包中提供(RASPBERRYPI.RPi2.BootFirmware.cab)。所以我们需要用修改后的config.txt文件重新生成RASPBERRYPI.RPi2.BootFirmware.cab。您可以按照以下步骤操作:
- 获取构建 RASPBERRYPI 所需的所有文件。RPi2.BootFirmware.cab 并将它们复制到一个文件夹,例如
D:\NewCab
。您可以在 EFIESP 驱动器中找到它们(您可以在闪存的 SD 卡中找到 EFIESP 驱动器):
- 编辑config.txt。
- 使用此
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\MSPackages\retail\arm\fre
之后,当您构建图像时,将添加已编辑的 config.txt。