本文檔是為從事嵌入式 Linux 應(yīng)用程序的開發(fā)人員社區(qū)創(chuàng)建的。本文檔的目的是指導(dǎo)您完成使用Yocto 框架為 Linux 發(fā)行版構(gòu)建映像的步驟。
PS – 為了最好地利用本文檔中的信息,必須具備以下專業(yè)知識(shí):
熟悉基本的 Linux 操作系統(tǒng)操作和管理任務(wù)
Yocto項(xiàng)目和OpenEmbedded項(xiàng)目的理解
了解構(gòu)建系統(tǒng)的基礎(chǔ)知識(shí)
了解系統(tǒng)要求和 OpenEmbedded (OE) 構(gòu)建系統(tǒng):
在我們討論工作流程之前,必須對(duì)系統(tǒng)要求和 OE 構(gòu)建系統(tǒng)有一個(gè)基本的了解。以下是必要的細(xì)節(jié)。
一個(gè)。系統(tǒng)要求:
1.主機(jī)系統(tǒng):理想情況下,至少有 50 GB 可用磁盤空間的系統(tǒng)可以在任何 Linux 發(fā)行版(即 Ubuntu、Fedora、CentOS、openSUSE 或 Debian)上運(yùn)行。大多數(shù)情況下,本機(jī) Linux 機(jī)器功能用作開發(fā)主機(jī)。
2 。 構(gòu)建包:確保您的主機(jī)開發(fā)系統(tǒng)具有以下包(關(guān)于 Linux 發(fā)行版 - Ubuntu、Fedora、CentOS 等)
在無(wú)頭系統(tǒng)上構(gòu)建映像的要點(diǎn)
圖形和 Eclipse 插件附加功能
文檔
OpenEmbedded 自檢
3. Yocto 項(xiàng)目的任何版本
灣。OpenEmbedded 構(gòu)建系統(tǒng)和 BitBake 工具
OpenEmbedded (OE)是 Yocto 項(xiàng)目的構(gòu)建系統(tǒng)。這個(gè)構(gòu)建系統(tǒng)的核心組件是BitBake。
BitBake 執(zhí)行解析元數(shù)據(jù)、從元數(shù)據(jù)創(chuàng)建任務(wù)列表等任務(wù)。
圖 2:Yocto IDE
BitBake 工具由以下功能塊組成:
用戶配置:這包括用于管理 YOCTO 構(gòu)建過(guò)程的元數(shù)據(jù)。作為開發(fā)人員,您可以通過(guò)指定目標(biāo)架構(gòu)、存儲(chǔ)下載源的位置以及使用用戶配置文件的其他構(gòu)建屬性來(lái)定義構(gòu)建環(huán)境。
元數(shù)據(jù)、機(jī)器和策略配置層:這些層包含對(duì)構(gòu)建過(guò)程管理至關(guān)重要的數(shù)據(jù)。
元數(shù)據(jù):這一層由用戶提供的配方文件、補(bǔ)丁和附加文件組成。
機(jī)器配置 (BSP):這一層包含特定于構(gòu)建映像的目標(biāo)架構(gòu)的信息。特定于機(jī)器配置的信息由 Yocto 分層架構(gòu)模型的 BSP 層提供。
Distro Layer/Policy Configuration:該層由指定特定分發(fā)的策略配置的數(shù)據(jù)組成。該層包括類文件、配置文件和配方。這些配方將包括自定義圖像配方、特定于發(fā)行版的配置、初始化腳本。
源文件:包括上游版本、本地項(xiàng)目和源代碼控制管理器 (SCM) 等源文件,構(gòu)建系統(tǒng)從中下載源文件以構(gòu)建映像。
構(gòu)建系統(tǒng):該塊指定 BitBake 獲取源、應(yīng)用補(bǔ)丁、執(zhí)行編譯、分析輸出以生成包、生成和測(cè)試這些包、生成圖像和交叉開發(fā)工具的過(guò)程。
Package Feeds:此模塊由目錄組成,其中包含 RPM、DEB 或 IPK 格式的各種類型的輸出包。在構(gòu)建由構(gòu)建系統(tǒng)生成的映像或 SDK 時(shí)使用包提要。它們還用于在運(yùn)行時(shí)通過(guò)在 Web 服務(wù)器上復(fù)制和共享它們來(lái)擴(kuò)展或更新設(shè)備上的現(xiàn)有圖像。
圖像:這是一個(gè)輸出模塊,用于管理由構(gòu)建系統(tǒng)創(chuàng)建的 Linux 圖像。
應(yīng)用開發(fā)SDK:該模塊由各種交叉開發(fā)工具組成,可以與鏡像一起構(gòu)建,也可以與BitBake分開構(gòu)建。
使用 Yocto 項(xiàng)目作為嵌入式 Linux 構(gòu)建系統(tǒng)的工作流程:
圖 1:工作流程:使用 Yocto 構(gòu)建 Linux 映像
為 YOCTO 構(gòu)建系統(tǒng)設(shè)置主機(jī)系統(tǒng):主機(jī)系統(tǒng)應(yīng)符合最低系統(tǒng)要求,如前所述。此外,您應(yīng)該測(cè)試主機(jī)構(gòu)建系統(tǒng)的以下內(nèi)容:
一個(gè)。所需的包
灣。構(gòu)建系統(tǒng)滿足 Git、tar 和 Python 的最低版本要求
C。如果沒(méi)有,請(qǐng)安裝預(yù)構(gòu)建的構(gòu)建工具,例如 Tarball,或者
d。構(gòu)建您自己的構(gòu)建工具,類似于 Tarball,前提是您的構(gòu)建主機(jī)可以運(yùn)行 BitBake。
下載 所需版本的 YOCTO 版本:通過(guò)克隆 Poky Git 存儲(chǔ)庫(kù)的本地副本,在主機(jī)開發(fā)系統(tǒng)上設(shè)置最新的 Yocto 項(xiàng)目文件。
下載供應(yīng)商為 BSP 提供的元數(shù)據(jù):根據(jù)處理器平臺(tái)(ARM、MIPS、PowerPC 和 x86),您可以下載特定供應(yīng)商提供的 BSP 元數(shù)據(jù)。
將供應(yīng)商元數(shù)據(jù)添加到 Yocto 構(gòu)建系統(tǒng):通過(guò)創(chuàng)建存儲(chǔ)庫(kù)的本地副本將供應(yīng)商元數(shù)據(jù)添加到您的構(gòu)建主機(jī)環(huán)境。例如,meta-intel 是 Intel 特定目標(biāo)架構(gòu)的元數(shù)據(jù)。
進(jìn)行構(gòu)建配置更改:檢查本地配置文件并通過(guò)編輯 bblayers.conf 和 local.conf 文件進(jìn)行構(gòu)建配置更改。這應(yīng)該在調(diào)用 BitBake 命令初始化構(gòu)建之前完成。
初始化構(gòu)建環(huán)境:要定義 OpenEmbedded 構(gòu)建環(huán)境,需要執(zhí)行構(gòu)建主機(jī)上的特定設(shè)置腳本。
該腳本創(chuàng)建一個(gè)構(gòu)建目錄,該目錄位于源目錄中。之后,當(dāng)前工作目錄設(shè)置為構(gòu)建目錄。構(gòu)建完成后,構(gòu)建目錄將包含構(gòu)建期間創(chuàng)建的所有文件。
開始構(gòu)建鏡像:現(xiàn)在 YOCTO IDE/ 框架已經(jīng)收到了構(gòu)建 Linux 鏡像所需的所有命令。接下來(lái)通過(guò)一系列操作 Yocto (IDE) 將根據(jù)元數(shù)據(jù)中的信息/規(guī)范構(gòu)建圖像。
使用 QEMU 模擬和測(cè)試 Linux 映像:QEMU 作為模擬器和虛擬化機(jī)器,支持使用 Yocto Project 架構(gòu)構(gòu)建的 Linux 映像和應(yīng)用程序的測(cè)試,而無(wú)需在實(shí)際硬件上運(yùn)行它。
要在 QEMU Emulator 上運(yùn)行 Linux 映像,請(qǐng)使用 runqemu 命令
編寫 Linux 映像:根據(jù) TARGET_DEVICE 命令中提供的信息,您可以借助 poky 存儲(chǔ)庫(kù)中包含的 mkefidisk.sh 腳本在任何目標(biāo)設(shè)備(如 SATA 驅(qū)動(dòng)器、SD 卡甚至 USB 密鑰)上編寫 Linux 映像。
為什么在 Linux 項(xiàng)目中使用 Yocto 框架?
輕松定制:Yocto 擁有一個(gè)非常健壯和強(qiáng)大的定制架構(gòu),它提供了許多定制選項(xiàng),例如封裝尺寸、啟用/禁用圖形子系統(tǒng)、可視化中間件和服務(wù)等組件。
供應(yīng)商支持:Yocto Project 得到了大多數(shù)半導(dǎo)體和操作系統(tǒng)供應(yīng)商以及主要電子制造公司的支持。因此,使用 Yocto,您可以利用堅(jiān)實(shí)的支持生態(tài)系統(tǒng)并實(shí)現(xiàn)您的項(xiàng)目目標(biāo)。
可重用性:Yocto 項(xiàng)目通過(guò)共享狀態(tài)機(jī)制促進(jìn)了這一點(diǎn)。這允許在類似的構(gòu)建中重用資源。
嵌入式 Linux 應(yīng)用程序的簡(jiǎn)化構(gòu)建操作:Yocto 的單一通用框架幫助擺脫了對(duì)離散構(gòu)建系統(tǒng)的依賴,其中每個(gè) SoC 供應(yīng)商都創(chuàng)建了自己的構(gòu)建框架,僅與他們的微處理器平臺(tái)兼容。
無(wú)縫添加 UI 組件:支持增強(qiáng)帶顯示設(shè)備的用戶體驗(yàn)。Qt、Clutter 等系統(tǒng)組件(如 X11、GTK+ 和 SDL)促進(jìn)了這一點(diǎn)。
仿真器支持:它支持使用 QEMU 仿真器進(jìn)行硬件和設(shè)備仿真。因此,通過(guò) Yocto Project 構(gòu)建的映像可以在 QEMU 仿真器內(nèi)啟動(dòng),開發(fā)環(huán)境充當(dāng)嵌入式軟件的測(cè)試平臺(tái)。
增加便利性:Yocto 憑借其用于構(gòu)建系統(tǒng)和移植操作系統(tǒng)的可定制配方、工具和模板,使開發(fā)人員能夠?qū)W⒂谄渌诵拈_發(fā)任務(wù)。
系統(tǒng)管理和更新:每 6 個(gè)月發(fā)布一個(gè)新版本的 Yocto,包括內(nèi)核 (LTSI)、工具鏈和軟件包版本。
縮短 Crucial 嵌入式 Linux 應(yīng)用程序的上市時(shí)間:使用 Yocto,開發(fā)人員可以在幾個(gè)小時(shí)內(nèi)從頭開始構(gòu)建整個(gè) Linux 系統(tǒng)(根據(jù)項(xiàng)目組件,低至 1-2 小時(shí))。
隨時(shí)可用的 開發(fā)工具:作為 Yocto 用戶,您可以訪問(wèn)各種開發(fā)工具,例如應(yīng)用程序開發(fā)工具包 (ADT)、ECLIPSE IDE 插件、嵌入式設(shè)備的圖形 UI (Matchbox)、QA 工具等等。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5059文章
18974瀏覽量
302066 -
Linux
+關(guān)注
關(guān)注
87文章
11212瀏覽量
208721 -
微處理器
+關(guān)注
關(guān)注
11文章
2244瀏覽量
82267
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論