miniboot 升级
备注
- 此升级方式仅适用于非 OTA 镜像下的在线 miniboot 更新;OTA 镜像请走 系统 OTA 升级 的 完整流程。
- 流程不经过
ota_tool状态机,而是直接通过dd烧写,升级后需重启生效。
概述
当只需单独更新 miniboot 相关分区、而不想整片重烧整个系统时,可在板端通过 rdk-miniboot-update 直接刷写 miniboot 升级包。
- 脚本:
/usr/bin/rdk-miniboot-update(由hobot-minibootdeb 包提供) - 升级包所在目录:
/usr/lib/firmware/rdk/miniboot/stable/<release|debug>/img_packages/
本方案采用**直接烧写(direct flash)**策略:
- NOR 走一张按 FPT 顺序预排好的整盘镜像,
dd一次性覆盖整片(一次调用更新所有 miniboot 相关 NOR 分区,包括 BAK 分区和 A/B 两个 slot)。 - eMMC / UFS 上对若干 AB 分区逐个
dd,只写当前 slot。
重要特性
流程不走 ota_tool 的 "升级 → 校验 → 切 slot" 两段式状态机,没有内建的自动回滚:任意一步 dd 失败或中途掉电都可能导致设备无法启动。
工作原理
脚本执行顺序:
- OHP 生命周期检查:若设备已进入
OHP阶段,在线升级被拒绝,必须用 factory 工具整片重烧。 - 读取当前 AB slot:通过
ota_tool -g获取 A / B;eMMC 阶段按当前 slot 写入<part>_<slot>。 - 选择 NOR 镜像:内核 cmdline 含
hobotboot.secureboot=1时使用miniboot_flash.img(签名版),否则使用miniboot_flash_nose.img。 - NOR 整片烧写:对
/dev/block/platform/by-name/hb_vspiflash做一次dd(bs=2M),一次性覆盖整片 NOR,22MB 约需 3.5 分钟。 - eMMC / UFS 逐个烧写:对
acore_cfg_<slot>、bl31_<slot>、optee_<slot>、uboot_<slot>四个 AB 分区分别dd(bs=4M)。只写当前 slot,不做跨 slot 同步,也不触碰其它 AB 分区(例如 RDK S600 的vbmeta,本流程不升级;需要时请走系统 OTA 完整流程)。 - 可选重启:按
--reboot y|n或交互输入决定是否立即reboot。重启后新 miniboot 才会生效。