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

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

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

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

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

本文檔是為從事嵌入式 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ù)。

poYBAGK89wOABNiHAALcO1RFjkI627.png

圖 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)的工作流程:

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)該測(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 工具等等。

審核編輯:郭婷

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

    關(guān)注

    5059

    文章

    18974

    瀏覽量

    302066
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11212

    瀏覽量

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

    關(guān)注

    11

    文章

    2244

    瀏覽量

    82267
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

    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ù)項(xiàng)目的服務(wù)器,或許都是不可 或缺的電腦操作系統(tǒng)。常用的網(wǎng)絡(luò)服務(wù)器電腦操作系統(tǒng)有許多,比如:Windo
    發(fā)表于 03-29 16:59

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

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

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

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

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

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

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

    項(xiàng)目是用于蘭州大學(xué)的教學(xué)操作系統(tǒng),蘭州大學(xué)相關(guān)團(tuán)隊(duì)為其編寫了教材《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 ?1398次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系統(tǒng)</b>中如何按下PCIe的復(fù)位鍵

    能否自己在飛騰派上編寫或者移植操作系統(tǒng)

    我想了解一下,飛騰派官方提供的資料,能否支持自己進(jìn)行裸機(jī)開發(fā)(萌新一個(gè),沒(méi)看見地址映射和寄存器功能描述)?想使用它進(jìn)行操作系統(tǒng)開發(fā)和移植。
    發(fā)表于 12-16 07:54

    LInux 操作系統(tǒng)中斷介紹

    LInux 操作系統(tǒng)中斷 什么是系統(tǒng)中斷 這個(gè)沒(méi)啥可說(shuō)的,大家都知道; CPU 在執(zhí)行任務(wù)途中接收到中斷請(qǐng)求,需要保存現(xiàn)場(chǎng)后去處理中斷請(qǐng)求!保存現(xiàn)場(chǎng)稱為中斷處理程序!處理中斷請(qǐng)求也就是喚醒對(duì)應(yīng)的任務(wù)
    的頭像 發(fā)表于 11-13 11:36 ?845次閱讀
    <b class='flag-5'>LInux</b> <b class='flag-5'>操作系統(tǒng)</b>中斷介紹