1.在开发板上安装async
apt-get async
2.在另一台linux机器上执行命令拷贝文件系统
注意: 这里使用root权限或者账户
mkdir rootfs
rsync -avx root@192.168.1.3:/ rootfs
3.制作空镜像文件
先去开发板上验证自己的系统使用了多少空间,然后输入命令制作一个空的img文件,比用的大或者随便写个大的都行,后边还会压缩的
dd if=/dev/zero of=rk3588_20240103.img bs=1M count=10000
4.格式化镜像文件,并加入 linuxroot 卷标
mkfs.ext4 -F -L linuxroot rk3588_20240103.img
5.创建镜像文件
挂载目录
mkdir ubuntu-mount
挂载空的 img 文件
mount rk3588_20240103.img ubuntu-mount
将文件系统拷贝到 img 挂载的路径目录下,rootfs是同步过来的文件夹
cp -rfp rootfs/* ubuntu-mount
卸载镜像
umount ubuntu-mount
检查并修复rk3588_230417.img镜像的文件系统
e2fsck -p -f rk3588_20240103.img
精简rk3588.img镜像文件的大小
resize2fs -M rk3588_20240103.img
6.二次打包完整固件,安装软件包
apt-get install lib32stdc++6
7.解压
将下载下来的打包程序拷贝到主板中
通过网盘分享的文件:firefly-linux-repack.zip
链接: https://pan.baidu.com/s/1brrb1BGvJc2g_HJm5f4S0w 提取码: m762
将开发板原生镜像系统放到同级目录执行
./unpack.sh
解压包之后会有个output目录
将rk3588_20240103.img改名为rootfs.img替换掉output目录下的rootfs.img
再执行打包命令
pack.sh
里边有个判断主板类型的地方有bug,获取不到正确主板类型,我在里边直接写死了RK3588
执行完成后同目录会出现一个new_update.img
参考文档(大部分操作步骤是按照这个来的)
https://blog.csdn.net/qq_59164231/article/details/135358996