RV1126 调试记录
################################################################################################
## SDK编译说明以及FAQ
1. 模式
A/B模式:该模式准备两份独立的系统固件,分别存放在 flash 上,系统可以从其中一个 slot 启动,如果当前 slot 启动失败,
可以从另外一个 slot 启动,在Normal模式下直接升级系统,无需进入系统升级模式,只需重启系统即可进入升级过的系统。
Linux A/B 由于有两个引导 slot,所以具有以下优点:
a. 升级无需重启进入升级模式,即机器可以在当前系统上直接进行升级。
b. 防止由于升级失败导致机器变砖,如果升级失败,机器可以回到当前版本。
c. 当前系统如果由于一些误操作被破坏掉,系统会自动切换到另外一个 slot 上。
缺点:Linux A/B 有两个 slot,所以会增加 flash 上系统固件的占用率。
配置和编译:
uboot: defconfig 增加如下配置,如 rv1126 64bit:u-boot/configs/rv1126_defconfig
CONFIG_AVB_LIBAVB=y
CONFIG_AVB_LIBAVB_AB=y
CONFIG_AVB_LIBAVB_ATX=y
CONFIG_AVB_LIBAVB_USER=y
CONFIG_RK_AVB_LIBAVB_USER=y
CONFIG_ANDROID_AB=y
Buildroot:
BR2_PACKAGE_RECOVERY=y #开启升级功能
BR2_PACKAGE_RECOVERY_BOOTCONTROL=y #开启引导控制脚本
BR2_PACKAGE_RECOVERY_RETRY=y #引导方式为retry模式,不配置则默认为 successful_boot模式
BR2_PACKAGE_RECOVERY_USE_UPDATEENGINE=y #使用新升级程序
BR2_PACKAGE_RECOVERY_UPDATEENGINEBIN=y #编译新升级程序
BR2_PACKAGE_RECOVERY_NO_UI=y