[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本地升级源码

PX4飞控 vs 大疆A3:开源与闭源方案在无人机硬件架构中的实战对比

本文深入对比了PX4飞控与大疆A3在无人机硬件架构上的差异,分析了开源与闭源方案在工业级无人机开发中的优劣势。通过详细的硬件配置、传感器兼容性、扩展能力及性能测试数据,为开发者提供选型指南,特别适合需要自定义算法和复杂功能集成的项目。

a3b4c5的博客 886

Linux文件操作四剑客

① /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日 yyyy-MM-dd / yy-MM-dd 格式。⑥“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$” //正浮点数。

wuds_158的博客 1609

手把手教你用RK3568开发板实现FPGA与Linux的DMA通信(含完整代码解析)

本文详细介绍了如何在RK3568开发板上实现FPGA与Linux系统的DMA通信,包括硬件配置、软件环境搭建、DMA通信原理、驱动开发及性能优化。通过完整的代码解析和实战案例,帮助开发者快速掌握异构系统间的高效数据传输技术,适用于物联网和边缘计算等场景。

weixin_29174385的博客 201

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 807

SSD训练自定义数据集实战:VOC格式标注与模型调参技巧

本文详细介绍了如何使用SSD模型训练自定义VOC格式数据集,包括数据标注工具选择、VOC数据集目录结构规范、数据集划分方法以及模型调参技巧。通过实战案例演示了SSD源码的关键修改点和训练参数优化策略,帮助开发者高效实现目标检测任务。

php55的博客 562

MySQL操作之用户管理权限管理:(DC)(五)

一、简介 二、用户管理 2.1 User表 2.2 创建普通用户 2.3 删除普通用户 2.4 修改用户密码 2.5 解决root用户密码丢失 三、权限管理 3.1 MySQL的权限 3.2 授予权限 3.3 查看权限 3.4 收回权限

lydms的博客 4505

2020年大连理工大学《单片机原理及应用》期末试卷

2020年大连理工大学《单片机原理及应用》期末试卷 此试卷为大连理工大学2020年《单片机原理及应用》期末试卷; 大连理工大学2020年《单片机原理及应用》期末试卷; 大连理工大学2020年《单片机原理及应用》期末试卷。 ...

无名何许人的博客 1478

Python 爬虫实战:爬取 GitHub 热门项目(星数 / 语言 / 作者)

本文系统介绍了使用Python爬虫技术获取GitHub热门项目数据的完整方案。通过分析GitHub Trending页面和官方API两种数据源,详细讲解了HTML解析、JSON数据处理、反爬应对策略等关键技术。采用requests、BeautifulSoup、pandas等工具链,实现了项目信息(名称、星数、语言等)的结构化爬取,并配套数据清洗、统计分析及可视化功能。特别强调遵守GitHub API使用规范,包括Token认证、请求频率控制等合规要求。该方案为开发者提供了一种高效、合法的数据采集方法,适用于

2503_91057718的博客 2341

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: [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、付费专栏及课程。

余额充值