1

我正在尝试使用 squashfs rootfs 构建 vdi 映像,但找不到将当前 ext4 fs 更改为 squash 的位置。我找到的最接近的解决方案在这里:如何更改 yocto 中用于 sdcard 映像的 rootfs 文件系统类型? 但我不觉得这回答了我的问题。我能够构建 .rootfs.squashfs 和 .rootfs.wic.vdi。是否可以使用 bitbake 用 squashfs root 构建 .rootfs.wic.vdi?

4

1 回答 1

1

查找命令的配置文件wic:如果在 yocto 树中搜索或查看日志(用于bitbake -D ...获取更多日志),您可能会找到一个以 . 为后缀的文件名.wks。这是传递给的指令文件wic

在yocto环境下,wic可以在命令行上使用。例如,要获得手册概览:

$ wic help overview


NAME
    wic overview - General overview of wic

DESCRIPTION
    The 'wic' command generates partitioned images from existing
    OpenEmbedded build artifacts.  Image generation is driven by
    partitioning commands contained in an 'Openembedded kickstart'
[...]

--source选项触发插件。该手册可能不是最新的,您可能需要进入插件的源代码(wic用 python 编写),它位于以下位置:...poky/scripts/lib/wic在那里,您将看到管理partition.py中“rootfs”插件的代码。您将看到仅支持一组减少的文件系统类型。希望squashfs是其中的一部分。这是管理它的代码片段:

    def prepare_rootfs_squashfs(self, rootfs, oe_builddir, rootfs_dir,
                                native_sysroot, pseudo):
        """
        Prepare content for a squashfs rootfs partition.
        """
        extraopts = self.mkfs_extraopts or '-noappend'
        squashfs_cmd = "mksquashfs %s %s %s" % \
                       (rootfs_dir, rootfs, extraopts)
        exec_native_cmd(squashfs_cmd, native_sysroot, pseudo=pseudo)

前面展示了wic调用mksquashfs工具来构建文件系统。

如何的示例。

于 2021-08-17T17:36:06.263 回答