簡體   English   中英

Yocto Dunfell 錯誤“沒有可用的食譜”在單個自定義元層中使用多台機器

[英]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 到一個根本不存在的配方。

如果配方存在:

  • at91bootstrap_3.10.0.bb
  • dt-overlay-at91_git.bb
  • ...

確保他們的層被添加到 bblayers.conf。

暫無
暫無

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

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