0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

rpi-image-gen:树莓派软件镜像构建的终极神器!

上海晶珩电子科技有限公司 2025-04-08 15:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

树莓派设备上,软件的多样性令人印象深刻。树莓派操作系统虽然适用于许多场景,但我们深知它并非万能,尤其在一些特定用途的产品中更是如此。如果您正在开发嵌入式系统工业控制器,您需要对设备上的软件拥有绝对的掌控权;而家庭用户可能希望自行构建操作系统,并根据个人偏好进行预配置。对于需要定制软件镜像的开发者和组织来说,拥有一个灵活且透明的构建系统至关重要。为此,树莓派推出了 rpi-image-gen,这是一款功能强大的全新工具,旨在让您完全掌控树莓派镜像的构建。

rpi-image-gen 是 pi-gen 的替代品,pi-gen 是用于创建和部署树莓派操作系统发行版的工具。rpi-image-gen 专为生成高度定制化的树莓派软件镜像而设计,能够为您提供对文件系统构建和软件镜像创建的极其细致的控制。

我们为何打造 rpi-image-gen:为顾客量身定制的解决方案

目前,已经有许多由社区维护的、支持树莓派设备的构建系统。它们提供了多种定制选项,如今许多树莓派用户仍在使用。您可能好奇树莓派为何要另起炉灶。rpi-image-gen 的诞生绝非出于“非我发明”的心态,而是因为树莓派的顾客可以从一个从零设计、满足其部署产品软件所需灵活性的工具中获益。

通过支持一个具有树莓派操作系统发行包优势的构建系统,只需维护一套源码。这意味着,一旦某处软件得到改进或修复,它便会自动在所有地方生效。围绕集中式的基于包的软件及更新交付进行整合,意义非凡。此外,能够减少软件构建时间、提供对支持的所有内容的所有权、复用标准方法以确保软件真实性,也是为树莓派设备打造全新本土构建工具的关键考量。

1aefae12-144d-11f0-9434-92fbcf53809c.png

rpi-image-gen 的运作方式:构建镜像的新思路

与 pi-gen 类似,rpi-image-gen 也借助了为设备安装 Debian Linux 系统的强大、可靠与可信之力。然而,与 pi-gen 不同,rpi-image-gen 引入了一些新概念,用于规定构建占用空间和安装过程。

指定您的镜像:配置文件、镜像布局和配置文件

配置文件实际上是一组描述性图层的集合,它们将 Debian 软件包和安装操作组合在一起。这些集合可以被选择性地挑选并进一步定制,构成了软件镜像的基础。镜像布局描述了输出软件二进制镜像将如何在磁盘上创建和布局,以便编程到设备中,包括文件系统类型、分区表条目、镜像格式等。配置文件是一个“顶层”文本文件,采用易于理解的 .ini 语法,用于定义 rpi-image-gen 构建设备镜像时所使用的配置文件和镜像布局。

配置文件通常与底层设备硬件和产品相关联,因此它可以相应地指定适用的属性:例如,定义各个分区镜像的大小以匹配板载 eMMC 的大小,或使用特定布局,该布局使用特定文件系统的挂载选项、微调低层暴露的选项,或选择特定的树莓派设备类别作为目标。同样,不同派生的配置文件可用于根据产品的功能需求定制安装。例如,您可以利用蓝牙音频层来引入设备支持;或使用特定层来添加一个在 kiosk 模式下运行的最小 Wayland 桌面,以安装一组默认容器,为第三方开发者分发默认环境,等等。可能性无穷无尽。

1b038fae-144d-11f0-9434-92fbcf53809c.png

示例构建:定制镜像在行动

在代码树中有一些示例,展示了 rpi-image-gen 的不同用例。它们都创建了可引导的磁盘镜像,展示了如何使用 rpi-image-gen 为特定目的创建量身定制的镜像。随着时间的推移,示例数量将会增加,让我们挑选其中两个来仔细看看:slim 和 webkiosk。

slim:创建小型轻量级镜像

slim 是一个极其简单的示例,展示了如何创建一个包含少量基本软件包的轻量级镜像,该镜像将在您的树莓派上引导。此镜像本身并非特别有用,但它展示了如何创建和构建自定义配置,以保持文件系统的最小化。配置文件引入了一些图层(例如 Debian 基础、核心实用工具、Linux 内核和引导固件),然后创建了一个树莓派操作系统风格的磁盘镜像,并留出了一些空间来运行 apt update 和安装一些软件包。

webkiosk:创建一个引导至浏览器 kiosk 模式的镜像

webkiosk 在一个配置文件之上进行构建,该配置文件再次引入了最少的组件。然后,它通过自定义钩子添加了其他软件包,以支持在 Wayland 下以 kiosk 模式运行 Chromium 网浏览器。此镜像使用自定义 systemd 服务自动引导至浏览器,并全屏运行,禁用了 VT 切换。所使用的 Wayland 合成器(Cage)是一个单实例合成器,非常适合需要防止用户通过键盘或鼠标进行干预的部署;例如,用户不应能够通过标准键盘快捷键从一个窗口切换到另一个窗口。

1b0d4562-144d-11f0-9434-92fbcf53809c.png

使用树莓派成像器将其安装到 SD 卡上;这里有一个我们之前做好的示例

除了能够以您想要的方式配置构建和设备映像之外,能够从基于包的安装中排除原本会作为配置文件的一部分安装的东西也很重要。实现这一点的一种方法是通过 dpkg 选项,这由支持 rpi-image e-gen 的工具支持。mmdebstrap 引擎驱动设备文件系统的创建,它上面的 bdebstrap 提供了一个高度可定制的框架和层的描述性文本表示。图层是用 YAML 编写的,这是人类可读且易于理解的。从包安装中排除资产就像在 YAML 中为配置文件拉入的特定图层使用 dpkg—— 路径 —— 排除和 / 或 —— 路径 —— 包含选项一样简单。

安全性、信任与合规性:这对我们的顾客意味着什么

审计软件以及能够生成已部署设备的安全漏洞列表至关重要。任何软件构建系统都应将采用标准化格式的软件物料清单(SBOM)作为输出工件之一。rpi-image-gen 为每次构建生成 SBOM,并为用户提供了一个可自定义输出格式的选项,以便用户将其输入到其他系统中 —— 例如,生成 CVE 列表。通过提供 SBOM 和跟踪安全漏洞,有助于增强消费者对部署在其设备上的软件的信心。在不久的将来,这一领域将有立法要求,我们相信树莓派在行业中处于有利地位,能够为顾客提供他们所需之物。

结语

从零开始创建一件事的优势在于能够随心所欲地塑造它 —— 拥有它并随时间推移对其进行调整。树莓派自认为很了解顾客的需求,并且努力将他们置于相当一部分软件开发工作的核心位置。

访问 rpi-image-gen GitHub 仓库开始使用。在那里,您会找到文档和示例,指导您创建定制的树莓派镜像。我们鼓励您探索该仓库并提供反馈,以帮助我们进一步改进该工具。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    7328

    浏览量

    128602
  • 软件
    +关注

    关注

    69

    文章

    5296

    浏览量

    90854
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109640
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何修改树莓软件

    ://www.raspbian.org找到最新的软件镜像,修改/etc/apt/sources文件中的内容即可。2 软件源位于何处 【树莓
    发表于 09-18 16:30

    树莓RaspberryPi的RPi.GPIO使用指南

    -U distributesudo apt-get install python-devsudo easy_install RPi.GPIO树莓GPIO定义图PRi.GPIO的使用示例[tr=none
    发表于 02-02 15:20

    树莓入门套装

    x 19mm学习资源树莓镜像、原理图、软件和文档等资料下载链接: [url=http://www.raspberrypi.org/downloads/]http
    发表于 02-22 09:51

    树莓派系列教程2:树莓烧写镜像

    的系统)二、格式化SD卡插上 SD 卡到电脑,使用SDFormatter.exe软件格式化 SD 卡。三、烧写树莓系统 用Win32DiskImager.exe烧写镜像。选择要烧写的镜像
    发表于 03-28 10:40

    树莓使用3.5寸屏幕教程

    连接到电脑,打开Win32DiskImager.exe软件,选择第1步准备的.img文件,点击write烧写镜像。3) 烧写完成后,将树莓LCD驱动复制到TF卡根目录(也可以用U盘或
    发表于 02-12 23:12

    树莓硬件编程——(一)用RPi.GPIO库输出信号 精选资料推荐

    一、认识RPi.GPIO库树莓硬件编程不仅可以用Python进行开发,也可以用C++进行开发,那么想要对硬件进行控制,就需要了解树莓的电
    发表于 07-30 08:01

    树莓镜像烧写

    开发环境1.1镜像烧写机器人出厂已经烧写完成树莓ROS镜像,用户可直接使用,跳过此步骤。如果使用过程中损坏系统文件或者镜像版本更新,用户需
    发表于 08-06 09:46

    通过Python RPi.GPIO控制树莓引脚

    零、汇总通过Python RPi.GPIO 控制树莓引脚输出高低电平、脉冲电平驱动器接收接收树莓信号,驱动57步进电机工作一、
    发表于 08-31 07:59

    树莓是什么

    树莓树莓是什么树莓(英文名为Raspberry Pi,简写为RasPi/
    发表于 11-12 06:09

    Embedded SIG | 树莓的UEFI支持和网络启动

    openeuler-image-uefi-raspberrypi4-64-*.rpi-sdimg 烧录到 SD 卡。openEuler 烧录参考《openEuler Embedded 对树莓
    发表于 09-07 15:22

    树莓RPi分辨率配置文件

    树莓RPi分辨率配置文件,从800*600到1920*1440,任你选择
    发表于 11-30 11:13 9次下载

    树莓2和树莓3的区别_树莓2和树莓3对比评测

    树莓 (为学生计算机编程教育设计的一种卡片式电脑)Raspberry Pi(中文名为“树莓”,简写为RPi,(或者RasPi /
    发表于 12-08 10:58 4.1w次阅读

    树莓学习笔记——修改树莓软件

    0 前言    本文说明如何修改树莓软件源。如果使用raspbian系统,修改软件源的方法和ubuntu相同,可在http://www.raspbian.org找到最
    发表于 04-02 14:39 694次阅读

    树莓镜像构建指导、使用方法和特性介绍

    本文主要介绍 openEuler Embedded 中树莓 4B 的构建,使用和特性介绍。
    的头像 发表于 06-08 15:44 4087次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国
    的头像 发表于 10-22 17:33 8320次阅读