嵌入式爱好者

3399Ubuntu系统做更改后生成Update.img文件的方法

2021-8-5 09:11| 发布者: 兵兵兵兵鸭| 查看: 1619| 评论: 2

类目: RK3399产品系列  >  Ubuntu     文档编号: 530

在使用Ubuntu系统进行软件开发,开发完成后需要批量生产,就会产生这个需求,因为Ubuntu系统可以通过apt-get命令来获取安装自己所开发软件所需要的一些运行环境。
这边提供将修改后的Ubuntu文件系统生成Update.img文件以供直接烧写到新的开发板或者核心板上的思路。
将ubuntu.img挂载到做完更改的板子上,将文件系统的内容替换然后将更改后的ubuntu.img放在源码目录下进行编译生成Update.img。这样就可以直接给开发板烧写做完更改后的Ubuntu系统。
将ubuntu.img挂载到开发板文件的方式有很多种,请选择自己熟悉的方式进行操作,这边只列举一个简单而麻烦的方式
将初始ubuntu.img文件copy到开发板中(ftp、U盘等方式),然后在终端进行操作,mount ubuntu.img target(target为文件夹名字,可自己更改创建),然后将根目录下的文件替换target挂载的文件,然后umount target卸载镜像。然后将镜像copy到VMware中,替换源码目录下的ubuntu.img(源码目录为OK3399-desktop-release/rootfs/ubuntu.img),然后运行builid脚本按照手册描述进行编译烧录。

以上方式有一点不足是如果自己所做的更改较大,在将根目录文件替换到挂载镜像的文件夹时,挂载镜像的大小不足以容纳所更改的项目,下边提供一个给镜像扩容的方法。(以下操作在虚拟机中完成,扩容后再将镜像copy到开发板中挂载)
镜像文件的扩容用到两个命令
sudo fsck.ext3 -f IMAGE
sudo resize2fs IMAGE SIZE
第一个命令为检测IMAGE文件现在的大小和目录结构等,完成检测后才可以对IMAGE文件大小进行操作。操作时SIZE为块的数量、一个块的大小为4K(即当SIZE为783770时,783770*4=3135080,大概为3.2G,1250000时为5G)
镜像文件的扩容需要在挂载之前进行操作,此时验证的ubuntu.img最大为5.1G,超过此容量在进行编译等操作时不会出现报错,但是最终在开发板上运行时会导致无法正常启动的情况,所以目前情况下,请不要将其容量设置为5G以上。

最后提供一个思路,是将开发板的文件系统通过rsync挂载到服务器上通过dd指令来直接复制文件系统到新镜像中,这边只提供最后一种思路的理论方法,有兴趣的可以自行尝试

创建一个新镜像,然后复制内容

以下命令中 new.img oldtarget newtarget 请按照实际情况自行更改

1、 新建镜像文件

dd if=/dev/zero of=new.img bs=1M count=5120

2、 分别创建新旧镜像挂载点

mkdir oldtarget

mkdir newtarget

3、 分别将新旧镜像与loop设备关联

losetup /dev/loop0 ubuntu.img

losetup /dev/loop1 new.img

4、 创建新镜像的文件系统

mke2fs -j /dev/loop1

5、 挂载镜像

mount /dev/loop0 oldtarget

mount /dev/loop1 newtarget

6、 将数据填充到新镜像中

(cd oldtarget; tar czf -) | (cd newtarget; xzf)

7、 卸载文件系统以及释放loop设备

umount /dev/loop0

umount /dev/loop1

losetup -d /dev/loop0

losetup -d /dev/loop1

在执行数据填充(cd oldtarget; tar czf -) | (cd newtarget; xzf)这个命令时,如果出现tar:在读取文件时文件发生了改变,则说明操作不成功。请检查命令行的路径。操作正常时无提示息,并需要等待较长的一段时间,请耐心等待。



已解决

未解决
1

只是看看

刚表态过的朋友 (1 人)

发表评论

最新评论

引用 兵兵兵兵鸭 2021-10-26 09:31
ubuntu大小与rootfs分区大小有关,修改分区大小请查看知识库文章
引用 兵兵兵兵鸭 2021-9-29 16:36
20年资料默认rootfs分区为7G,剩余空间分配给userdate,21年资料已将userdate分区取消,rootfs分区扩容为12 ...

查看全部评论(2)

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-4-20 19:20

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部