简体   繁体   中英

Yocto - How do I change the rootfs file system type

I'm trying to build vdi image with squashfs rootfs, but cannot find where to change current ext4 fs into squash. Closest solutions I found is here: How do I change the rootfs file system type used for the sdcard image in yocto? But I don't feel like this answered my problem. I am able to build.rootfs.squashfs and.rootfs.wic.vdi. Is it possible to build.rootfs.wic.vdi with squashfs root using bitbake?

Look for the configuration file of the wic command: if you search in the yocto tree or look at the logs (use bitbake -D... to get more logs), you will probably find a file name suffixed by .wks . This is the file of directives passed to wic .

In yocto environment, wic can be used on the command line. For example, to get the manual overview:

$ 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'
[...]

The --source option triggers a plugin. The manual is probably not up to date and you may need to go into the source code of the plugins ( wic is written in python) which is located in something like: ...poky/scripts/lib/wic . There you will see, the code managing the "rootfs" plugin in partition.py . You will see that only a reduced set of file system types are supported. Hopefully, squashfs is part of them. Here is the code snippet managing it:

    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)

The preceding shows that wic calls mksquashfs tool to build the file system.

Example of howto .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM