上一个章节我们已经创建了fit2分区,用来做系统升级时的备份分区,这样就可以避免升级是主分区挂了导致起不来的问题。
1、双固件升级的逻辑
双固件升级的流程如下:
- sysupgrade升级的时候写入到fit2分区
- 通过设置Uboot的环境变量标记,代表有固件需要升级
- uboot启动时,发现升级环境变量被置位,代表需要升级
- uboot将fit2分区的内容,拷贝到fit分区进行升级
- fit启动后,将升级环境变量清楚,下次uboot启动的时候就不会再次升级
知道过程后,我们开始修改代码
2、修改sysupgrade升级到fit2分区,设置升级标志位
修改升级脚本nand.sh,指定升级卷名位fit2
@@ -395,6 +405,7 @@ nand_do_flash_file() {
[ ! "$(find_mtd_index "$CI_UBIPART")" ] && CI_UBIPART=rootfs
+ export CI_KERNPART="fit2"
case "$file_type"