使用 buildroot 制作文件系统,ext类型的,能够选择 ext2 , ext3, ext4
但制作之后的 rootfs.ext2 文件系统镜像大小与分区大小相同,烧写时比较大。
而且,很重要的一点,Exynos4412 的uboot中的 fastboot,烧写 system 镜像时,使用的不是上述格式的,而是使用的稀疏镜像。
稀疏镜像是一种减小镜像尺寸的方法,可以大大减小目标镜像的尺寸。
采用 make_ext4fs 工具制作的镜像,就是稀疏镜像,可以用于 exynos4412 的uboot进行烧写。
buildroot中没有直接产生稀疏镜像的配置,但可以采用安卓提供的工具进行转换。
方法一、
使用buildroot已经制作好的文件系统,此处需要使用 rootfs.tar 文件,解压后再打包即可:
mkdir system
mkdir system
tar -vxf rootfs.tar -C system
make_ext4fs -s -l 314572800 -a root -L Linux system.img system
这样制作的 system.img 就是可以使用的镜像了。
方法二、
使用buildroot制作好的 ext2镜像,通过 img2simg 工具进行转换:
img2simg 工具在 android-sdk-libsparse-utils 软件包中,直接安装即可。
img2simg rootfs.ext2 system.img
经过转换后, system.img 就是可以使用的稀疏镜像了。
附:
android-sdk-libsparse-utils 源码包是安卓工具中的一个:
https://android.googlesource.com/platform/system/core.git/+/refs/heads/main/libsparse/
参考文档:
一个版本烧录过程中记录:fdisk、mkfs.ext4、make_ext4fs、img2simg、simg2img
https://www.cnblogs.com/arnoldlu/p/11468877.html
Buildroot创建ramdisk、ext4、ubifs镜像,以及mkfs.ext4/mkfs.ubifs/cpio的使用
https://www.cnblogs.com/arnoldlu/p/17527741.html