Yuan のノート
心之所至,隨意亂書
Yocto 基礎介紹
Tue Jul 27, 2021
🏷️

前言

先前有接觸過 buildroot 這類的 Linux Distribution 工具,但一直沒有好好的整理起來。
最近剛好有機會接觸 Yocto,打算在摸索的過程中一並記錄起來。

主要內容

Yocto 專案

有關於 Yocto 專案的歴史就不多做介紹了,有興趣的同學可以到它的官網看看。

Yocto 官網畫面

Yocto 官網畫面

基本觀念

Yocto 開發流程

Yocto 開發流程

Machine

相關的配置會放在 conf/machine/ 中。它用來描述與硬體有關的配置。通常包含: Kernel、Devices Tree、Bootloader。

Distrobution

相關的配置會放在 conf/distro/ 中。它作為整個配置中最底層的部份。接下來的 Layer 都會以此為基礎往上疊加。通常它也訂定了此系統的 ABI 。

Image

相關的配置會放在 recipes-*/images/ 中。它就是 rootfs。

Layer

是由 Recipe 所組成,根據不同用途可以定義出BSP Layer, General Layer。
一般來說我們會以 meta- 開頭作為 Layer 的命名。

Recipe

是由一系列建構 Package 的指令所組成。描述了 Package 該如何取得源始碼、如何進行配置、如何進行編譯以及安裝的步驟。

Package

在 Yocto 中 Package 是代表 Recipe 的執行結果。

建立 Yocto 環境

下載 Poky。

等一下… 怎麼突然就冒一個 poky 出來
這個就先請同學自行去 Yocto 的官網看了

1
2
mkdir yocto && cd yocto
git clone git://git.yoctoproject.org/poky.git

輸入下列指令初始化環境,它會幫我們建立 first-build 資料夾。並設置好相關的環境變數。

1
source poky/oe-init-build-env first-build

開始第一個專案

輸入下列指令,就會開始進行編譯了。

1
bitbake core-image-miminal
依照網路環境、編譯主機的不同,執行的時間會有所不同。但第一次都要蠻久的就是了。

在編譯完成之後,使用 qemu 來看看成果。

1
runqemu qemuarm core-image-miminal nographic slirp

使用 root 登入

登入畫面

登入畫面

小結

本文記錄了 Yocto 開發時會需要知道的基楚資訊,未來在開發時,有發現不足的部份會再持續的補充。

參考連結

相關頁面