导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【FAQ】全志R329如何解决Tina双系统安全固件启动失败问题?

    其它全志芯片讨论区
    r329 r328 r818 faq 技术支持
    1
    1
    1281
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • q1215200171
      budbool LV 9 最后由 编辑

      问题描述

      内核双备份系统安全固件启动失败,有如下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
      

      附件:uboot-set-boot-cert-name.patch

      1 条回复 最后回复 回复 引用 分享 0
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策