跳转到主要内容

了解如何构建可用于生产的 Linux系统 Raspberry Pi Compute Module 5(CM5)

具有自定义图像、A/B 更新和自动配置功能。

了解如何构建可用于生产的 Linux系统 Raspberry Pi Compute Module 5(CM5) 的生产就绪系统,包括自定义镜像、A/B 更新和自动配置。

该系统 Raspberry Pi Compute Module 5提供了强大的嵌入式性能 - PCIe、NVMe、LPDDR4X 和坚实的 BSP 基础。然而,从开发板转向可维护的生产级 Linux环境带来了新的挑战:镜像定制、配置和可靠的无线 (OTA) 更新。

计算模块 5 IO 板

在本系列中,我们将探讨如何为 CM5 创建一个精简、可重现的 Linux系统。 Yocto.我们将使用实用的工具和工作流程,而不是从头开始构建整个发行版,展示如何 rpi-image-gen如何生成自定义镜像、A/B rootfs 布局如何实现安全更新、如何 rpi-sb-provisioner如何自动进行设备设置,以及 SWUpdate如何在现场管理固件交付。

每篇文章都提供了基本组件的技术概述--不是成品,而是生态系统的地图。您将了解每个工具的适用范围、解决的问题,以及如何将它们组合成一个灵活的构建和更新管道,用于您自己基于 CM5 的项目。

在本系列课程结束时,您将了解如何从一个库存 Raspberry Pi OS映像演变为可控制、可升级的嵌入式平台--而不需要复杂的 Yocto或 Buildroot.

简介 - 从库存操作系统到生产平台

了解为什么 Yocto并不总是最佳选择,尤其是对于小型团队或快节奏的产品周期而言。我们将介绍一种实用的模块化方法,它建立在我们熟悉的 Raspberry Pi OS基础。

要点

  • 为什么 "生产就绪 "不仅仅意味着启动
  • 使用 Yocto的挑战
  • 替代堆栈概述: Raspberry Pi OS, rpi-image-gen双rootfs(A/B)、配置和 SWUpdate
  • 最终目标:可重现、可维护的系统管道

参见:从库存操作系统到生产平台

图像生成 - 自定义 Raspberry Pi OS与 rpi-image-gen

了解如何构建可重现的系统映像,而无需依赖完整的 Yocto或 Buildroot设置。本文章介绍 rpi-image-gen一个最小化的、可编写脚本的镜像生成器,用于定制 Raspberry Pi OS以满足您的硬件和应用需求。

要点:

  • 映像的剖析 Raspberry Pi镜像(启动、rootfs、配置)
  • 使用 rpi-image-gen来组装和定制镜像
  • 添加自定义文件、服务和内核模块
  • 自动构建 CI/CD 环境

参见 Customizing Raspberry Pi OS with rpi-image-gen

系统鲁棒性 - 设计 A/B 根文件系统布局

A/B 分区是安全系统更新和回滚的基础。本文将介绍如何配置和管理两个根分区,在启动时在它们之间切换,并为可靠的 OTA 机制做好准备。

要点:

  • CM5 上 A/B rootfs 的分区方案
  • 启动加载程序和内核命令行配置
  • 管理活动/非活动插槽和状态跟踪
  • 将更新逻辑与 systemd 和 SWUpdate

参见系统鲁棒性--设计 A/B 根文件系统布局

调配 - 使用 rpi-sb-provisioner

调配是软件与硬件的结合。我们将探讨 rpi-sb-provisioner作为一种轻量级工具,用于初始化新设备、注入配置并将其安全地注册到后端服务中。

要点

  • 配置在嵌入式系统中的作用
  • 使用 rpi-sb-provisioner来设置设备身份和参数
  • 首次启动的自动化脚本示例
  • 设备身份、证书和配置注入的概念

参见 Provisioning — Automating First Boot with rpi-sb-provisioner

OTA 和生命周期 - 软件更新,包括 SWUpdate

使用 SWUpdate是一个强大的开源框架,可安全地向现场设备交付软件。本篇文章将展示 SWUpdate如何与您的映像和分区布局集成,以确保更新的原子性和可恢复性。

要点:

  • 架构概述 SWUpdate架构(处理程序、更新程序、Web 界面)
  • 创建和签署更新捆绑包
  • 与 A/B 系统集成
  • 更新和回滚流程示例

参见 OTA and Lifecycle — Software Updates with SWUpdate