RK3588 开发板上根文件系统导出并制作img镜像
预准备
Linux 系统获取 RK3588 开发板文件系统
烧写测试
具体流程分为三步走:
- 将开发板RK3588的整个根文件系统的文件,通过ssh拷贝到PC系统(Ubuntu);
- 将此拷贝的全部文件,加载到虚拟光盘中,制作成img文件;
- 将img文件,再烧写回RK3588开发板,进行测试。
预准备
在开发板 RK3588 上的文件系统需要安装:ssh、rsync;
本机 PC 电脑或虚拟机(Linux)上安装:ssh、rsync。
Linux 系统获取 RK3588 开发板文件系统
确保 RK3588 开发板系统上已安装 rsync
sudo apt-get install rsync
在本机上创建一个目录,用来存放 RK3588 开发板的文件系统
mkdir rootfs
同步开发板文件系统,确保本机能 ping 通开发板,执行:
#RK3588 IP 为 192.168.1.11 sudo rsync -avx RK3588@192.168.1.11:/ rootfs
执行结束后可将开发板的文件系统同步到主机上
制作镜像,用dd工具创建镜像文件,在主机执行指令(可以制作出一个大小为 3000M 的空 img 文件,大小可以修改 count 值)
dd if=/dev/zero of=rk3588.img bs=1M count=3000
/dev/zero:为虚拟盘的名字。
rk3588.img:为要建的镜像文件。
bs=1M :表示每块读写1M数据。
count=3000:拷贝块的数量。
格式化镜像文件,并加入 linuxroot 卷标
sudo mkfs.ext4 -F -L linuxroot rk3588.img
挂载镜像并往里面拷入修改后的文件系统
#创建镜像文件挂载目录 mkdir ubuntu-mount #挂载空的 img 文件 sudo mount rk3588.img ubuntu-mount #将文件系统拷贝到 img 挂载的路径目录下 sudo cp -rfp rootfs/* ubuntu-mount
卸载镜像
sudo umount ubuntu-mount
这样 rk3588.img 里就已经有刚才制作的根目录内容了,但 rk3588.img 文件大小却是定义的分区大小,不是文件系统的实际大小,所以还要经过一些处理才能发布。
检查并修复rk3588.img镜像的文件系统
sudo e2fsck -p -f rk3588.img
精简rk3588.img镜像文件的大小
sudo resize2fs -M rk3588.img
烧写测试
开发板的文件系统已经重新打包成了rk3588.img,用该文件和相应的内核文件就可生成系统镜像,烧录镜像后就可直接运行用户程序,从而省掉了重新安装包和其他配置的工作。
生成镜像文件后,就可以重新烧录到开发板进行测试
img 烧录到设备 rootfs 分区
开发板连接Windows电脑,并打开 RKDevTool 烧录工具,让开发板进入 Loading 模式;
选择 rootfs 分区,并选择前面制作的根文件系统 rk3588.img,进行烧录;
烧录进度100% 后,开发板会自动重启,进入新系统。