制作更新包和镜像系统
湃兔核提供了为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 Name | Description |
i2som-image-bootfs-openstlinux-eglfs-i2cmp15xbe-20200520235358.bootfs.ext4.gz | i2som-image-qt系统的boot分区镜像压缩文件,从Yocto构建得到。 |
i2som-image-qt-openstlinux-eglfs-i2cmp15xbe-20200520235358.rootfs.ext4.gz | i2som-image-qt系统的rootfs压缩镜像压缩文件,从Yocto编译得到。 |
st-image-vendorfs-openstlinux-eglfs-i2cmp15xbe-20200520235358.vendorfs.ext4.gz | i2som-image-qt系统的vendor分区镜像文件,从Yocto编译得到。 |
i2som-image-userfs-openstlinux-eglfs-i2cmp15xbe-20200521002922.userfs.ext4.gz | i2som-image-qt系统的userfs分区镜像文件,从Yocto编译得到。 |
tf-a-stm32mp157a-i2cmp15xbe-trusted.stm32 | Trusted boot chain的FSBL启动文件。 |
u-boot-stm32mp157a-i2cmp15xbe-trusted.stm32 | Trusted 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