为什么要超越 Raspberry Pi OS?
(CM5) Raspberry Pi Compute Module 5(CM5) 提供了强大的嵌入式性能 - PCIe、NVMe 存储和 LPDDR4X 内存。但是,如果你计划出货真正的产品,仅仅从 SD 卡启动 Raspberry Pi OS从 SD 卡启动是不够的。
您需要一个可控的镜像构建流程、可重复的配置和可靠的更新机制。
传统上,像 Yocto或 Buildroot等项目,但它们的学习曲线陡峭,构建时间长。
对于小型团队、初创企业或定制工业产品来说,使用 Yocto会让人感觉矫枉过正。那么,如果您能在接近 Raspberry Pi OS但仍能获得自动化、可靠性和易于更新的特性,那又会怎样呢?
本系列将探讨这种轻量级替代方案--使用 rpi-image-gen和 A/B 分区、 rpi-sb-provisioner和 SWUpdate来形成一个模块化、生产就绪的管道。
为什么跳过 Yocto?
Yocto的最大优势也是其复杂性。它从源代码开始构建内核、引导加载程序、工具链和用户空间等一切,提供了全面的控制,但也带来了缓慢的迭代和艰难的调试。
当你的基础系统已经得到很好的支持,比如 Raspberry Pi OS一样,重新构建一切可能既不必要又耗时。
相反,你可以
- 重复使用 Raspberry Pi重用引导加载程序和内核
- 利用配置自动化生成可重现的映像
- 使用成熟的工具进行配置和更新
这种方法只需付出 20% 的努力,就能实现 80% 的生产级优势。
堆栈概览
在本系列中,我们将探讨一套实用的工具包,用于构建一个可随时投入生产的系统。 Linux系统的实用工具包。 Yocto:
- rpi-image-gen- 自动 Raspberry Pi OS自动生成镜像
- A/B rootfs - 用于安全系统升级的双分区
- rpi-sb-provisioner- 自动上载设备
- SWUpdate- OTA 固件管理
通过结合这些工具,您可以设计出可重现、可维护和可升级的嵌入式系统 Linux系统,同时与官方 Raspberry Pi生态系统。
资料来源
- rpi-image-gen:https://github.com/raspberrypi/rpi-image-gen
- rpi-sb-provisioner:https://github.com/raspberrypi/rpi-sb-provisioner
- SWUpdate:https://github.com/sbabic/swupdate
- swugenerator:https://github.com/sbabic/swugenerator