如何获取 Yocto 中所有可用目标的列表?

How to get a list of all available targets in Yocto?

我正在尝试为嵌入式系统配置自定义 Yocto 构建。

我需要将包添加到目标文件系统和工具链。

目前我只是想添加已经有配方的包。

例如,通过添加 IMAGE_INSTALL += " boost-dev"TOOLCHAIN_TARGET_TASK += "boost-dev",我可以为 targetfs 和工具链添加 boost。

我想做什么

Yocto构建的rootfs很完整,库也很多,但是工具链只有最基本的。

我想将缺少的库添加到工具链中。

问题:

如何找到可用库的名称?

boost-dev一样,我在谷歌上搜索了很多,通过将名称boost-dev添加到TOOLCHAIN_TARGET_TASK我可以得到我想要的。

但是像 OpenGL 和 OpenCL 这样的东西,即使我知道在我的例子中它们是由 /meta-fsl-arm/recipes-graphics/imx-gpu-viv 提供的,我如何找出我应该添加到 TOOLCHAIN_TARGET_TASK 的包名称?

我做了更多的谷歌搜索,找到了通过查看依赖项来获取 bitbake 目标使用的包名称的方法。

通过bitbake -g <packagename> -u depexp,显示包之间的依赖关系,以及 Yocto 构建中涉及的所有包的名称。

例如,devil 包依赖于 devil-dev,因此在 meta-toolchain%.bbappend 中执行 TOOLCHAIN_TARGET_TASK += "devil-dev" 会给工具链增加麻烦。

这样找到的包名可能不完整,特别是一些包含在父包中的子包可能不会在这里显示。

发生这种情况时,首先找到可能包含子包的父包,然后找到它的.bb文件和.inc文件。

在这些文件中,可能有一个 PACKAGES 变量告诉这个包提供了哪些子包。然后可以将这些子包添加到 TOOLCHAIN_TARGET_TASK.