湃兔更新镜像文件的制作与烧写

学习linux系统移植的三大步骤分别是UBoot、内核&设备树、根文件系统的制作与烧写。之前我已经实现了UBoot、内核、设备树的编译与烧写以及根文件的制作,但是并未对根文件系统进行烧写。现在分享根文件系统的烧写过程,每个开发版的烧写过程不一样,这里只是分享湃兔的镜像文件烧写。

一、准备材料

如萱小说网 https://www.2269.info

可以根据自己的需要准备相应材料,以下是我自己使用的:
开发环境:VMware
操作系统:ubuntu
开发版:湃兔i2S-6UB
烧写工具:SD卡

二、准备制作所需的文件

1.zImage和dtb文件,可以找开发版提供的固件,也可以自己制作,教程见内核与设备树的编译和烧写。
2.根文件系统,可以直接在ubuntu官网直接下载,也可以自己制作,教程见通过busybox制作根文件系统详细过程
3.湃兔官方提供的镜像文件制作工具,下载地址https://i2som-zh.oss-cn-beijing.aliyuncs.com/i2S-6UB-BuildSWU.tar.gz。

三、i2S-6UB-BuildSWU工具使用

1.将下载后的工具拷贝到开发环境下进行解压

sudo tar -vxf i2S-6UB-BuildSWU.tar.gz

解压后的目录如下图所示

2.可以看出制作工具中已经有一些项目案例,对其中一个项目进行编译

./mkupdate_package i2s6uby2-emmc-core

编译完成后会生成一个.swu的文件,这个就是更新固件所需的文件,如下图所示

这样更新固件已经制作完成,但是这个湃兔提供的系统,我们需要将自己制作的文件加入其中进行制作。
3.进入i2s6uby2-emmc-core项目中,查看文件目录如下图所示

文件作用见下表所示:

文件说明
core-image-base-i2c6ulxbe-20180505071829.boot.vfat设备树和内核
core-image-base-i2c6ulxbe-20180505071829.rootfs.ext4根文件系统
imx-emmc-postinstall.shshell脚本
sw-description项目文件

由此可知,只需要将.vfat.ext4文件替换成我们需要更改的内容即可。

四、打包根文件系统

使用过linux的朋友都知道根文件系统的目录结构,如下图所示

现在需要将所有的文件打包成.ext4,具体打包流程如下所示
1.将制作工具中的i2s6uby2-emmc-core项目复制一份

sudo cp -pr i2s6uby2-emmc-core ./i2s6uby2-emmc-core-test

然后将core-image-base-i2c6ulxbe-20180505071829.rootfs.ext4文件删除

cd i2s6uby2-emmc-core-test
sudo rm core-image-base-i2c6ulxbe-20180505071829.rootfs.ext4

2.创建.ext4文件

dd if=/dev/zero of=./rootfs.ext4 bs=1024 count=409600
mkfs -t ext4 ./rootfs.ext4


3.挂载.ext4文件并将根文件系统中所有文件拷贝至挂载目录下

sudo mount -o loop rootfs.ext4 /mnt
sudo cp /home/rootfs/* /mnt -avrf
sync


完成后卸载文件

 sudo umount /mnt

4.修复并调整文件大小

e2fsck -p -f rootfs.ext4
resize2fs -M rootfs.ext4


到此已经完成根文件系统的打包。

五、替换内核与设备树文件

挂载core-image-base-i2c6ulxbe-20180505071829.boot.vfat文件

sudo mount -o loop core-image-base-i2c6ulxbe-20180505071829.boot.vfat /mnt

挂载完成后便可以看到内核与设备树文件,如下图所示

然后只需将zImage.dtb名称更改一致并替换相应的文件即可,完成后记得卸载文件

sudo umount /mnt

注:拷贝时记得将设备树与内核的权健更改为777,否则更新后会启动失败。

六、制作镜像文件

因为我们将.ext4文件替换为rootfs.ext4文件,所以需要对sw-description文件进行更改,如下图所示

编译文件

./mkupdate_package i2s6uby2-emmc-core-test

完成后将编译生成的.swu文件拷贝至VFAT分区格式的SD卡内,如下图所示

七、烧写镜像文件

将具有.swu文件的sd卡插入湃兔的开发版中,启动并进入UBoot命令行,输入更新命令

setenv mmcpart 2
run bootcmd


更新完成后会有相应的日志输出,如下图所示

启动完成后会看到我们自己制作的根文件系统,如下图所示

到此我们linux系统移植的入门过程已经完成了,将系统成功移植到开发版后就可以进行应用软件和驱动的开发了,有时间再和小伙伴们一起学习系统移植。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值