[RK-Linux] updateEngine工具使用以及代码分析

AI摘要

本文介绍了Rockchip Linux平台的Recovery模式和A/B模式,详细阐述了Recovery模式的配置、编译、系统升级及日志查看,以及A/B模式的升级流程。同时讲解了misc分区的作用和updateEngine工具的使用,包括其参数说明和自定义分区升级的方法。

Rockchip Linux 平台支持两种启动方案,Recovery 模式和Linux A/B 模式:

  1. Recovery 模式,设备上有一个单独的分区(recovery)用于升级操作。
  2. Linux A/B 模式,设备上有两套固件,可切换使用。

两种启动方案的对比如下:

升级方案 代码路径 是否支持Recovey启动模式升级 是否支持A/B启动模式升级 是否需要misc分区支持
updateEngine external/recovery/update_engine 支持 支持 需要
rkupdate external/rkupdate 支持 不支持 需要

一、Recovery 模式

1.1 概述

Recovery 模式是在设备上多一个Recovery分区,该分区由kernel+resource+ramdisk 组成,主要用于升级操
作。u-boot会根据misc分区存放的字段来判断将要引导的系统是Normal 系统还是
Recovery 系统。由于系统的独立性,所以Recovery模式能保证升级的完整性,即升级过程被中断,如异
常掉电,升级仍然能继续执行

优点:

  1. 能保证升级的完整性

缺点:

  1. 系统多了一个分区,该分区仅用于升级
  2. 升级过程必须重启进入recovery模式,不能在Normal系统直接进行升级

1.2 配置与编译

Buildroot:recovery 配置文件选择如下:

BR2_PACKAGE_RECOVERY=y #开启升级相关功能
BR2_PACKAGE_RECOVERY_USE_UPDATEENGINE
update_engine模块移植到linux平台 update_engine是google提供的一个升级模块,对于linux的平台,我们可以移植到我们的嵌入式平台,通过update_engine模块对系统升级,最近由于工作需要,在linux平台上面移植一下,其中遇到了很多问题,在不停的寻找答案中,问题都一一解决了,现在分享一下移植的过程,提供给有同样需求的童鞋。 阅读详情

相关推荐

Rockchip Linux updateEngine 和 Rockchip Linux RKDEVTOOL 的区别

这个问题问得非常好 👍,我给你详细拆解一下存在的原因和作用。

m0_57249200的博客 1389

Rockchip RK3588 - Recovery模式下的updateEngine与rkupdate升级机制解析

本文深入解析Rockchip RK3588平台在Recovery模式下的两种系统升级机制:updateEngine与rkupdate。详细对比了二者的架构设计、功能特性及适用场景,为开发者选择适合的升级方案提供专业指导,并分享了实际应用中的优化经验和异常处理方法。

nginx7reverse的博客 626

RK3588 Linux升级实战:updateEngine与rkupdate配置对比

嵌入式Linux系统的固件升级是产品落地中的关键环节,尤其在RK3588这类高性能平台,Recovery机制与升级工具的选择直接决定开发效率与交付可靠性。理解Recovery模式在启动链路中的位置,以及它对分区表、引导程序、根文件系统的操作方式,是掌握系统级升级的基石。updateEngine借助A/B分区实现无缝切换与失败回滚,适合对可靠性要求高的OTA场景;rkupdate则直接写入目标分区,操作简洁、依赖少,更适配产线烧录与现场维护。两类工具在设计哲学、部署复杂度、失败后果上差异显著,需要根据项目阶段

weixin_29192365的博客 213

Rockchip RK3588 - Recovery模式下的updateEngine与rkupdate升级机制深度解析

本文深入解析Rockchip RK3588芯片在Recovery模式下的updateEngine与rkupdate升级机制,详细对比两种方案的优缺点及适用场景。通过实际项目经验,提供配置指南、常见问题解决方案及性能优化建议,帮助开发者高效实现嵌入式Linux系统升级。

weixin_42536058的博客 488

保姆级教程:在ArmSoM-Sige7开发板上配置Rockchip RK3588的Linux Recovery升级(含updateEngine与rkupdate对比)

本文详细介绍了在ArmSoM-Sige7开发板上配置Rockchip RK3588的Linux Recovery升级方案,包括updateEngine与rkupdate两种方法的深度对比与实战教程。内容涵盖嵌入式系统升级概述、技术方案选型、配置步骤、源码解析以及常见问题排查,为开发者提供全面的RK3588开发板Linux系统升级指南。

weixin_33696106的博客 228

Rockchip RK3588 - Rockchip Linux Recovery recovery源码分析

---------------------------------------------------------------------------------------------------------------------------- 开发板 :NanoPC-T4开发板eMMC :16GBLPDDR3 :4GB 显示屏 :15.6英寸HDMI接口显示屏uboot :2017.09l...

Graceful_scenery的博客 1402

linux 基于debian/ubuntu AB系统适配(二)-updateEngine移植

其实A/B系统的原理很简单,大部分的工作都集中在uboot上,rootfs只是起到一个辅助的作用,但这个作用也就必不可少的。你会发现在这个其中并没有kernel的参与。

badbayyj的博客 1033

RKUpdateService,ota本地升级源码

ota本地升级源码

Centos7安装Tesseract5.5.0+SpringBoot集成部署(离线版)

Java 中实现 OCR(光学字符识别)功能,可以使用 Tesseract OCR,这是一个开源的 OCR 引擎,支持多种语言,并且可以在 Java 中通过 Tesseract API 进行集成。

Leopard锋的博客 2320

OC5021B 100V宽电压输入 LED车灯/大功率照明 DC降压型恒流驱动器

适用于LED大功率汽车大灯/大功率照明 OC5021B 100V宽电压输入 5A电流设计 DC-DC降压型恒流驱动IC

Handsome63841990的博客 2413

【VS2017】“LNK1104 cannot open file ‘python39_d.lib‘ “

记录一下编译调用了python代码的C语言源程序时遇到的问题 版本:以python3.9.1为例 先确保你安装了python的debug版本,如果没有,用对应版本安装包可以修改已经安装的python,如图。 选择 “Modify” 选择next 确保最后一项勾选,然后install。 光安装了还不够,需要配置一下C语言编译器。 以VS2017为例: 将python37_d.lib(在安装目录下的libs文件夹里有python39_d.lib)所在文件夹的路径添加到库目录里面,右键你的解决方案,选.

m0_46296905的博客 6474

PCB设计中的规则优先级陷阱:为什么你的过孔总是十字连接?

本文深入解析PCB设计中Altium Designer规则优先级机制,解决过孔总是十字连接而非全连接的问题。通过分析铺铜连接原理和规则匹配逻辑,提供精确控制连接方式的技术实践,包括Custom Query使用和优先级最佳设置,帮助设计师避免常见陷阱,优化高速电路板的电气性能和制造可靠性。

banana的博客 467

R语言环境下Bibliometrix与Biblioshiny的安装与配置指南

本文提供了在R语言环境下安装与配置Bibliometrix和Biblioshiny的详细指南。内容涵盖R与RStudio的安装、Bibliometrix包的安装避坑方法,以及如何启动Biblioshiny图形界面进行文献计量分析。重点解决了安装过程中的常见网络与依赖问题,帮助科研人员快速搭建高效的文献分析环境。

jwt8token的博客 1145

STM32F103 实例应用(10)——I2C读写24C32

一、应用简介 本文介绍24C32的读写,基于野火的软件I2C程序。 board_i2c.h /**=========================================================================== @file board_i2c.h @brief 本文件是用于I2C驱动 @author 青梅煮久 @version r0.1 @date 2021/01/13 -------------------------.

qq_34118600的博客 3447

8年ES运维经验整理出的Elasticsearch运维手册(超实用)

k1 : 控制非线性词频率归一化(饱和),Elasticsearch中默认值为1.2。用人能看懂的话说就是词语在文档中出现的次数对于得分的重要性。例如说我觉得在某些场景,一个搜索词在文档中出现越多则越接近我希望搜索的内容,就可以将这个参数调大一点。b :控制文档长度对于分数的惩罚力度。变量b处于分母上,它乘以刚刚讨论过的字段长度的比值,Elasticsearch中的b 默认值为0.75。如果b较大,则文档长度相对于平均长度的影响更大。

yonggeit的博客 5272

基于FreeRedis实现的.NET Redis客户端缓存缓存键条件优雅过滤

在.NET开发中,使用Redis作为缓存解决方案是很常见的。FreeRedis是一个功能强大的Redis客户端库,它提供了丰富的功能和灵活性,使我们能够轻松地与Redis进行交互。在本文中,我们将探讨如何使用FreeRedis实现缓存键条件的优雅过滤,以提高缓存的效率和准确性。

RzuScala的博客 328

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: [RK-Linux] Linux A/B System详解
下一篇: [RK-Linux] recovery分区详解(一)
嵌入式逍遥
嵌入式逍遥 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄9年 7万+粉丝 237原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式逍遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值