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

原创 2022-06-18 16:42:00 rk3399 Ubuntu Update.img
RK3399在使用Ubuntu系统进行软件开发,开发完成后需要批量生产,就会产生这个需求,因为Ubuntu系统可以通过apt-get命令来获取安装自己所开发软件所需要的一些运行环境。
这边提供将修改后的Ubuntu文件系统生成Update.img文件以供直接烧写到新的rk3399开发板或者核心板上的思路。
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以上。

最后提供一个思路,是将RK3399开发板的文件系统通过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:在读取文件时文件发生了改变,则说明操作不成功。请检查命令行的路径。操作正常时无提示息,并需要等待较长的一段时间,请耐心等待。



相关产品 >

  • FET3399-C核心板

    飞凌RK3399安卓高性能核心板采用 采用六核Rockchip RK3399芯片,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面提升。以下将对瑞芯微芯片RK3399参数,RK3399核心板方案及其性能做具体介绍。如您对飞凌RK3399系列核心板有兴趣,欢迎咨询了解。

    了解详情
    FET3399-C核心板
  • OK3399-C开发板

    飞凌嵌入式RK3399安卓开发板主芯片采用高性能六核CPU Rockchip RK3399,GPU采用Mail-T860四核 GPU,RK3399作为目RK产品线中低功耗、高性能的代表,可满足人脸识别设备、机器人、无人机、IoT物联网领域应用。飞凌RK3399开发板在整体性能、功耗及核心面积做了大幅度优化,更加满足工业设计需求。飞凌RK3399开发板为进一步减少用户二次开发难度,开放了底板原理图,并提供了RK3399用户手册、芯片手册,加上优质的技术服务,让您的方案从构思到上市时间缩短。

    了解详情
    OK3399-C开发板

推荐阅读 换一批 换一批