少于 1 分钟阅读 次阅读

1 需求

改系统分区为: EMMC:根分区20G,Swap8G,home10G,var20G mSATA: data分区 alt text

2 思路

之前是整个根文件系统,使用打包脚本打包,编译时,根据参数表,将根分区打包到完整的镜像中。

现在需要修改打包脚本,将要分出来的各个分区分别打包,然后修改参数表,将这些img一起打包到完整的镜像中。

3 具体做法

3.1 修改根文件系统打包工具

  • 修改完成的脚本 https://github.com/Witheart/hw_export_rootfs/tree/HomeAndVarSeparately

3.2 修改分区表和打包文件列表

diff --git a/device/rockchip/rk356x/parameter-buildroot-fit.txt b/device/rockchip/rk356x/parameter-buildroot-fit.txt
index 25fdc0248..f0e1f68bb 100644
--- a/device/rockchip/rk356x/parameter-buildroot-fit.txt
+++ b/device/rockchip/rk356x/parameter-buildroot-fit.txt
@@ -8,5 +8,5 @@ MACHINE: 0xffffffff
 CHECK_MASK: 0x80
 PWR_HLD: 0,0,A,0,1
 TYPE: GPT
-CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(trust),0x00002000@0x00008000(misc),0x00020000@0x0000a000(boot),0x00020000@0x0002a000(recovery),0x00010000@0x0004a000(baseparameter),0x00020000@0x0005a000(resource),-@0x0007a000(rootfs:grow)
+CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(trust),0x00002000@0x00008000(misc),0x00020000@0x0000a000(boot),0x00020000@0x0002a000(recovery),0x00010000@0x0004a000(baseparameter),0x00020000@0x0005a000(resource),0x02800000@0x0007a000(var),0x01400000@0x0287a000(home),0x01000000@0x03c7a000(swap),-@0x04c7a000(rootfs:grow)
 uuid:rootfs=614e0000-0000-4b53-8000-1d28000054a9
diff --git a/tools/linux/Linux_Pack_Firmware/rockdev/rk356x-package-file b/tools/linux/Linux_Pack_Firmware/rockdev/rk356x-package-file
index b5bc81296..37b10dd61 100644
--- a/tools/linux/Linux_Pack_Firmware/rockdev/rk356x-package-file
+++ b/tools/linux/Linux_Pack_Firmware/rockdev/rk356x-package-file
@@ -9,6 +9,8 @@ resource    Image/resource.img
 boot        Image/boot.img
 recovery    Image/recovery.img
 rootfs      Image/rootfs.ext4
+home            Image/home.img
+var             Image/var.img
 #oem        Image/oem.img
 #userdata    Image/userdata.img
 #backup        RESERVED

这样打包出来的镜像,swap所在分区还未格式化为swap格式,只做了占位;同理,该分区表无法决定msata的内容,需要烧录开机后进行处理。

4 文件系统自动扩展

参考《Ubuntu根文件系统分区扩展指南 - 修订版》

5 开机初始化 mSATA 数据盘和 EMMC Swap 分区

参考《Linux 开机初始化 mSATA 数据盘和 EMMC Swap 分区》

6 修改fstab

$ cat /etc/fstab
PARTLABEL=home   /home   ext4   defaults   0 2
PARTLABEL=var    /var    ext4   defaults   0 2
PARTLABEL=swap   none    swap   sw,nofail,x-systemd.device-timeout=5s         0 0
LABEL=data       /data   ext4   defaults,nofail,x-systemd.device-timeout=5s   0 2

留下评论