#创作者激励#OpenHarmony系统分区调整方法 原创

软通动力HOS
发布于 2023-3-28 09:07
浏览
2收藏

【本文正在参加2023年第一期优质创作者激励计划】

背景介绍

本文硬件平台采用RK3568开发板,主要讲解RK3568的烧写分区相关知识点。主要介绍的是RK3568如何修改系统分区大小。我们在开发验证过程中时常会发现根目录空间时常不足。前段时间在发开一个多媒体项目时候,要处理推送很多库到开发板,最终导致开发空间使用率达到98%,严重影响了开发板的运行。

Filesystem Size  Used Avail Use% Mounted on
tmpfs 981M   60K  981M   1% /dev
tmpfs 981M     0  981M   0% /mnt
tmpfs 981M     0  981M   0% /storage
/dev/block/mmcblk0p6 754M  743M  12M  98% /
/dev/block/mmcblk0p7 120M   56M   64M  47% /vendor
/dev/block/mmcblk0p11 11G  1.2G   10G  11% /data
/dev/block/mmcblk0p9 47M   36K   47M   1% /chip_prod
/dev/block/mmcblk0p8 47M   36K   47M   1% /sys_prod
/data/service/el2/100/hmdfs/account 11G  1.2G   10G  11% /mnt/hmdfs/100/account
/data/service/el2/100/hmdfs/non_account 11G  1.2G   10G  11% /mnt/hmdfs/100/non_account

简单分析

首先在devices中的关键信息中查看根目录对应/dev/block/mmcblk0p6挂在在哪个系统分区。

total 0
lrwxrwxrwx 1 ueventd ueventd 20 2023-02-10 10:38 boot_linux -> /dev/block/mmcblk0p4
lrwxrwxrwx 1 ueventd ueventd 20 2023-02-10 10:38 chip-prod -> /dev/block/mmcblk0p9
lrwxrwxrwx 1 root root    20 2023-02-10 10:38 misc -> /dev/block/mmcblk0p2
lrwxrwxrwx 1 ueventd ueventd 20 2023-02-10 10:38 ramdisk -> /dev/block/mmcblk0p5
lrwxrwxrwx 1 ueventd ueventd 20 2023-02-10 10:38 resource -> /dev/block/mmcblk0p3
lrwxrwxrwx 1 ueventd ueventd 20 2023-02-10 10:38 sys-prod -> /dev/block/mmcblk0p8
lrwxrwxrwx 1 root root    20 2023-02-10 10:38 system -> /dev/block/mmcblk0p6
lrwxrwxrwx 1 ueventd ueventd 20 2023-02-10 10:38 uboot -> /dev/block/mmcblk0p1
lrwxrwxrwx 1 root root    21 2023-02-10 10:38 updater -> /dev/block/mmcblk0p10
lrwxrwxrwx 1 ueventd ueventd 21 2023-02-10 10:38 userdata -> /dev/block/mmcblk0p11
lrwxrwxrwx 1 root root    20 2023-02-10 10:38 vendor -> /dev/block/mmcblk0p7

通过查询结果可以看出磁盘挂载在system分区,知道分区之后,解决问题就简单多了。

解决方法

第一步:修改系统分区大小的配置

找到系统镜像配置文件build/xxx/images/mkimage/system_image_conf.txt,(其中xxx代表公司产品),然后修改文件第二行参数,可以调整到2G左右。

2097152000
--fs_type=ext4
--file_context obj/base/security/selinux/file_contexts.bin
--dac_config ../../build/ohos/images/mkimage/dac.txt

第二步:修改系统分区地址参数配置

找到地址参数配置文件device/board/isoftstone/yangfan-j/loader/parameter.txt, 找到system分区,修改系统分区大小,需要特别注意的是,在系统分区地址之后的所有分区的起始地址,都需要同步修改,保证分区地址不重叠。
#创作者激励#OpenHarmony系统分区调整方法-鸿蒙开发者社区
注意:

@符号前表示分区的大小,单位都是 sector(512Bytes)

@符号后表示分区的起始地址

括号中表示分区的名字

比如 system分区起始地址为 0x0003B000,大小为 0x00800000 sectors(2G)

第三部:编译验证

全量编译产品镜像:./build.sh --product-name rk3568 –ccache

编译完成后,导入out\yangfan-j\packages\phone\images镜像中的cfg文件,导入后仔细查看system分区以及之后所有分区的地址信息是否已经修改并和device/board/isoftstone/yangfan-j/loader/parameter.txt中一致。
#创作者激励#OpenHarmony系统分区调整方法-鸿蒙开发者社区
如果导入cfg文件后system分区之后地址没有发生变化,可以手动重新导入out\yangfan-j\packages\phone\images\parameter.txt,如图:
#创作者激励#OpenHarmony系统分区调整方法-鸿蒙开发者社区
板子启动后直接查询磁盘空间情况,修改后结果ok

Filesystem Size  Used Avail Use% Mounted on
tmpfs 981M   60K  981M   1% /dev
tmpfs 981M     0  981M   0% /mnt
tmpfs 981M     0  981M   0% /storage
/dev/block/mmcblk0p6 1.9G  745M  1.1GM  38% /
/dev/block/mmcblk0p7 120M   56M   64M  47% /vendor
/dev/block/mmcblk0p11 11G  1.2G   10G  11% /data
/dev/block/mmcblk0p9 47M   36K   47M   1% /chip_prod
/dev/block/mmcblk0p8 47M   36K   47M   1% /sys_prod
/data/service/el2/100/hmdfs/account 11G  1.2G   10G  11% /mnt/hmdfs/100/account
/data/service/el2/100/hmdfs/non_account 11G  1.2G   10G  11% /mnt/hmdfs/100/non_account

以上就是基于RK3568开发板修改eMMC分区的思路,本文中所使用的思路和方法适用于其他芯片不同的开发板。希望对您在开发板的使用过程中能有所帮助。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
4
收藏 2
回复
举报
2条回复
按时间正序
/
按时间倒序
万方寂定
万方寂定

0x00800000 sectors是否应为4G

回复
2023-5-24 19:30:34
物联风景
物联风景

不错不错,非常好!

回复
2023-5-29 15:11:37
回复
    相关推荐