Yocto Project 其實是一個開源專案,主要是為嵌入式系統提供較靈活與高效的 Linux 發行版建構框架。這個發行板其實就是我們常使用的 Ubuntu Redhat 等等,這些都是常見的發行版。
雖然 Yocto 不太好學,相較於其他像是 Buildroot 入門不是太容易,但勝在他足夠靈活。
未來如果需要新增什麼新的功能,我們只需要去修改或寫新的recipe,就可以非常容易的將功能新增到我們的 image 當中。
Yocto Project 最主要的幾個核心如下,可以用來幫助我們來建立 Linux 發行版。
Bitbake:任務執行引擎,用來處理(recipes)和建構系統。Bitbake 可以自動化的編譯,並且處理系統的依賴關係。
OpenEmbedded Core:提供了 Yocto Project 的基礎架構和核心功能,可以用來構建不同的 Linux 發行版。
Poky:Yocto Project 的參考發行版,包含了 OpenEmbedded Core 和一些預設的設定文件。
可以用它作為開發和學習,當中給我們提供了許多基本的工具與範例。
Yocto Metadata:包括各種recipe、conf 和 metadata,主要是用於說明如何建構與配置軟體包。這些metadatab 讓 Yocto 能夠靈活地客制和建構自己的 Linux 系統。
後續會在說明 recipe conf metadata 的用途與定義。
上圖是官方說明 Yocto 的工作流程,最上方是將遠端倉庫的檔案給下載下來,並且儲存到本地端 (GIT 版本管控)
,最左側則是設定我們的目標機器配置(EX : STM32MP1),寫我們自己的 recipe與conf等等,並且這兩樣會進到藍色底的 build system 當中,經過一系列的編譯過程最後生成我們的 rootfs 、 bootfs 、 application 、 image 等等相關的燒錄檔案。
簡單來說可以分為下方幾個部分
官方連結 : https://docs.yoctoproject.org/index.html
官方提供了非常多的基本教學文件,如果有興趣的話也可以到官網上看看。