yqa 发表于 2020-3-11 19:03:43

Rk3399从固件中提取文件系统,及文件系统img镜像制作,文件系统更新

AIO-3399C-UBUNTU16.04-GPT-20190304-1227.img文件系统(success)
AIO-3399C-UBUNTU16.04-GPT-20190304-1227.img为firefly官方完整固件,该固件中ubuntu文件系统可以正常运行openface_sdk中的例子。下面提取该固件中的ubuntu文件系统:
1、提取文件系统
首先利用SDK中自带命令rkImageMaker解压固件,命令路径为linux-sdk/tools/linux/Linux_Pack_Firmware/rockdev/
$: ./rkImageMaker -unpack /home/yqa/tools/AIO-3399C-UBUNTU16.04-GPT-20190304-1227.img/home/yqa/tools/AIO-3399C-UBUNTU16.04-GPT-20190304-1227
#格式./rkImageMaker -unpack<固件><解压后存放路径>
解压后生成boot.bin和firmware.img
继续对firmware.img进行解压
$:mkdir /home/yqa/tools/AIO-3399C-UBUNTU16.04-GPT-20190304-1227/output
$: ./afptool -unpack /home/yqa/tools/AIO-3399C-UBUNTU16.04-GPT-20190304-1227/firmware.img /home/yqa/tools/AIO-3399C-UBUNTU16.04-GPT-20190304-1227/output/
$:cd /home/yqa/tools/AIO-3399C-UBUNTU16.04-GPT-20190304-1227/output
$:cd Image
boot.imgrootfs.img    trust.imguboot.img
$:mkdir rootfs
$: sudo mount rootfs.img rootfs
$: cd rootfs
$: ls
至此固件解压文件系统完成,将此文件系统打包为tar.gz格式
$: tar -czvf ../rootfs.tar.gz ./
$: pwd
/home/yqa/rootfs_ubuntu/AIO-3399C-UBUNTU16.04-GPT-20190304-1227/output/Image
$:mkdir temp
$: sudo mount -t ext4 -o loop rootfs.img temp
此时rootfs.img挂载在temp下,对temp下文件系统修改后卸载rootfs.img
则rootfs.img中已经包含temp中的修改
$: sudo umount rootfs.img
2、利用rsync同步开发板中文件系统到镜像rootfs.img
将固件AIO-3399C-UBUNTU16.04-GPT-20190304-1227.img提取出来的rootfs.img烧录到开发板后,在开发板端安装openface_sdk.tar.gz等库和对文件系统进行修改完善。开发板中文件系统更改后利用rsync将开发板中修改同步到/home/yqa/rootfs_ubuntu/AIO-3399C-UBUNTU16.04-GPT-20190304-1227/output/Image/rootfs.img中
2.1在开发板的UBUNTU系统上面安装软件openssh服务端
并修改root登录权限 :
#:sudo apt-get install openssh-server
#:sudo vi /etc/ssh/sshd_config
修改PermitRootLogin选项用以确保root登录权限足够

重启开发板或者重启ssh服务
# /etc/init.d/ssh restart
2.2 PC端安装openssh客户端openssh-client
$: sudo apt-get install openssh-client
PC端安装rsync
$:sudo apt-get install rsync
2.3在PC端通过rsync命令同步开发板上的文件
$: pwd
/home/yqa/rootfs_ubuntu/AIO-3399C-UBUNTU16.04-GPT-20190304-1227/output/Image
$:mkdir temp
$: sudo mount -t ext4 -o loop rootfs.img temp
此时rootfs.img挂载在temp下,
同步数据:
$: sudo rsync -avx root@开发板IP:/temp/
开发板IP为客户端通过ifconfig确认
#:ifconfig
故同步数据:
$: sudo rsync -avx root@192.168.1.125:/temp/
测试:开发板端根目录下创建测试文件test.c利用上述命令测试同步
#: cd /
# touch test.c
pc端同步数据:
$: sudo rsync -avx root@192.168.1.125:/temp/
根据log信息同步已成功,此时查看temp下已存在test.c

页: [1]
查看完整版本: Rk3399从固件中提取文件系统,及文件系统img镜像制作,文件系统更新