我正在尝试为嵌入式系统配置自定义Yocto构建。
我需要向目标fs和工具链添加包。
目前我只是尝试添加已有食谱的包。
例如,通过添加IMAGE_INSTALL += " boost-dev"
和TOOLCHAIN_TARGET_TASK += "boost-dev"
,我可以为targetfs和工具链添加提升。
我想做什么
Yocto构建的rootfs非常完整,有很多库,但工具链只有最基本的。
我想将缺少的库添加到工具链中。
问题:
如何找到可用库的名称?
与boost-dev
一样,我通过向boost-dev
添加名称TOOLCHAIN_TARGET_TASK
进行了大量的Google搜索,以便找到我想要的内容。
但是像OpenGL和OpenCL这样的东西,即使我知道它们是由我/meta-fsl-arm/recipes-graphics/imx-gpu-viv
提供的,我怎样才能找出我要添加到TOOLCHAIN_TARGET_TASK
的包名?
答案 0 :(得分:1)
我做了更多的谷歌搜索,并通过查看依赖关系找到了获取bitbake目标使用的包名称的方法。
通过执行bitbake -g <packagename> -u depexp
,显示了包之间的依赖关系,Yocto构建中涉及的所有包的名称也是如此。
例如,devil
包取决于devil-dev
,因此在TOOLCHAIN_TARGET_TASK += "devil-dev"
中执行meta-toolchain%.bbappend
会将恶魔添加到工具链中。
以这种方式找到的包名称可能不完整,特别是父包中包含的某些子包可能不会在此处显示。
发生这种情况时,首先找到可能包含子包的父包,然后找到它的.bb
文件和.inc
文件。
在这些文件中,可能有一个PACKAGES
变量,用于说明此程序包提供的子程序包。然后可以将这些子包添加到TOOLCHAIN_TARGET_TASK
。