NXP MCU 技术论坛
直播中

李维嘉

8年用户 1513经验值
私信 关注
[问答]

如何在不使用“wayland”发行版功能的情况下进行构建?

根据我们目前的设计,以下是通用distro.conf (customos.conf 中),用于我们的自定义平台
它也用于其他一些硬件平台,但截至现在,当我尝试集成 IMX8 层时(就像 IMX8 平台一样
取决于“wayland”发行版功能),我已经创建了单独的层 (meta-custom-imx8) 用于将对 IMX8 的支持添加到我们的
自定义发行版并集成到我们的自定义发行版中,并尝试使用此 customos.conf 中 为 imx8 构建。

您能否告诉我如何删除下面的这个“wayland”“DISTRO_FEATURES_remove”而不编辑此 “customos.conf 中” 文件 (因为此 distro 文件对于所有其他平台都是通用的,因此不需要被触摸,只是为了为 IMX8 构建)。我也尝试将其移动到 meta-custom-imx8 层,而不触及“customos.conf 中” (通过添加DISTRO_FEATURES_append = “ Wayland Pam systemd”)。

直到或除非我从DISTRO_FEATURES_remove “customos.conf 中” 中,构建未运行
through 并卡住错误,如下所示。

您能否提供解决此问题的指示(即,无需编辑 “customos.conf 中” - 无需删除 “wayland”条目DISTRO_FEATURES_remove在 customos.conf 中 中)如何获取build 来完成,无论如何我都可以在我的meta-custom-imx8 层??


customos.conf 中
=============
需要 conf/distro/poky.conf
DISTRO = “CustomOS”
DISTRO_NAME = “CustomOS 发行版”
DISTRO_VERSION = '${CUSTOM_DISTRO_VERSION}'
DISTRO_CODENAME = “CustomOS”
SDK_VENDOR = “-customostrksdk”
SDK_VERSION := “${@'${DISTRO_VERSION}'.replace('snapshot-${date}','快照')}"

# Remove bullshit
DISTRO_FEATURES_remove = “
api-documentation
cramfs
直接 FB
IPsec
伊尔达
PCI
PCMCIA
ptest
韦兰
x11
IPv6
"

# Add stuff
DISTRO_FEATURES_append = “
阿尔萨
蓝Z5
ldconfig
OpenGL
systemd
"
distro_features_backfill_consiDERED = “系统”
VIRTUAL-RUNTIME_init_manager = “systemd”



imx8mmevk-extra.conf 的
====================
包括 custom-imx8-base.inc
包括 conf/distro/include/fsl-imx-preferred-env.inc

DISTRO_FEATURES_append = “ Wayland Pam Systemd”

SSTATE_DIR ?= “/var/build/yocto/sstate-cache/相扑-IMX8”
SOURCE_MIRROR_URL ?= “file:///var/build/yocto/sources/sumo-imx8/”

DISTRO_NAME_append = “ (${CUSTOM_TARGET_IMAGE})”



错误:
======
警告:主机发行版“ubuntu-18.04”尚未经过验证
此版本的构建系统;您可能会遇到
意外失败。建议您使用经过测试的
分配。
解析配方:100%
|################################################################################################################################################################################################################|
时间: 0:00:11
2351 个 .bb 文件的解析完成(0 个缓存,2351 个解析)。3258
目标,跳过 419 个,屏蔽 7 个,错误 0 个。
从 aarch64 sysroot 中删除 1 个配方:100%
|####################################################################################################################################################################################|
时间: 0:00:00
从 imx8mmevk 系统根中删除 4 个配方:100%
|##################################################################################################################################################################################|
时间: 0:00:00
注意:解决任何缺少的任务队列依赖关系
错误:没有任何东西提供 'virtual/egl' (但
/主页/srinishanmugam/custombuild_test19/customos/sources/元-QT5/食谱-QT/QT5/qtbase_git.bb,
/主页/srinishanmugam/custombuild_test19/customos/sources/poky/meta/recipes-graphics/开罗/cairo_1.14.12.bb
DEPENDS on or otherwise requires it)
imx-gpu-viv 提供 virtual/egl 但被跳过:不兼容
机床 IMX8MMEVK(不在 COMPATIBLE_MACHINE)
imx-gpu-viv 提供 virtual/egl 但被跳过:缺少必需
发行版功能“Wayland”(不在 DISTRO_FEATURES)
imx-gpu-viv 提供 virtual/egl 但被跳过:不兼容
机床 IMX8MMEVK(不在 COMPATIBLE_MACHINE)
注意:运行时目标“qtbase”不可构建,正在删除...
缺少或无法构建的依赖项链为:['qtbase', 'virtual/egl']
错误:所需的构建目标“traktor-image-debug-imx8”没有
可构建的提供程序。
缺少或无法构建的依赖项链是:
['traktor-image-debug-imx8', 'qtbase', '虚拟/egl']

摘要:显示 1 条 WARNING 消息。
摘要:显示了 2 条 ERROR 消息,返回非零退出代码。
2019-01-29 11:40:34,651 - 构建过程中出错(返回代码 1)

请做需要的,请告诉我如果你需要任何其他信息需要从我这边提供。


回帖(1)

京五环以外

2025-4-8 17:44:39

根据您的描述,建议通过以下步骤在不修改通用 customos.conf 的前提下为 i.MX8 平台移除 "wayland" 特性:


推荐解决方案:


在您的 i.MX8 专用层(meta-custom-imx8) 中按以下优先级顺序配置:


1. 在机器配置文件(Machine Configuration)中覆盖


# meta-custom-imx8/conf/machine/.conf
DISTRO_FEATURES_remove = "wayland"

这会针对特定硬件平台生效,且完全独立于其他平台的配置。


2. 通过层配置动态追加(可选)


# meta-custom-imx8/conf/distro/include/customos-imx8.inc
DISTRO_FEATURES_remove = "wayland"

然后在层配置中动态包含此片段:


# meta-custom-imx8/conf/layer.conf
DISTRO_FEATURES_append = " ${@bb.utils.contains('MACHINE', 'imx8', ' ${IMX8_OVERRIDES}', '', d)}"
require ${@bb.utils.contains('MACHINE', 'imx8', 'conf/distro/include/customos-imx8.inc', '', d)}

3. 通过环境变量临时覆盖(临时调试用)


构建时指定:


DISTRO_FEATURES_remove="wayland" bitbake 

关键优势:



  1. 零侵入性:保持通用 customos.conf 的纯净性

  2. 精准控制:通过硬件平台维度隔离配置

  3. 架构清晰:遵循 Yocto 最佳实践(distro配置通用化 + machine配置差异化)

  4. 可扩展性:未来新增其他平台时可复用此模式


验证方法:


检查构建环境中的最终 DISTRO_FEATURES:


bitbake -e | grep ^DISTRO_FEATURES=

应确认在 i.MX8 构建时该变量不包含 "wayland",而其他平台保持不变。


这种分层配置模式已被 Intel Apollo Lake、NXP i.MX 和 TI AM6x 等主流 BSP 广泛采用,能有效解决多平台特性冲突问题。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分