0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用YOCTO的力量進(jìn)行Linux操作系統(tǒng)移植項目

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Sreedevi Vamanan ? 2022-06-30 09:05 ? 次閱讀

本文檔是為從事嵌入式 Linux 應(yīng)用程序的開發(fā)人員社區(qū)創(chuàng)建的。本文檔的目的是指導(dǎo)您完成使用Yocto 框架為 Linux 發(fā)行版構(gòu)建映像的步驟。

PS – 為了最好地利用本文檔中的信息,必須具備以下專業(yè)知識:

熟悉基本的 Linux 操作系統(tǒng)操作和管理任務(wù)

Yocto項目和OpenEmbedded項目的理解

了解構(gòu)建系統(tǒng)的基礎(chǔ)知識

了解系統(tǒng)要求和 OpenEmbedded (OE) 構(gòu)建系統(tǒng):

在我們討論工作流程之前,必須對系統(tǒng)要求和 OE 構(gòu)建系統(tǒng)有一個基本的了解。以下是必要的細(xì)節(jié)。

一個。系統(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 等)

在無頭系統(tǒng)上構(gòu)建映像的要點(diǎn)

圖形和 Eclipse 插件附加功能

文檔

OpenEmbedded 自檢

3. Yocto 項目的任何版本

灣。OpenEmbedded 構(gòu)建系統(tǒng)和 BitBake 工具

OpenEmbedded (OE)是 Yocto 項目的構(gòu)建系統(tǒng)。這個構(gòu)建系統(tǒng)的核心組件是BitBake。

BitBake 執(zhí)行解析元數(shù)據(jù)、從元數(shù)據(jù)創(chuàng)建任務(wù)列表等任務(wù)。

poYBAGK89wOABNiHAALcO1RFjkI627.png

圖 2:Yocto IDE

BitBake 工具由以下功能塊組成:

用戶配置:這包括用于管理 YOCTO 構(gòu)建過程的元數(shù)據(jù)。作為開發(fā)人員,您可以通過指定目標(biāo)架構(gòu)、存儲下載源的位置以及使用用戶配置文件的其他構(gòu)建屬性來定義構(gòu)建環(huán)境。

元數(shù)據(jù)、機(jī)器和策略配置層:這些層包含對構(gòu)建過程管理至關(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ā)行版的配置、初始化腳本。

源文件:包括上游版本、本地項目和源代碼控制管理器 (SCM) 等源文件,構(gòu)建系統(tǒng)從中下載源文件以構(gòu)建映像。

構(gòu)建系統(tǒng):該塊指定 BitBake 獲取源、應(yīng)用補(bǔ)丁、執(zhí)行編譯、分析輸出以生成包、生成和測試這些包、生成圖像和交叉開發(fā)工具的過程。

Package Feeds:此模塊由目錄組成,其中包含 RPM、DEB 或 IPK 格式的各種類型的輸出包。在構(gòu)建由構(gòu)建系統(tǒng)生成的映像或 SDK 時使用包提要。它們還用于在運(yùn)行時通過在 Web 服務(wù)器上復(fù)制和共享它們來擴(kuò)展或更新設(shè)備上的現(xiàn)有圖像。

圖像:這是一個輸出模塊,用于管理由構(gòu)建系統(tǒng)創(chuàng)建的 Linux 圖像。

應(yīng)用開發(fā)SDK:該模塊由各種交叉開發(fā)工具組成,可以與鏡像一起構(gòu)建,也可以與BitBake分開構(gòu)建。

使用 Yocto 項目作為嵌入式 Linux 構(gòu)建系統(tǒng)的工作流程:

poYBAGK89xCAXfX3AAHS2CdTC38618.png

圖 1:工作流程:使用 Yocto 構(gòu)建 Linux 映像

為 YOCTO 構(gòu)建系統(tǒng)設(shè)置主機(jī)系統(tǒng):主機(jī)系統(tǒng)應(yīng)符合最低系統(tǒng)要求,如前所述。此外,您應(yīng)該測試主機(jī)構(gòu)建系統(tǒng)的以下內(nèi)容:

一個。所需的包

灣。構(gòu)建系統(tǒng)滿足 Git、tar 和 Python 的最低版本要求

C。如果沒有,請安裝預(yù)構(gòu)建的構(gòu)建工具,例如 Tarball,或者

d。構(gòu)建您自己的構(gòu)建工具,類似于 Tarball,前提是您的構(gòu)建主機(jī)可以運(yùn)行 BitBake。

下載 所需版本的 YOCTO 版本:通過克隆 Poky Git 存儲庫的本地副本,在主機(jī)開發(fā)系統(tǒng)上設(shè)置最新的 Yocto 項目文件。

下載供應(yīng)商為 BSP 提供的元數(shù)據(jù):根據(jù)處理器平臺(ARM、MIPS、PowerPC 和 x86),您可以下載特定供應(yīng)商提供的 BSP 元數(shù)據(jù)。

將供應(yīng)商元數(shù)據(jù)添加到 Yocto 構(gòu)建系統(tǒng):通過創(chuàng)建存儲庫的本地副本將供應(yīng)商元數(shù)據(jù)添加到您的構(gòu)建主機(jī)環(huán)境。例如,meta-intel 是 Intel 特定目標(biāo)架構(gòu)的元數(shù)據(jù)。

進(jìn)行構(gòu)建配置更改:檢查本地配置文件并通過編輯 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ò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 鏡像所需的所有命令。接下來通過一系列操作 Yocto (IDE) 將根據(jù)元數(shù)據(jù)中的信息/規(guī)范構(gòu)建圖像。

使用 QEMU 模擬和測試 Linux 映像:QEMU 作為模擬器和虛擬化機(jī)器,支持使用 Yocto Project 架構(gòu)構(gòu)建的 Linux 映像和應(yīng)用程序的測試,而無需在實際硬件上運(yùn)行它。

要在 QEMU Emulator 上運(yùn)行 Linux 映像,請使用 runqemu 命令

編寫 Linux 映像:根據(jù) TARGET_DEVICE 命令中提供的信息,您可以借助 poky 存儲庫中包含的 mkefidisk.sh 腳本在任何目標(biāo)設(shè)備(如 SATA 驅(qū)動器、SD 卡甚至 USB 密鑰)上編寫 Linux 映像。

為什么在 Linux 項目中使用 Yocto 框架?

輕松定制:Yocto 擁有一個非常健壯和強(qiáng)大的定制架構(gòu),它提供了許多定制選項,例如封裝尺寸、啟用/禁用圖形子系統(tǒng)、可視化中間件和服務(wù)等組件。

供應(yīng)商支持:Yocto Project 得到了大多數(shù)半導(dǎo)體和操作系統(tǒng)供應(yīng)商以及主要電子制造公司的支持。因此,使用 Yocto,您可以利用堅實的支持生態(tài)系統(tǒng)并實現(xiàn)您的項目目標(biāo)。

可重用性:Yocto 項目通過共享狀態(tài)機(jī)制促進(jìn)了這一點(diǎn)。這允許在類似的構(gòu)建中重用資源。

嵌入式 Linux 應(yīng)用程序的簡化構(gòu)建操作:Yocto 的單一通用框架幫助擺脫了對離散構(gòu)建系統(tǒng)的依賴,其中每個 SoC 供應(yīng)商都創(chuàng)建了自己的構(gòu)建框架,僅與他們的微處理器平臺兼容。

無縫添加 UI 組件:支持增強(qiáng)帶顯示設(shè)備的用戶體驗。Qt、Clutter 等系統(tǒng)組件(如 X11、GTK+ 和 SDL)促進(jìn)了這一點(diǎn)。

仿真器支持:它支持使用 QEMU 仿真器進(jìn)行硬件和設(shè)備仿真。因此,通過 Yocto Project 構(gòu)建的映像可以在 QEMU 仿真器內(nèi)啟動,開發(fā)環(huán)境充當(dāng)嵌入式軟件的測試平臺。

增加便利性:Yocto 憑借其用于構(gòu)建系統(tǒng)和移植操作系統(tǒng)的可定制配方、工具和模板,使開發(fā)人員能夠?qū)W⒂谄渌诵拈_發(fā)任務(wù)。

系統(tǒng)管理和更新:每 6 個月發(fā)布一個新版本的 Yocto,包括內(nèi)核 (LTSI)、工具鏈和軟件包版本。

縮短 Crucial 嵌入式 Linux 應(yīng)用程序的上市時間:使用 Yocto,開發(fā)人員可以在幾個小時內(nèi)從頭開始構(gòu)建整個 Linux 系統(tǒng)(根據(jù)項目組件,低至 1-2 小時)。

隨時可用的 開發(fā)工具:作為 Yocto 用戶,您可以訪問各種開發(fā)工具,例如應(yīng)用程序開發(fā)工具包 (ADT)、ECLIPSE IDE 插件、嵌入式設(shè)備的圖形 UI (Matchbox)、QA 工具等等。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5086

    文章

    19141

    瀏覽量

    305932
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11314

    瀏覽量

    209774
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2264

    瀏覽量

    82526
收藏 人收藏

    評論

    相關(guān)推薦

    deepin操作系統(tǒng)介紹

    希望從自己的能力和對桌面操作系統(tǒng)的理解,能給 Linux 的用戶與開發(fā)者更多的選擇。我們也相信 deepin 能夠得到更多用戶的認(rèn)可與喜愛,成為開源世界的最佳選擇。? 一、 deepin 操作系統(tǒng) 先說
    的頭像 發(fā)表于 12-23 09:08 ?380次閱讀
    deepin<b class='flag-5'>操作系統(tǒng)</b>介紹

    linux是實時系統(tǒng)還是分時操作系統(tǒng)

    大家平時玩單片機(jī)基本上對于μC/OS、FreeRTOS、ThreadX這些操作系統(tǒng)非常熟悉了,他們都屬于實時操作系統(tǒng)(RTOS),在工業(yè)領(lǐng)域比較廣泛;然而對于linux這樣的基于時間片劃分的非實時
    的頭像 發(fā)表于 11-11 11:43 ?511次閱讀

    linux操作系統(tǒng)安裝步驟 linux操作系統(tǒng)的特點(diǎn)及組成

    Linux操作系統(tǒng)安裝步驟 Linux操作系統(tǒng)是一種開源的操作系統(tǒng),它以其穩(wěn)定性、安全性和靈活性而聞名。以下是安裝
    的頭像 發(fā)表于 10-21 11:24 ?584次閱讀

    Linux操作系統(tǒng)份額創(chuàng)歷史新高,逼近4.5%里程碑

    在最新的全球操作系統(tǒng)市場份額報告中,市調(diào)機(jī)構(gòu)StatCounter于8月27日發(fā)布了令人矚目的數(shù)據(jù):2024年7月,Linux系統(tǒng)實現(xiàn)了歷史性的飛躍,其市場份額首次逼近4.5%的關(guān)口,達(dá)到了4.44%的新高。這一成就標(biāo)志著
    的頭像 發(fā)表于 08-27 17:05 ?919次閱讀

    Linux操作系統(tǒng)運(yùn)行參數(shù)自動調(diào)整技術(shù)

    Linux操作系統(tǒng)運(yùn)行參數(shù)的自動調(diào)整是一個復(fù)雜而關(guān)鍵的技術(shù),它可以顯著提高系統(tǒng)性能、穩(wěn)定性和資源利用率。通過使用自適應(yīng)算法特別是內(nèi)核態(tài)的機(jī)器學(xué)習(xí)框架、性能監(jiān)控工具和配置管理工具,能夠在
    的頭像 發(fā)表于 08-22 09:53 ?316次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>運(yùn)行參數(shù)自動調(diào)整技術(shù)

    米爾瑞米派集聚5種操作系統(tǒng),兼顧學(xué)習(xí)開發(fā)和項目產(chǎn)品需要的派

    BSP與系統(tǒng)移植 Remi Pi_Linux軟件評估指南介紹使用Yocto項目安裝運(yùn)行Linux
    發(fā)表于 07-05 17:26

    工業(yè)實時操作系統(tǒng)對比:鴻道Intewell跟rt-linux有啥區(qū)別

    Intewell和RT-Linux是兩種不同的實時操作系統(tǒng)(RTOS),它們具有各自獨(dú)特的特點(diǎn)和優(yōu)勢。以下是Intewell操作系統(tǒng)的一些關(guān)鍵特性,以及與RT-Linux的比較:
    的頭像 發(fā)表于 07-03 10:00 ?546次閱讀
    工業(yè)實時<b class='flag-5'>操作系統(tǒng)</b>對比:鴻道Intewell跟rt-<b class='flag-5'>linux</b>有啥區(qū)別

    研華工控機(jī)用什么系統(tǒng)?Windows與Linux操作系統(tǒng)的較量

    工控機(jī)用什么系統(tǒng)?Windows與Linux操作系統(tǒng)的較量。工控機(jī)(工業(yè)控制計算機(jī))作為工業(yè)自動化和監(jiān)控系統(tǒng)的核心組件,其穩(wěn)定性、可靠性和性能對整個
    的頭像 發(fā)表于 06-14 14:38 ?718次閱讀
    研華工控機(jī)用什么<b class='flag-5'>系統(tǒng)</b>?Windows與<b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>的較量

    AURIX3G可以使用Linux操作系統(tǒng)嗎?

    即使在 AURIX3G 中,也可以使用 Linux 操作系統(tǒng)嗎?
    發(fā)表于 05-22 07:12

    服務(wù)器操作系統(tǒng)有幾種?

    眾所周知,電腦上的一切正常運(yùn)作都不可缺電腦操作系統(tǒng)的使用,網(wǎng)絡(luò)服務(wù)器做為這種出示服務(wù)項目的服務(wù)器,或許都是不可 或缺的電腦操作系統(tǒng)。常用的網(wǎng)絡(luò)服務(wù)器電腦操作系統(tǒng)有許多,比如:Windo
    發(fā)表于 03-29 16:59

    瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時的注意事項

    瑞薩CTSU程序在向嵌入式OS操作系統(tǒng)移植時的注意事項
    的頭像 發(fā)表于 03-29 08:05 ?363次閱讀
    瑞薩CTSU程序在向嵌入式OS<b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>移植</b>時的注意事項

    瑞薩正式加入Zephyr項目,攜手共建開源實時操作系統(tǒng)新生態(tài)

    近日,業(yè)界領(lǐng)先的半導(dǎo)體解決方案提供商瑞薩宣布正式加入Zephyr?項目,并榮升為銀級會員。Zephyr作為Linux基金會的開源項目,致力于面向未來、資源受限的設(shè)備打造安全、互聯(lián)且靈活的實時
    的頭像 發(fā)表于 03-12 09:18 ?707次閱讀

    Linux操作系統(tǒng)上的射頻測試模式應(yīng)用指南

    電子發(fā)燒友網(wǎng)站提供《Linux操作系統(tǒng)上的射頻測試模式應(yīng)用指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 09:39 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>上的射頻測試模式應(yīng)用指南

    全國大學(xué)生計算機(jī)系統(tǒng)能力大賽操作系統(tǒng)設(shè)計賽-LoongArch 賽道廣東龍芯2K1000LA 平臺資料分享

    項目是用于蘭州大學(xué)的教學(xué)操作系統(tǒng),蘭州大學(xué)相關(guān)團(tuán)隊為其編寫了教材《MaQueOS:基于龍芯LoongArch架構(gòu)的教學(xué)版操作系統(tǒng)》。 Yocto.
    發(fā)表于 02-04 15:37

    Linux操作系統(tǒng)中如何按下PCIe的復(fù)位鍵

    Linux操作系統(tǒng)中,看如何按下PCIe的復(fù)位鍵
    的頭像 發(fā)表于 01-20 09:31 ?1621次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>中如何按下PCIe的復(fù)位鍵