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

嵌入式 Linux 的 OTA 更新,第 2 部分——现成更新系统的比较

在上一篇文章中,我们讨论了嵌入式 Linux 更新系统的基础知识和实现。在这里,我们讨论了一些现成的开源更新系统,这些系统现在可以与您的嵌入式 Linux 项目集成。

门德

这个更新系统感觉非常专业,开箱即用。它使用与上一篇文章中描述的非常相似的双 rootfs 更新系统。它与 U-Boot 紧密集成,允许在非启动映像的情况下进行回退。

开始使用 Mender 非常容易,因为有关于如何设置和集成各种组件的清晰的分步文档。它们提供了在 Raspberry Pi 和 BeagleBone Black 等流行平台上的参考实现,这些可以让您了解在您的平台上运行所需的工作量。

我发现整合和开始工作大约需要三天时间。为了让它与我的 Yocto 构建设置(基于 Morty)一起工作,有很多小的变化。它需要一些 OpenEmbedded 专业知识来解决这些问题。正确集成双启动机制需要U-Boot专业知识。

最后,它输出一个“sdimg”,其中包含引导加载程序和文件系统,需要以某种方式将其写入闪存。您如何执行此操作取决于您的目标硬件。它还输出所谓的“工件”,其中包含新的文件系统映像和各种元数据。

可以通过 Mender 命令行工具手动安装工件(然后理论上可以扩展为从 USB 记忆棒自动安装)。工件也可以通过 Web 界面上传到后端更新 Web 服务,然后可以从这里下推到各个单元。

控制后端更新服务器的 Web 界面设计良好且易于使用。设置是通过 Docker 完成的,这使得初始设置非常简单。完整的生产就绪系统需要 Docker 方面的专业知识。在此网络界面中,您可以查看现场所有当前部署的设备,并将更新单独或成组推送给它们。

点击查看大图

图 1:Mender 包含一个定制的 Web 界面,用于将更新推送到设备(来源:Mender)

Mender 的大部分是用 Go 编程语言编写的。长期采用和生产版本需要一些 Go 方面的专业知识。虽然这在嵌入式世界中仍然是一种不常见的语言,但它可能会在未来得到更广泛的应用。

您被绑定到一个硬编码的引导设备(例如:/dev/mmcblk0),因此没有直接的方法来允许从多个介质引导。它还对您的系统做出了很多假设,例如引导加载程序和内核中的各种选项(例如:包括对某些文件系统的支持)。至关重要的是,它需要 systemd,这可能使其不适用于某些项目。

软件更新

这个更新系统是高度可配置的。您可以使用大多数嵌入式 Linux 开发人员熟悉的“kconfig”系统对其进行配置。举几个配置选项的例子:它支持多种引导加载程序(U-Boot、GRUB、EFI Boot Guard);它可以根据给定的公钥对签名图像进行签名和验证;支持使用对称密钥加密对图像进行加密。


图 2:SWUpdate 的配置系统(来源:SWUpdate)


嵌入式

  1. 哪个 AWS 容器编排平台最适合您的组织?
  2. 什么是调试:嵌入式系统中的类型和技术
  3. 嵌入式系统在汽车中的作用
  4. 什么是嵌入式系统及其实时应用
  5. 微控制器和嵌入式系统的 IC 技术简介
  6. 嵌入式系统中的网络是什么? – 不同类型的网络
  7. ST 采样嵌入式相变存储器,用于汽车微控制器
  8. Cervoz:用于工业嵌入式应用的超薄 NVMe 存储
  9. 为机器人系统设计电机控制
  10. 适用于 Windows、Linux、Mac 的 10 个最佳 C# IDE(2021 更新)
  11. 模块化设计的优势嵌入式技术
  12. 3D 视觉系统 – 哪一个适合您?