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