在樹莓派設(shè)備上,軟件的多樣性令人印象深刻。樹莓派操作系統(tǒng)雖然適用于許多場(chǎng)景,但我們深知它并非萬(wàn)能,尤其在一些特定用途的產(chǎn)品中更是如此。如果您正在開發(fā)嵌入式系統(tǒng)或工業(yè)控制器,您需要對(duì)設(shè)備上的軟件擁有絕對(duì)的掌控權(quán);而家庭用戶可能希望自行構(gòu)建操作系統(tǒng),并根據(jù)個(gè)人偏好進(jìn)行預(yù)配置。對(duì)于需要定制軟件鏡像的開發(fā)者和組織來(lái)說(shuō),擁有一個(gè)靈活且透明的構(gòu)建系統(tǒng)至關(guān)重要。為此,樹莓派推出了 rpi-image-gen,這是一款功能強(qiáng)大的全新工具,旨在讓您完全掌控樹莓派鏡像的構(gòu)建。
rpi-image-gen 是 pi-gen 的替代品,pi-gen 是用于創(chuàng)建和部署樹莓派操作系統(tǒng)發(fā)行版的工具。rpi-image-gen 專為生成高度定制化的樹莓派軟件鏡像而設(shè)計(jì),能夠?yàn)槟峁?duì)文件系統(tǒng)構(gòu)建和軟件鏡像創(chuàng)建的極其細(xì)致的控制。
我們?yōu)楹未蛟?rpi-image-gen:為顧客量身定制的解決方案
目前,已經(jīng)有許多由社區(qū)維護(hù)的、支持樹莓派設(shè)備的構(gòu)建系統(tǒng)。它們提供了多種定制選項(xiàng),如今許多樹莓派用戶仍在使用。您可能好奇樹莓派為何要另起爐灶。rpi-image-gen 的誕生絕非出于“非我發(fā)明”的心態(tài),而是因?yàn)闃漭傻念櫩涂梢詮囊粋€(gè)從零設(shè)計(jì)、滿足其部署產(chǎn)品軟件所需靈活性的工具中獲益。
通過(guò)支持一個(gè)具有樹莓派操作系統(tǒng)發(fā)行包優(yōu)勢(shì)的構(gòu)建系統(tǒng),只需維護(hù)一套源碼。這意味著,一旦某處軟件得到改進(jìn)或修復(fù),它便會(huì)自動(dòng)在所有地方生效。圍繞集中式的基于包的軟件及更新交付進(jìn)行整合,意義非凡。此外,能夠減少軟件構(gòu)建時(shí)間、提供對(duì)支持的所有內(nèi)容的所有權(quán)、復(fù)用標(biāo)準(zhǔn)方法以確保軟件真實(shí)性,也是為樹莓派設(shè)備打造全新本土構(gòu)建工具的關(guān)鍵考量。

rpi-image-gen 的運(yùn)作方式:構(gòu)建鏡像的新思路
與 pi-gen 類似,rpi-image-gen 也借助了為設(shè)備安裝 Debian Linux 系統(tǒng)的強(qiáng)大、可靠與可信之力。然而,與 pi-gen 不同,rpi-image-gen 引入了一些新概念,用于規(guī)定構(gòu)建占用空間和安裝過(guò)程。
指定您的鏡像:配置文件、鏡像布局和配置文件
配置文件實(shí)際上是一組描述性圖層的集合,它們將 Debian 軟件包和安裝操作組合在一起。這些集合可以被選擇性地挑選并進(jìn)一步定制,構(gòu)成了軟件鏡像的基礎(chǔ)。鏡像布局描述了輸出軟件二進(jìn)制鏡像將如何在磁盤上創(chuàng)建和布局,以便編程到設(shè)備中,包括文件系統(tǒng)類型、分區(qū)表?xiàng)l目、鏡像格式等。配置文件是一個(gè)“頂層”文本文件,采用易于理解的 .ini 語(yǔ)法,用于定義 rpi-image-gen 構(gòu)建設(shè)備鏡像時(shí)所使用的配置文件和鏡像布局。
配置文件通常與底層設(shè)備硬件和產(chǎn)品相關(guān)聯(lián),因此它可以相應(yīng)地指定適用的屬性:例如,定義各個(gè)分區(qū)鏡像的大小以匹配板載 eMMC 的大小,或使用特定布局,該布局使用特定文件系統(tǒng)的掛載選項(xiàng)、微調(diào)低層暴露的選項(xiàng),或選擇特定的樹莓派設(shè)備類別作為目標(biāo)。同樣,不同派生的配置文件可用于根據(jù)產(chǎn)品的功能需求定制安裝。例如,您可以利用藍(lán)牙音頻層來(lái)引入設(shè)備支持;或使用特定層來(lái)添加一個(gè)在 kiosk 模式下運(yùn)行的最小 Wayland 桌面,以安裝一組默認(rèn)容器,為第三方開發(fā)者分發(fā)默認(rèn)環(huán)境,等等。可能性無(wú)窮無(wú)盡。

示例構(gòu)建:定制鏡像在行動(dòng)
在代碼樹中有一些示例,展示了 rpi-image-gen 的不同用例。它們都創(chuàng)建了可引導(dǎo)的磁盤鏡像,展示了如何使用 rpi-image-gen 為特定目的創(chuàng)建量身定制的鏡像。隨著時(shí)間的推移,示例數(shù)量將會(huì)增加,讓我們挑選其中兩個(gè)來(lái)仔細(xì)看看:slim 和 webkiosk。
slim:創(chuàng)建小型輕量級(jí)鏡像
slim 是一個(gè)極其簡(jiǎn)單的示例,展示了如何創(chuàng)建一個(gè)包含少量基本軟件包的輕量級(jí)鏡像,該鏡像將在您的樹莓派上引導(dǎo)。此鏡像本身并非特別有用,但它展示了如何創(chuàng)建和構(gòu)建自定義配置,以保持文件系統(tǒng)的最小化。配置文件引入了一些圖層(例如 Debian 基礎(chǔ)、核心實(shí)用工具、Linux 內(nèi)核和引導(dǎo)固件),然后創(chuàng)建了一個(gè)樹莓派操作系統(tǒng)風(fēng)格的磁盤鏡像,并留出了一些空間來(lái)運(yùn)行 apt update 和安裝一些軟件包。
webkiosk:創(chuàng)建一個(gè)引導(dǎo)至瀏覽器 kiosk 模式的鏡像
webkiosk 在一個(gè)配置文件之上進(jìn)行構(gòu)建,該配置文件再次引入了最少的組件。然后,它通過(guò)自定義鉤子添加了其他軟件包,以支持在 Wayland 下以 kiosk 模式運(yùn)行 Chromium 網(wǎng)瀏覽器。此鏡像使用自定義 systemd 服務(wù)自動(dòng)引導(dǎo)至瀏覽器,并全屏運(yùn)行,禁用了 VT 切換。所使用的 Wayland 合成器(Cage)是一個(gè)單實(shí)例合成器,非常適合需要防止用戶通過(guò)鍵盤或鼠標(biāo)進(jìn)行干預(yù)的部署;例如,用戶不應(yīng)能夠通過(guò)標(biāo)準(zhǔn)鍵盤快捷鍵從一個(gè)窗口切換到另一個(gè)窗口。
使用樹莓派成像器將其安裝到 SD 卡上;這里有一個(gè)我們之前做好的示例
除了能夠以您想要的方式配置構(gòu)建和設(shè)備映像之外,能夠從基于包的安裝中排除原本會(huì)作為配置文件的一部分安裝的東西也很重要。實(shí)現(xiàn)這一點(diǎn)的一種方法是通過(guò) dpkg 選項(xiàng),這由支持 rpi-image e-gen 的工具支持。mmdebstrap 引擎驅(qū)動(dòng)設(shè)備文件系統(tǒng)的創(chuàng)建,它上面的 bdebstrap 提供了一個(gè)高度可定制的框架和層的描述性文本表示。圖層是用 YAML 編寫的,這是人類可讀且易于理解的。從包安裝中排除資產(chǎn)就像在 YAML 中為配置文件拉入的特定圖層使用 dpkg—— 路徑 —— 排除和 / 或 —— 路徑 —— 包含選項(xiàng)一樣簡(jiǎn)單。
安全性、信任與合規(guī)性:這對(duì)我們的顧客意味著什么
審計(jì)軟件以及能夠生成已部署設(shè)備的安全漏洞列表至關(guān)重要。任何軟件構(gòu)建系統(tǒng)都應(yīng)將采用標(biāo)準(zhǔn)化格式的軟件物料清單(SBOM)作為輸出工件之一。rpi-image-gen 為每次構(gòu)建生成 SBOM,并為用戶提供了一個(gè)可自定義輸出格式的選項(xiàng),以便用戶將其輸入到其他系統(tǒng)中 —— 例如,生成 CVE 列表。通過(guò)提供 SBOM 和跟蹤安全漏洞,有助于增強(qiáng)消費(fèi)者對(duì)部署在其設(shè)備上的軟件的信心。在不久的將來(lái),這一領(lǐng)域?qū)⒂辛⒎ㄒ螅覀兿嘈艠漭稍谛袠I(yè)中處于有利地位,能夠?yàn)轭櫩吞峁┧麄兯柚铩?/span>
結(jié)語(yǔ)
從零開始創(chuàng)建一件事的優(yōu)勢(shì)在于能夠隨心所欲地塑造它 —— 擁有它并隨時(shí)間推移對(duì)其進(jìn)行調(diào)整。樹莓派自認(rèn)為很了解顧客的需求,并且努力將他們置于相當(dāng)一部分軟件開發(fā)工作的核心位置。
訪問(wèn) rpi-image-gen GitHub 倉(cāng)庫(kù)開始使用。在那里,您會(huì)找到文檔和示例,指導(dǎo)您創(chuàng)建定制的樹莓派鏡像。我們鼓勵(lì)您探索該倉(cāng)庫(kù)并提供反饋,以幫助我們進(jìn)一步改進(jìn)該工具。
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6995瀏覽量
124588 -
軟件
+關(guān)注
關(guān)注
69文章
5080瀏覽量
88703 -
樹莓派
+關(guān)注
關(guān)注
118文章
1896瀏覽量
106468
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論