aic*_*ell 5 overriding recipe layer yocto
我试图了解 Yocto 提供的为特定机器启用/禁用特定 bbappend 的机制。我读了这个链接(修改变量以支持不同的机器):
还找到了一些关于堆栈溢出的相关信息:
我尝试将所有这些信息付诸实践,但没有成功。这是我的特殊问题:
“x”平台的 BSP 层提供了一个 qtbase_%.bbappend,它修改了 meta-qt5 中的 qtbase 配方。我只需要在为 MACHINE="x" 构建时才需要这个 qtbase_%.bbappend,而不是其他不同的机器。
这是在 x-bsp-layer 上定义的原始 qtbase_%.bbappend 的内容:
PACKAGECONFIG_GL = "gles2"
PACKAGECONFIG_FONTS = "fontconfig"
PACKAGECONFIG_APPEND = " \
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "xkbcommon-evdev", \
bb.utils.contains("DISTRO_FEATURES", "x11", " ", "libinput eglfs gbm", d), d)} \
"
PACKAGECONFIG_append = " ${PACKAGECONFIG_APPEND} kms accessibility sm"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
PACKAGECONFIG_remove = "evdev"
Run Code Online (Sandbox Code Playgroud)
每当我尝试为不同于“x”的平台构建图像时,编译都会被破坏:
| ERROR: Feature 'opengles2' was enabled, but the pre-condition 'config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)' failed.
| ERROR: Feature 'eglfs' was enabled, but the pre-condition '!config.android && !config.darwin && !config.win32 && features.egl' failed.
| ERROR: Feature 'gbm' was enabled, but the pre-condition 'libs.gbm' failed.
Run Code Online (Sandbox Code Playgroud)
从 bblayers.conf 中删除 x-BSP-layer 解决了问题,但这不是我正在寻找的解决方案。
我尝试使用先前链接中提供的信息来解决此问题。我以这种方式修改了 qtbase_%.bbappend 配方:
PACKAGECONFIG_GL_x = "gles2"
PACKAGECONFIG_FONTS_x = "fontconfig"
PACKAGECONFIG_APPEND_x = " \
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "xkbcommon-evdev", \
bb.utils.contains("DISTRO_FEATURES", "x11", " ", "libinput eglfs gbm", d), d)} \
"
PACKAGECONFIG_append_x = " ${PACKAGECONFIG_APPEND} kms accessibility sm"
FILESEXTRAPATHS_prepend_x := "${THISDIR}/${PN}:"
PACKAGECONFIG_remove_x = "evdev"
Run Code Online (Sandbox Code Playgroud)
如您所见,我在所有配方变量后附加了“_x”后缀。假设(至少这是我的理解)那些“_x”使变量被分配,以防万一 PLATFORM="x" 被定义。对?但它没有按预期工作,它会产生同样的问题。所以,在实践中,这意味着我什至不理解这种机制的基础知识。
你们中的一些人能对此提供一个很好的解释吗?我认为它应该对其他有同样问题的人有所帮助。非常感谢您的时间!:-)
小智 2
只需在 .bbappend 文件中添加 COMPATIBLE_MACHINE = "x" 即可。
如您所见,我在所有配方变量中附加了“_x”后缀
删除 .bbappend 文件中的所有“_x”后缀。
| 归档时间: |
|
| 查看次数: |
4028 次 |
| 最近记录: |