为什么eMMC/UFS设备分区时最后一个分区设置为userdata且其size数值随意设置?

疑问

Android/Yocto linux eMMC/UFS块设备分区时在XML文件中最后添加userdata分区,并且其size默认不动,即使添加分区超过剩余的设置userdata分区size?
这里所说的设置userdata分区size,(以高通平台使用partitions.xml为例,其他的如MTK使用excel表格,展锐暂不介绍)中设置size_in_kb数据

<partition label="userdata" size_in_kb="425984" type="78AC-F50D-419B-A739-2ACCF8DA3335" bootable="false" readonly="false" filename="msm8916-usrfs.ext4" sparse="true"/>

Yocto linux & Android 系统中使用eMMC或者UFS作为嵌入式系统的存储器件,一般两个系统底层对eMMC或者UFS的管理均是采用Excel或者XML文件保存系统烧录信息,使用python或perl脚本解析。
实际操作时会发现要求将userdata分区置于分区信息文件(xml或Excel表)的最后一行。有没有想过一个问题:为什么这么做?曾经作为小白,没有将userdata分区置于最后一行导致烧录的开发板变砖!那么userdata分区置于分区信息文件最后一行,在系统烧录时究竟做了什么呢?userdata分区中的size_in_kb信息设置数据为什么不用管理呢?
针对Yocto linux主流使用的是ext4,Android 使用的是f2fs,都需要在源码中实现resizefs!f2fs&ext4.resizefs。
另外针对yocto linux系统一般会在对应的poky/meta-XXX/recipesXXX/conf/machine/include/target.inc文件中设置USERDATA_SIZE_EXT4大小,若要添加新分区,需要注意新添加分区的size是否会占用USERDATA分区,若占用会使得编译后使用QFIL下载镜像文件出现QFIL download failed的情况!

posted @ 2023-09-19 16:45  合滨  阅读(89)  评论(0编辑  收藏  举报