iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
佛心分享-SideProject30

門外漢的嵌入式地獄系列 第 10

Day 10 。初入嵌入式開發-創建自己的 bbappend

  • 分享至 

  • xImage
  •  

bb 檔案是一個 recipe , 但我們可能會額外後期再加上補丁 修改等等 , 就可以使用 append 檔案來做追加的需求

規範

  1. 目錄架構需與原先的 bb 檔相同
  2. 名字必須與原 bb 檔 相同 , 後面可加上 _0.1.bnappend 或者 _%.bbappend , 0.1 為自訂的版本號 %為通用符,加不加都可。

EX : test_0.1.1.bb -> bb 檔案
test_0.1.1.bbappend -> bbappend 檔案
test_%.bbappend -> bbappend 檔案

用途

  1. 追加功能:通過 .bbappend 檔案,你可以在現有修改recipe中增加新的功能,例如,新增補丁或設置環境變數。

  2. 修改recipe:可以修改現有修改recipe中的變數或參數,如修改編譯選項、增加依賴等。

  3. 解決衝突:在不同的層之間協調recipe的版本,確保與其他層的兼容性。

  4. 自定義:根據專案的需求,對recipe進行特定的定制,而不影響原始recipe的維護。

通常會使用的時候應該是 當 bb 已經存在 , 但我們想要對他新增一些功能。
或者是 bb 是原先 BSP 所提供,為了好管理區分可以直接透過 bbappend 來追加修改。

如何建立

  1. 先找到我們想要修改的 recipe

假如我們想要修改的 recipe 所在位置如下
~/yocto/layers/meta-custom/recipe_test/test/test_0.1.bb

  1. 建立 .bbappend 檔案
    可以使用 devtool 產生檔案 , 或者手動建立。 我自己是習慣用手動的方式。
    我們可以直接在上面的路徑新增一個檔案 , 或者是以相同目錄架構在另外個地方新增。
    EX: ~/yocto/layers/meta-custom/recipe_test/test/test_%.bbappend
    EX: ~/yocto/layers/meta-cusadd/recipe_test/test/test_%.bbappend

要記得如果自己建立 layer 的話要透過指令新增到 bblayers 檔案當中。

bitbake-layers add-layer <layer_name>
bitbake-layers add-layer meta-cusadd
  1. 在 .bbappend 檔案當中修改我們想要做的內容 , 例如新增個檔案或是安裝套件之類的
SRC_URI += "file://my_patch.patch"
CFLAGS += "-DDEBUG"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
DEPENDS += "extra-dependency"

可以透過下方指令看看有沒有生效

bitbake -e <recipe>
  1. 之後再重新編譯
bitbake core-image-minimal

這邊要注意假如預設路徑沒有搜尋到的話,可能需要手動新增。


上一篇
Day 9 。初入嵌入式開發-創建自己的recipe
下一篇
Day 11 。初入嵌入式開發-TF-A 說明
系列文
門外漢的嵌入式地獄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言