【问题标题】:How to create a custom partition layout using yocto wic?如何使用 yocto wic 创建自定义分区布局?
【发布时间】:2021-08-19 02:22:46
【问题描述】:

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

/boot
    uImage
    root.squashfs
    splash.bmp
    devicetree.dts
    6x_bootscript

我简要研究了将 bootimg-partition 用于wic 的插件。似乎是一种包含文件的简单方法,但对文件名称的控制不够。它可以占用整个文件夹,但我不确定如何使用这些特定文件创建目录。复制后文件名称必须正确。

# 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

【问题讨论】:

    标签: yocto yocto-wic


    【解决方案1】:

    您可以使用 bootimg-partition wic 插件重命名文件。您需要在 IMAGE_BOOT_FILES 变量中的分号后指定新名称。有一个从文档中获取的重命名“uImage -> kernel”(并按原样添加 u-boot.img)的示例:

    IMAGE_BOOT_FILES = "u-boot.img uImage;kernel"
    

    您还可以使用 glob 模式选择多个文件并将它们保存到目录中(但无法重命名单个文件)。同样,来自 doc 的示例:

    IMAGE_BOOT_FILES = "bcm2835-bootfiles/*;boot/"
    

    请参阅documentation for IMAGE_BOOT_FILES variable 了解完整说明和更多示例。

    wic 映像(例如本机工具、引导加载程序)的构建时依赖项在 WKS_FILE_DEPENDS 变量 (see doc for more information) 中定义。确保IMAGE_BOOT_FILES 中列出的文件对各自的配方具有适当的依赖性。


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

    【讨论】:

    • 哦,我忽略了其中一件我真正需要的东西。如何理解依赖关系?因此,如果我依赖 IMAGE_BOOT_FILES 中的一些附加文件,这些文件不在我的 rfs 或 initrd 中?
    • 好点。我已经更新了提到WKS_FILE_DEPENDS的答案。
    • 您似乎不能依赖图像类型。它只会最后运行wik,所以你必须记住,如果你想包含一个图像,你只需要记住将它添加到image_types。看起来这就是英特尔 wik 所做的,这取决于制作的 ISO 和可用的文件。我喜欢简单,但感觉与使用 do_image[depends] 的其他过程分离。看起来 wic 虽然改进了一些东西,但在其他方面看起来很笨重。如果有一个使用 wic 的 bbclass 可能会更好,并且您可以将其作为图像类型的一部分进行继承。
    猜你喜欢
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-18
    • 2018-01-23
    • 2012-10-28
    • 2017-04-11
    相关资源
    最近更新 更多