【FAQ】全志R329如何解决Tina双系统安全固件启动失败问题?
-
问题描述
内核双备份系统安全固件启动失败,有如下log:
[02.968]kernel len:10659840, part len:15728640 pubkey boot_a not found check rootpk[boot_a] in rootcert fail [03.050]boota: verify the boot_a failed
问题分析
从log中看,提示没有找到名字为boot_a的公钥。
此问题是签名key名字与分区名的匹配问题。客户为双系统,内核分区有两个,名字分别为boot_a与boot_b,均使用boot.fex。公钥的名字可以从签名配置文件dragon_xxx.cfg中查看,下面是boot.fex镜像对应的公钥名字为“boot”。
[toc1] onlykey=boot, boot.fex, SCPFirmwareContentCertPK
在uboot校验时,默认会根据分区名来找key,但是没有名为boot_a的key,所以提示找不到。
解决办法
有两种处理办法。
第一种,修改uboot校验逻辑,对于内核分区,强制设置key名字为boot,修改如下:
tina/lichee/brandy-2.0/u-boot-2018/board/sunxi/sunxi_image_verifier.c,补丁如附件uboot-set-boot-cert-name.patch所示。
第二种,boot_a与boot_b使用不同的镜像名字,需要修改dragon_xxx.cfg文件,改动如下:
[toc1] onlykey=boot_a, boot_a.fex, SCPFirmwareContentCertPK onlykey=boot_b, boot_b.fex, SCPFirmwareContentCertPK
-
-
-
-
-
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号