湃兔核提供了为i2S-MP15X核心板提供了更新包的工具,用于更新文件到开发板的板载Flash内。这里需要用到两个工具

  • BuildUpdatePackage : 用于为SD更新方式制作更新包

  • BuildSDCardUpdater: 用于制作SD启动卡的镜像,包含更新系统和更新包

 

BuildUpdatePackage工具

BuildUpdatePackage可以制作更新包,方便使用SD更新方式,制作的更新包文件后缀为swu。BuildUpdatePackage工具在04-Tools⁩/⁨ProgrammingTool⁩目录下。制作前先将需要更新的文件放置在目录下,更新的文件从Yocto编译得到,文件列表如下:

  • *.bootfs.ext4.gz

  • *.rootfs.ext4.gz

  • *.userfs.ext4.gz

  • *.vendor.ext4.gz

  • tf-a-stm32mp157a-i2cmp15xbe-trusted.stm32

  • u-boot-stm32mp157a-i2cmp15xbe-trusted.stm32

例如i2cmp15xb-i2smp15xd512e4-trusted-qt5目录。

$ tar xvf BuildUpdatePackagev2.tar.gz
$ cd BuildUpdatePackage
$ ls -l i2cmp15xb-i2smp15xd512e4-trusted-qt5
total 572100
-rw-r--r-- 1 i2som i2som   6199437 May 21 14:25 i2som-image-bootfs-openstlinux-eglfs-i2cmp15xbe-20200520235358.bootfs.ext4.gz
-rw-r--r-- 1 i2som i2som 574754709 May 21 14:25 i2som-image-qt-openstlinux-eglfs-i2cmp15xbe-20200520235358.rootfs.ext4.gz
-rw-r--r-- 1 i2som i2som   1276479 May 21 14:25 i2som-image-userfs-openstlinux-eglfs-i2cmp15xbe-20200521002922.userfs.ext4.gz
-rw-r--r-- 1 i2som i2som   2670752 May 21 14:25 st-image-vendorfs-openstlinux-eglfs-i2cmp15xbe-20200520235358.vendorfs.ext4.gz
-rw-r--r-- 1 i2som i2som    245360 Apr 23 23:05 tf-a-stm32mp157a-i2cmp15xbe-trusted.stm32
-rw-r--r-- 1 i2som i2som    749444 Apr 23 23:05 u-boot-stm32mp157a-i2cmp15xbe-trusted.stm32

文件说明参考如下表

File NameDescription
i2som-image-bootfs-openstlinux-eglfs-i2cmp15xbe-20200520235358.bootfs.ext4.gzi2som-image-qt系统的boot分区镜像压缩文件,从Yocto构建得到。
i2som-image-qt-openstlinux-eglfs-i2cmp15xbe-20200520235358.rootfs.ext4.gzi2som-image-qt系统的rootfs压缩镜像压缩文件,从Yocto编译得到。
st-image-vendorfs-openstlinux-eglfs-i2cmp15xbe-20200520235358.vendorfs.ext4.gzi2som-image-qt系统的vendor分区镜像文件,从Yocto编译得到。
i2som-image-userfs-openstlinux-eglfs-i2cmp15xbe-20200521002922.userfs.ext4.gzi2som-image-qt系统的userfs分区镜像文件,从Yocto编译得到。
tf-a-stm32mp157a-i2cmp15xbe-trusted.stm32Trusted boot chain的FSBL启动文件。
u-boot-stm32mp157a-i2cmp15xbe-trusted.stm32Trusted boot chain的SSBL启动文件。

除了使用Yocto整体编译出需要的镜像,开发者也可以单独编译来替换对应镜像文件里的文件,达到快速验证测试的目的。
Linux kernel uImage和DTB文件,可以替换在bootfs.ext4.gz文件。需要先解压bootfs.ext4.gz文件,然后挂载后替换问题,然后再打包为bootfs.ext4.gz文件,然后替换原来的就可以了。

gzip -d bootfs.ext4.gz
mount bootfs.ext4 /mnt
cp uImage /mnt
cp dtb /mnt
umount /mnt
gzip bootfs.ext4.gz

Linux kernel modules,可以替换在rootfs.ext4.gz的"/lib/modules"目录下。
应用程序文件,可以放置在userfs.ext4.gz。
Basic boot chain时的启动文件,直接替换对应的文件即可。

制作更新包

使用BuildUpdatePackage工具,打包需要更新的文件为单一文件,方便烧写。
制作qt5系统的更新包

./CreateUpdatePackage-trusted i2cmp15xb-i2smp15xd512e4-trusted-qt5 trusted-qt5

制作weston系统的更新包

./CreateUpdatePackage-trusted i2cmp15xb-i2smp15xd512e4-trusted-weston trusted-weston

执行命令后,会生成swu缀的文件,例如i2cmp15xb-i2smp15xd512e4-trusted-qt5_1.0_20200615084851.swu,这是打包好的更新包文件。

BuildSDCardUpdater工具

BuildSDCardUpdater工具可以把从BuildUpdatePackage工具已经制作好的swu更新文件,打包为SDCard可以启动更新系统镜像,实现自动从SDCard启动并自动把目标文件更新至开发板。

制作更新镜像

制作前,请确认当前系统已经安装有kpartx, sfdisk, losetup软件包。
Ubuntu/Debian系统安装软件包

sudo apt-get install kpartx fdisk mount dosfstools e2fsprogs

BuildSDCardUpdater工具存放在资源包的04-Tools⁩/⁨ProgrammingTool⁩目录下。

$ tar xvf BuildSDCardUpdaterv2.tar.gz
$ cd BuidSDCardUpdater

把制作好的更新包swu文件放在mfgimages-i2cmp15xbe-trusted-qt5或mfgimages-i2cmp15xbe-trusted-weston目录下,然后开始制作更新镜像。

制作qt5系统的SD卡更新镜像

$ ls mfgimages-i2cmp15xbe-trusted-qt5
$ i2cmp15xb-i2smp15xd512e4-trusted-qt5_1.0_20200615084851.swu
$ sudo ./CreateSDUpdateImage 3 mfgimages-i2cmp15xbe-trusted-qt5 trusted-qt5

制作完成后,会生成img.gz的文件,例如i2CMP15XB-i2SMP15XD512E4-SDCardUpdate-trusted-qt5-20200617090648.img.gz。
可以之前把制作好的更新包swu文件放在mfgimages-i2cmp15xbe-trusted-qt5目录下,原来的删除即可。

制作weston系统的SD卡更新镜像

ls mfgimages-i2cmp15xbe-trusted-weston
i2cmp15xb-i2smp15xd512e4-trusted-qt5_1.0_20200615084851.swu
sudo ./CreateSDUpdateImage 3 mfgimages-i2cmp15xbe-trusted-weston trusted-weston

可以之前把制作好的更新包swu文件放在mfgimages-i2cmp15xbe-trusted-weston目录下,原来的删除即可。
制作完成后,会生成img.gz的文件,例如i2CMP15XB-i2SMP15XD512E4-SDCardUpdate-trusted-weston-20200617100648.img.gz。
img.gz文件可以直接写到Micro SD卡,使用SD更新方式,更新相应的系统到i2S-MP15X核心板板载的Flash内。

作者:SteveChen  创建时间:2024-09-18 16:46
最后编辑:SteveChen  更新时间:2024-09-18 16:46
上一篇:
下一篇: