#创作者激励#OpenHarmony系统分区调整方法 原创
【本文正在参加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分区,修改系统分区大小,需要特别注意的是,在系统分区地址之后的所有分区的起始地址,都需要同步修改,保证分区地址不重叠。
注意:
@符号前表示分区的大小,单位都是 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中一致。
如果导入cfg文件后system分区之后地址没有发生变化,可以手动重新导入out\yangfan-j\packages\phone\images\parameter.txt,如图:
板子启动后直接查询磁盘空间情况,修改后结果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分区的思路,本文中所使用的思路和方法适用于其他芯片不同的开发板。希望对您在开发板的使用过程中能有所帮助。
0x00800000 sectors是否应为4G
不错不错,非常好!