[英]Yocto Dunfell error 'No recipes available for' with multiple machines in single custom meta layer
我維護了一個與 Dunfell 兼容的自定義 Yocto 元層。 它支持基於 Microchip SAMA5D27 處理器的板。 我在這一層有幾個 bbappend 文件,它們僅適用於 meta-atmel 和其他 Microchip 特定包中的文件。
現在,我想重用這個自定義元層的許多部分,並支持來自不同供應商的新處理器。 我在我的層中創建了自己的新圖像配方,其中不包含這些僅與 Microchip 相關的 bbappend 文件。
問題是 Yocto 拋出關於我的 bbappend 文件的錯誤“沒有可用的食譜”。 該錯誤似乎是在解析過程中發生的,並且沒有考慮我是否在當前目標中使用了配方。
我已經廣泛搜索了一個解決方案,但到目前為止都是空的。 如何使用 1 個元層並維護不同的 bbappend 文件,同時能夠為不同的目標構建切換 MACHINE 變量? 謝謝!
位烤版:
root@buildmachine:/$ bitbake --version
BitBake Build Tool Core version 1.46.0
我嘗試在這些 bbappend 文件中使用 COMPATIBLE_HOST 和 COMPATIBLE_MACHINE 變量,但錯誤仍然存在。
# Only compatible with sama5d27 microchip
COMPATIBLE_HOST = "arm-poky-linux-musleabi"
COMPATIBLE_MACHINE = "sama5d27-wlsom1-ek-sd"
錯誤 output:
root@buildmachine:~/Desktop/compulab/build-cmdline$ MACHINE=iot-gate-imx8 bitbake iot-gate-imx8-image
WARNING: Host distribution "ubuntu-20.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |#######################################################################################################################################################| Time: 0:00:01
Loaded 4938 entries from dependency cache.
ERROR: No recipes available for:
/home/me/Desktop/compulab/sources/meta-proprietary/recipes-bsp/at91bootstrap/at91bootstrap_3.10.0.bbappend
/home/me/Desktop/compulab/sources/meta-proprietary/recipes-bsp/dt-overlay-at91/dt-overlay-at91_git.bbappend
/home/me/Desktop/compulab/sources/meta-proprietary/recipes-bsp/libubootenv/libubootenv_%.bbappend
/home/me/Desktop/compulab/sources/meta-proprietary/recipes-bsp/u-boot/u-boot-at91_2020.01.bbappend
/home/me/Desktop/compulab/sources/meta-proprietary/recipes-core/initrdscripts/initramfs-debug_%.bbappend
/home/me/Desktop/compulab/sources/meta-proprietary/recipes-httpd/nginx/nginx_%.bbappend
/home/me/Desktop/compulab/sources/meta-proprietary/recipes-kernel/linux/linux-at91_5.4.bbappend
您發現的問題是,當您切換到另一台MACHINE
時,Yocto 無法將.bbappend
文件與任何食譜匹配。
只有在啟用特定層時,您才能通過有條件地包含.bbappend
文件來解決問題。 Yocto 通過BBFILE_DYNAMIC變量支持這一點。
例如,如果您將.bbappend
文件保存在您自己層內的dynamic-layers/meta-atmel
文件夾中,並且您只想在使用meta-atmel
時包含這些.bbappend
文件,則將以下內容添加到您的layer.conf
:
BBFILES_DYNAMIC += "\
meta-atmel:${LAYERDIR}/dynamic-layers/meta-atmel/recipes-*/*/*.bbappend \
meta-atmel:${LAYERDIR}/dynamic-layers/meta-atmel/recipes-*/*/*/*.bbappend \
"
(適當調整路徑/文件夾深度)。
這表示如果meta-atmel
包含在層列表中,則將兩個dynamic-layers/...
路徑添加到搜索路徑。
你不能 append 到一個根本不存在的配方。
如果配方存在:
確保他們的層被添加到 bblayers.conf。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.