我正在尝试为embedded式系统configuration定制的Yocto版本。
我需要将包添加到目标fs和工具链。
目前我只想添加已经有配方的软件包。
例如,通过添加IMAGE_INSTALL += " boost-dev"
和TOOLCHAIN_TARGET_TASK += "boost-dev"
我可以将boost增加到targetfs和工具链。
我想做的事
Yoctobuild立的rootfs非常完整,有很多库,但是工具链只有最基础的。
我想将缺less的库添加到工具链中。
题:
我如何find可用库的名称?
像boost-dev
,我做了很多谷歌search,通过添加名称boost-dev
到TOOLCHAIN_TARGET_TASK
我可以得到我想要的。
但是像OpenGL和OpenCL这样的东西,即使我知道它们是由/meta-fsl-arm/recipes-graphics/imx-gpu-viv
,我怎样才能find我要添加到TOOLCHAIN_TARGET_TASK
包名呢?
我做了更多的Google搜索,并通过查看依赖关系找到了获取bitbake目标使用的包名称的方法。
通过执行bitbake -g <packagename> -u depexp
,将显示包之间的依赖关系,Yocto构建中涉及的所有包的名称也是如此。
例如, devil
包依赖于devil-dev
,因此在meta-toolchain%.bbappend
加入了TOOLCHAIN_TARGET_TASK += "devil-dev"
, meta-toolchain%.bbappend
添加了魔鬼。
以这种方式找到的软件包名称可能并不完整,特别是某些父软件包中包含的子软件包可能不会显示在此处。
发生这种情况时,首先找到可能包含子包的父包,然后找到.bb
文件和.inc
文件。
在这些文件中,可能会有一个PACKAGES
变量,告诉这个包提供了哪个子包。 那些子包可以被添加到TOOLCHAIN_TARGET_TASK
。