利用Yocto創建獨有的嵌入式 Linux 應用

2021-01-11 電子產品世界

作為靈活多變且經濟高效的解決方案,嵌入式 Linux展現了巨大的價值,並廣泛應用於消費電子設備、網絡設備、零售點和行業應用程式。然而,廣泛的應用也意味著多樣化的業務需求,嵌入式解決方案開發人員必須構建定製Linux 版本來滿足其特定需求。

本文引用地址:http://www.eepw.com.cn/article/201610/305448.htm

這導致了嵌入式Linux 市場的亂象,一直以來,開發人員不得不向各家晶片製造廠商尋求主板支持包(BSP)和工具。而且這些部件往往是基於不同制式開發的,這無異於雪上加霜。雖然市面上有數百種可用的嵌入式Linux 發行版,但每個版本都是高度定製的,這導致了大量的重複工作,很多開發人員創建了大同小異的Linux 版本,再基於其開發自己的增值特性和功能。

自由修改Linux 來創建定製版本是一把雙刃劍,一方面證明了開源軟體的巨大價值,另一方面也是導致複雜性的根源。創建定製版本在開發、集成、測試和驗證方面要承擔巨大的開銷。由於大多數解決方案開發人員所創造的增值效應並不會很快顯現,因而這些工作的「性價比」往往並不高。BSP 集成通常也比較複雜和困難,這也顯著增加了項目的成本和風險。

鑑於此,開放原始碼運動的精英們意識到了統一化、一致化對於Linux性命攸關,他們聚集起來,啟動了Yocto Project計劃,開始為開源社區培植變革的火種。

Yocto Project通過一個開源協作項目解決了這些難題,它提供了一整套模板、工具和方法以簡化定製Linux 開發。這個開源項目得到了來自商業和開源生態系統的廣泛參與和支持,包括各大晶片廠商、主流作業系統供應商和獨立顧問。

Yocto項目鼓勵跨各種應用程式和設備類型的創新,支持多種硬體架構,包括x86(32 位和 64 位)、arm、PPC 和MIPS。隨著硬體BSP 支持的增加和BSP 格式的標準化,這個項目創造了巨大的價值。

作為 Yocto Project 的創始成員之一,英特爾在 Linux Foundation 的協調下,與各個社區共同致力於為嵌入式開發人員創建一個共享的開發環境,並提供了模板、工具和最佳實踐,以簡化定製的嵌入式 L i n ux 應用程式的開發。通過提供的關鍵技術,Yocto Project 與英特爾架構之間實現完美的協同增效。

Yocto Project提供全面的開發解決方案

Yocto Project 為嵌入式開發人員提供資源, 項目採用了OpenEmbedded-Core 作為其上遊發布版本。項目擁有一個積極的社區,不斷完善、測試和更新 Yocto Project 內核和其他組件。

項目站點提供了全面的文檔, 構建系統( 基於OpenEmbedded 架構)、交叉構建工具、通用的打包系統和一個應用程式開發人員 SDK。Yocto Project 提供的核心組件包括:

x-Architecture。Yocto Project 擴展了構建系統的功能,為 Yocto Project 內核和三個構建配置文件(最小構建、sato 構建和 LSB 構建)提供了最新的經過全面測試的元數據。

BSP。項目包含大量經過測試的 BSP,大大提高了在硬體和架構之間的可移植性,此外還提供了原始碼方案以及生成的 Yocto Project 參考運行時映像。

SDK。Yocto Project 工具可以利用 Eclipse和 Anjuta 插件自動創建一個 SDK 或應用程式開發人員工具包,SDK 可用於開發應用程式, 適用於和特定的定製運行時映像一起使用。

使用Yocto Project帶來的優勢

Yocto Project 為解決嵌入式Linux 開發亂象邁出了一大步。晶片、作業系統和設備廠商之間的協作和戰略規劃有助於實現廣泛而一致的行業支持。因此,作業系統廠商可以基於 Yocto Project 內核來開發商業作業系統和其他產品,而且晶片廠商也可以提供硬體 BSP。

總之,該項目為整個生態系統提供了以下獲益:

健壯的構建系統。Yocto Project 支持從其他常用構建系統輕鬆遷移到 Yocto Project 的經過事實驗證的環境,而且新的軟體版本更新也十分容易。

靈活的定製能力。開發人員可以自由選擇資源的使用,或者完善特定的組件(包括這些組件的特定版本)。

可簡單地向商業作業系統遷移。Yocto Project 的設計允許用戶使用自主開發的作業系統或商業作業系統,在遷移時不會丟失優化或功能。此外,商業作業系統也可以使用 Yocto Project 作為上遊資源,從而確保最大化代碼重用。

綜上所述,Yocto Project賦予開發人員一個極高的起點,幫助他們避免重複工作以及不必要的維護。事實上,Yocto Project是全球最大的開源項目之一,以此為基礎而開發的通用創建系統,可幫助開發人員避免從零開始,轉而把時間和資源集中於開發差異化Linux設備,從而實現投資回報最大化。


相關焦點

  • yocto
    yocto 文章
  • 如何在MIPS平臺上使用Yocto設備定製的嵌入式系統Linux
    在這些設備上運行的軟體很有可能是高度定製的針對嵌入式系統的Linux。若要使用OS用作特定的任務,或優化工作流,那麼,最理想的便是運行定製版Linux。 本文將簡要闡述設計師如何使用Yocto開源基礎設備,在MIPS平臺上定製嵌入式Linux發行版——使設計師能聚焦於產品本身,而不是創建定製發行版帶來的複雜性。
  • 為什麼 YOCTO 項目不叫「LINUX」
    2010 年,我們團隊雄心壯志,希望啟動一個能夠顛覆嵌入式軟體領域的項目。 我們知道, 物聯網領域的軟體開發工作極其混亂,許多努力都已付諸東流。 我們希望開發一項技術,成為物聯網設備與產品軟體的通用起 點。 堅持協作與省時省力的基本原則
  • 基於Yocto Project的嵌入式應用設計
    摘要:Yocto Project是一個開源項目,可以在任意硬體上(如x86、x86-64、ARM、PPC、MIPS)為任意嵌入式設備構建自定義嵌入式Linux應用所需的模板、工具和資源,極大地簡化了開發過程。
  • 從RTOS到Linux的應用移植
    引言  在過去幾年中,Linux成功地取代了一些最主要的傳統RTOS(實時作業系統)平臺,成為了各種各樣的嵌入式設備和應用中首選的嵌入式作業系統
  • 嵌入式Linux的GDB調試環境建立
    嵌入式Linux的GDB調試環境由Host和Target兩部分組成,Host端使用arm-linux-gdb,Target Board端使用gdbserver。
  • 嵌入式Linux開發環境的搭建之:嵌入式開發環境的搭建
    本文引用地址:http://www.eepw.com.cn/article/257141.htm5.1嵌入式開發環境的搭建5.1.1嵌入式交叉編譯環境的搭建linux作業系統文章專題:linux作業系統詳解(linux不再難懂)交叉編譯的概念在第4章中已經詳細講述過,搭建交叉編譯環境是嵌入式開發的第一步,也是必備的一步。
  • 嵌入式Linux用Qt Designer快速開發
    RAD(快速應用程式開發)是一種高效的軟體開發形式,可以讓用戶在極短的時間裡創建一個圖形化的用戶界面。通常情況下,在一張空白的表單上,開發人員可以通過拖拉或點擊的方式,在窗口的適當位置上添加一些輸入框和按鈕等窗口組件。
  • 如何在虛擬機中運行 YOCTO LINUX 作業系統
    本文將為大家介紹如何創建 Yocto* 的可運行映像,如何在基礎軟體模擬器 QEMU 中測試該映像,以及如何在管理程序(比如 Windows 上的 Microsoft Hyper-V)中運行該映像。
  • 基於嵌入式Linux的語音識別系統硬軟體設計
    在嵌入式Linux作業系統下,運用多進程機制完成了對語音識別晶片、超聲波測距和雲臺的控制,並將語音識別技術應用於多角度超聲波測距系統中。通過測試,系統可以通過識別語音指令控制測量方向,無需手動幹預,最後將測量結果通過語音播放出來。
  • 程式設計師及嵌入式的一些學習建議
    我們進行嵌入式linux開發,只是把linux桌面環境當作一個工具,在linux桌面環境下運行嵌入式linux開發工具,例如gcc 編譯器,make工具來開發我們的嵌入式linux應用程式而已,對於嵌入式開發工程師來說,沒有必要花費那麼多的精力和時間去研究linux桌面版和伺服器的應用,只要能了解最基本的操作即可。
  • Yocto 3.0 (zeus) 發布 —— 支持多架構的Linux系統構建工具
    詳情請見:https://lists.yoctoproject.org/pipermail/yocto/2019-October/047111.htmlYocto是Linux系統構建工具。相比於buildroot和openwrt,yocto的優勢在於以下三點。1. 可擴展性好。
  • 嵌入式Web伺服器GoAhead在電力系統通信中應用
    簡單介紹GoAhead嵌入式Web伺服器的基本特點,接著講解了嵌入式Web配置管理功能在電力系統通信中應用的工作原理及設計方法。以工業乙太網交換機為實例,介紹了軟體系統功能,並詳細討論了軟體系統工作流程。
  • 談GJB5000A二級在中小型嵌入式軟體研發中的應用
    文章著重在軟體項目管理、軟體可靠性兩方面進行闡述,並討論了項目信息化管理和軟體測試在這兩方面的應用。關鍵詞:GJB5000A;軟體項目管理;軟體可靠性 隨著GJB5000A-2008《軍用軟體研製能力成熟度模型》在我國科研單位的逐步應用推廣,軟體產品研製過程的工程化要求越來越科學和嚴格。
  • 嵌入式Web伺服器技術及其在電力系統中的應用綜述
    更重要的是這些協議是開放、標準和獨立於系統平臺的,利用現有的網絡硬體基礎,就可以很方便地建立基於TCP/IP網絡協議的Internet/Intranet網絡系統。Web技術允許任意地點的用戶通過Web瀏覽器接入網絡,訪問Web伺服器發布的各類信息,實現世界範圍內的互聯[1]。
  • 何為可深度定製的Yocto系統?
    那麼這些智能終端首先要強調的是說,用戶可以從網上自由下載軟體安裝使用,決定上面運行的軟體不僅僅是說OEM廠商定製的軟體,還要包括第三方軟體開發商為作業系統開發的軟體,如果要能夠保證第三方在上面運行穩健,最主要的要素,一個應用程式,要在一家設備上面運行,在另外一家Tizen運行,應用軟體要有中間件支持等等,要保證下面相兼容,如果看到市面的手機,比如安卓的手機,各家手機的界面完全不一樣,但是內核是一樣的
  • Linux基礎命令之:實驗內容及小結
    ,學會設置環境變量,同時搭建起嵌入式Linux的交叉編譯環境(關於交叉編譯的具體概念在本書後面會詳細講解),為今後的實驗打下良好的基礎。命令為:mkdir/usr/local/arm(9)將cross-3.3.2.tar.bz2複製到剛剛創建的目錄中。命令為:cp/mnt/win/cross-3.3.2.tar.bz2/usr/local/arm注意若cross-3.3.2.tar.bz2在當前目錄中,則可將命令簡寫為:cp.
  • 嵌入式WEB伺服器中TCP/IP協議棧的設計與實現
    1 嵌入式Web伺服器的結構分析嵌入式Web伺服器運行的目標系統大多是各類專用設備,內存資源和存儲器資源非常有限,它通常作為一種監控、管理手段去控制和配置各種電子設備,實現設備的智能化和信息化。嵌入式Web伺服器的應用系統框架如下圖所示:
  • 嵌入式linux新手入門手記-準備qt5.4.1開發平臺
    ubuntu的qt安裝在/home/XXXX/qt5.4.1目錄下,QtCreator也安裝在相同目錄下,上述的qtdemo程序用QtCreator創建並編譯通過。這裡需要注意一點,我們在交叉編譯qt5.4.1的工具包時,涉及到2種不同的編譯:第一種是使用ubuntu安裝的GCC和G++編譯qmake工具,這些qmake工具將運行在ubuntu下,用於將後續自己編寫的qt應用程式的原始碼編譯成能夠運行在arm平臺上的目標可執行程序;第二種是使用arm-linux-gnueabihf編譯器,將qt5.4.1的庫編譯成運行於arm平臺的靜態庫或者共享庫。
  • 在VIM中實現對嵌入式軟體的調試
    因此,在VIM中實現對嵌入式軟體的調試,我們便得到了一個高效、穩定的嵌入式Linux的開發環境。1 gdb對嵌入式軟體的調試模式 許多非Linux的嵌入式系統已經在使用gdb與gdbstub對目標板進行遠程「交叉調試」;然而,因為Linux內核實現了ptrace()系統調用,所以在對嵌入式應用程式進行調試的時候並不需要gdb stub,而採用gdb套件提供的gdb伺服器來對目標板上的嵌入式應用程式進行調試。