亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

嵌入式Linux OTA更新第1部分:基础与实现

更新需求

嵌入式Linux产品离开实验室进入现场后,如何接收更新成为关键设计决策。

虽完美应用似免疫变更,现实是软件必然积累Bug,联网或互联设备常需安全补丁。即使理论完美固件也须容纳第三方库漏洞。

考虑Heartbleed漏洞(CVE-2014-0160)暴露OpenSSL加密库。该缺陷影响约三分之二网站,至今无数嵌入式Linux设备仍携带未修补OpenSSL构建,面临被利用风险。

基于块 vs 基于文件更新

Linux更新机制大致分块更新和文件更新。块更新单次原子操作覆盖整个分区或块设备;文件更新替换单个文件或包——类似桌面/服务器发行版“apt-get upgrade”。

嵌入式Linux偏好块更新,因整个文件系统通常由单一构建管线产出、产品存储空间固定。单步更新整个分区也简化回滚:保留前一镜像副本直到新镜像验证通过。

确保失败更新后恢复

设备不应处于不可用状态,尤其掉电或写入失败中途。常规缓解是维护次级分区,主镜像启动失败时接管。

嵌入式Linux OTA更新第1部分:基础与实现
图1. 失败恢复 – 回退选项 (来源:ByteSnap)

两常见模式:

存储充足时,双根文件系统法通常推荐,因其简单性和性能。主镜像大且备用空间有限时,救援法有用。

注意引导加载程序通常在此设置中不可变。更新引导加载程序需额外引导加载程序分区和板级管理控制器(BMC)编排切换——增加硬件复杂度和成本。

嵌入式Linux OTA更新第1部分:基础与实现
图2. 失败恢复 – 板级管理控制器 (来源:ByteSnap)

因BMC增硬件和固件,多数设计师倾向让引导加载程序尽可能小且可靠,使其永不需OTA更新。

利用U-Boot环境变量

U-Boot存储非易失性环境,可从Linux查询、启动时操作。这些变量适合编码活动分区、追踪启动成功、编排故障转移逻辑。

典型模式含:

将此状态存储在U-Boot中,引导加载程序可在新镜像连续失败配置次数时自动回滚前一镜像。

嵌入式Linux OTA更新第1部分:基础与实现
图3. U-Boot环境变量 (来源:ByteSnap)

嵌入式

  1. 高效 PCB 设计生产的 DFMA 必备指南 — 第一部分
  2. PCB制造组装设计指南(DFM/DFA)核心准则——下篇
  3. Emag VL 系列立式车削中心:小批量通用与大批量自动化兼备
  4. 嵌入式系统基础与现实应用
  5. 嵌入式系统:定义、架构与现实应用
  6. IC技术与微控制器:现代嵌入式系统的基石
  7. 掌握USB-C:高速数据与电力传输的设计挑战与实用方案
  8. 面向 MIPI 摄像头的高性能 FPGA 加速器助力嵌入式视觉
  9. Pixus 推出增强结构强度的坚固型 6U OpenVPX 面板
  10. congatec 发布 100W 生态系统:面向高性能嵌入式边缘与微型服务器
  11. Axiomtek CAPA310:3.5 英寸嵌入式单板机,面向任务关键应用
  12. 2021 年 Windows/macOS/Linux 十大 C# IDE 评测