如何使用yoctowic创建自定义分区布局?

如何使用yoctowic创建自定义分区布局?,yocto,Yocto,这可能是一个相当简单的问题,我缺少一些东西。我正在尝试使用wic来代替定制脚本来布置引导分区。该设备是一个IMX6,在0x400处写入了uboot,还有一个fat32引导分区,用于加载/boot文件夹。。包含一些文件 /boot uImage root.squashfs splash.bmp devicetree.dts 6x_bootscript 我简要介绍了使用bootimgpartitionforwic的插件。似乎是包含文件的简单方法,但对文件名的

这可能是一个相当简单的问题,我缺少一些东西。我正在尝试使用wic来代替定制脚本来布置引导分区。该设备是一个IMX6,在0x400处写入了uboot,还有一个fat32引导分区,用于加载/boot文件夹。。包含一些文件

/boot
    uImage
    root.squashfs
    splash.bmp
    devicetree.dts
    6x_bootscript
我简要介绍了使用bootimgpartitionforwic的插件。似乎是包含文件的简单方法,但对文件名的控制不够。它可以占用整个文件夹,但我不确定如何创建包含这些特定文件的目录。复制后,文件必须具有正确的名称

# Copied from https://community.nxp.com/thread/389816
# Image Creator .wks

part u-boot --source rawcopy --sourceparams="file=u-boot.imx" --ondisk mmcblk --no-table --align 1

# Boot partition

part /boot --source bootimg-partition --ondisk mmcblk --fstype=vfat --label boot --active --align 4096 --size 8M --extra-space 0

您可以使用bootimgpartitionwic插件重命名文件。您需要在
IMAGE\u BOOT\u FILES
变量中的分号后指定新名称。下面是一个重命名“uImage->kernel”(并按原样添加u-boot.img)的示例,摘自文档:

IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
您还可以使用glob模式拾取多个文件并将它们保存到目录中(但无法重命名单个文件)。同样,doc中的一个示例:

IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
有关完整解释和更多示例,请参阅

wic映像(例如本机工具、引导加载程序)的构建时依赖项在
WKS\u文件\u dependens
variable()中定义。确保
IMAGE\u BOOT\u files
中列出的文件对各自的配方具有适当的依赖性



当然,您也可以在部署期间重命名文件,因此不需要在wic中处理重命名。如果你需要一些非常具体的东西,你也可以创建一个新的wic插件。

哦,我忽略了我真正需要的东西之一。如何计算依赖关系?所以,如果我依赖于映像_引导_文件中的一些附加文件,而这些文件不在我的rfs或initrd中,那就好了。我已经更新了答案,提到了
WKS\u文件\u dependens
。它只会最后运行wik,因此您必须记住,如果您希望包含图像,您必须记住将其添加到图像类型中。看起来英特尔wik就是这么做的,这取决于ISO的制定和文件的可用性。我喜欢它的简单性,但感觉它与使用do_image[视情况而定]的流程的其余部分分离。看起来wic虽然改善了一些东西,但在其他方面却显得笨重。如果有一个使用wic的bbclass,并且您可以将其作为图像类型的一部分继承,那么可能会更好。