ubuntu下打包rk3568板子的镜像的笔记(单纯只是想记笔记)

确保两边都安装好了SSH和rsync
RK3568开发板上的操作
使用以下命令在RK3568的开发板上安装ssh、rsync

sudo apt-get install ssh
sudo apt-get install rsync

Ubuntu主机上的操作
使用以下命令在Ubuntu主机上安装ssh、rsync

sudo apt-get install ssh
sudo apt-get install rsync

接着在ubuntu主机上创建一个目录,用于存放导出的开发板文件系统。一下的操作都是在ubuntu主机下进行。

mkdir rootfs

使用以下命令同步RK3568开发板上的文件系统,执行完命令后可以将开发板的文件系统同步到ubuntu主机上。

sudo rsync -avx root@192.168.10.10:/ rootfs
注: root为开发板的用户名
     192.168.10.10为开发板的ip地址,这个按照自己板子的实际情况定。
     /:根目录是开发板的根目录。
     rootfs:这里是前面ubuntu主机上创建的rootfs文件夹的路径。

运行sudo rsync -avx root@192.168.10.10:/ rootfs命令可能出现的报错:

root@Ubuntu-B660M:/rootfs# sudo rsync -avx root@192.168.2.82:/ rootfs
/etc/ssh/ssh_config: line 53: Bad configuration option: permitrootlogin
/etc/ssh/ssh_config: terminating, 1 bad configuration options
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(235) [Receiver=3.1.3]

解决办法:

sudo nano /etc/ssh/ssh_config
找到 permitrootlogin 行并将其删除或注释掉(在行前加上 #)。
就可以正常运行了,我就是只遇到这个报错,如果有新遇到的根据实际报错解决。

制作根文件系统镜像,用dd命令创建镜像文件(这个镜像文件需要根据打包的板子上的文件有多大对应把count做修改)
然后使用dd命令创建一个空镜像文件。

dd if=/dev/zero of=rk3568.img  bs=1M count=4096
其中:
        /dev/zero:为虚拟盘的名字。
        rk3568.img:为要建的镜像文件。
        bs=1M :表示每块读写1M数据。
        count=4096:拷贝块的数量。

格式化镜像文件
使用以下命令格式化镜像文件,并加入linuxroot卷标。

sudo mkfs.ext4 -F -L linuxroot rk3568.img

挂载根文件镜像、并往里面拷入修改后的文件系统。

mkdir rk3568_mount
sudo mount rk3568.img rk3568_mount
sudo cp -rfp rootfs/* rk3568_mount

卸载镜像

sudo umount rk3568_mount

查看挂载信息

df -h

卸载/media/root/linuxroot,不然后面操作会提示
根据自己的查到的实际修改

sudo umount /media/root/linuxroot

经过前面的流程rk3568.img镜像文件里就有开发板的文件系统了,但rk3568.img文件大小不是文件系统的实际大小,还要经过处理才能使用。
检查并精简rk3588.img镜像的大小
使用以下命令完成操作:

1、检查修复镜像的文件系统
    sudo e2fsck -p -f rk3568.img
2、精简文件系统镜像的大小
    sudo resize2fs -M rk3568.img

以上的步骤是参考了该文章


下面是用到了辅助工具辅助把想要的镜像打包出来,注:rk3568.img需要重命名为rootfs,因为脚本里写死了。
用工具辅助,替换rootfs.img文件,然后再打成镜像文件
1、解包统一固件update.img:
这里的解包的过程是为了获取到一下文件:
output/
├── Image
│ ├── boot.img
│ ├── recovery.img
│ ├── misc.img
│ ├── rootfs.img
│ └── uboot.img
├── MiniLoaderAll.bin
├── package-file
└── parameter.txt
具体操作:
将已有系统镜像拷贝到 linux_sv_repack 目录下
执行解包脚本:./unpack-img.sh xxxxx.img
脚本成功执行完后,在./Linux_Pack_Firmware/rockdev/目录下生成output目录,就会得到上述文件了。

2、打包统一固件update.img:
将文件boot.img 、MiniLoaderAll.bin 、 parameter.txt、 trust.img、uboot.img、rootfs.img、recovery.img拷贝到linux_repack/image目录下。
注:这里替换掉自己打包好的rootfs.img文件
执行打包脚本:./pack-img.sh
最后会/home/linux_sv_repack/下生成的update.img就是镜像文件了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值