簡體   English   中英

bitbake 如何在構建過程中搜索配方?

[英]How bitbake searches for recipe in build process?

我試圖找出 bitbake 如何在構建過程中搜索配方? 例如,我有一個類似下面的食譜:

DESCRIPTION = "PetaLinux GSTREAMER supported packages"

inherit packagegroup

GSTREAMER_PACKAGES = " \
    gstreamer1.0 \
    gstreamer1.0-python \
    gstreamer1.0-meta-base \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-bad \
    gstreamer1.0-rtsp-server \
    gst-shark \
    gstd \
    gst-perf \
    gst-interpipes \
    "
GSTREAMER_PACKAGES_append_zynqmp = " gstreamer1.0-omx"

RDEPENDS_${PN} = "${GSTREAMER_PACKAGES}"

當我在yocto層搜索gstreamer1.0相關recipe時,我發現了兩個recipe,一個是meta層的gstreamer1.0_1.16.1.bb ,另一個是meta-petalinux層的gstreamer1.0_%.bbappend

這兩個層都被添加到bblayers.conf文件中的BBLAYERS中,並且在相關層的 layer.conf 文件中用BBFILE_PRIORITY_ * 指定的優先級是相同的。

那么,在這種情況下,構建過程中將使用哪個配方? yocto 中的食譜查找規則是什么?

我改變了一些東西來理解行為:例如,

  1. 我輸入了gstreamer1.0_%.bbappend配方中指定的無效 github URL。 當我嘗試構建linux系統時,遇到了錯誤。 沒關系。
  2. 然后我更正了此配方中的 github URL 並輸入了gstreamer1.0_1.16.1.bb配方中指定的無效源代碼地址。 當我嘗試構建 linux 系統時,過程成功完成。
  3. 然后我增加了層的優先級。 在這種情況下,我應該遇到錯誤,但構建過程再次成功完成。

你能幫我理解這種行為嗎?

謝謝。

您有兩個不同的文件:一個.bb和一個.bbappend

.bb是一個(或多個)包的基本配方。 它通常描述如何為您的目標獲取、配置、編譯、安裝 package 中的文件。

.bbappend文件是一個“附加”文件。 它允許一個元(這里是 meta-petalinux)修改另一個元中的現有配方而不復制它。 .bbappend可以修改 bb 文件的任何步驟:獲取源、配置、編譯、安裝...

例如,您可以創建自己的 Gstreamer bbappend,以啟用 pango(在我的 Yocto 上默認禁用)。 bbappend 文件名是gstreamer1.0-plugins-base_%.bbappend並且只包含PACKAGECONFIG_append = "pango"

Yocto 手冊可以在此處為您提供有關 bbappend 文件的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM