yocto:重建项目的一部分

nay*_*ana 2 gstreamer yocto

我有一个项目正在使用yocto构建包括gstreamer的库。我发现我需要修补一些gstreamer元素,从而用patch创建新的bitbake配方。

我通常必须使用图像名称作为参数运行bitbake,它将重新构建整个yocto(这很长):

MACHINE=some_machine nice bitbake yocto-etc-etc
Run Code Online (Sandbox Code Playgroud)

如何只重建我需要的部分而不是整个yocto?我听说过devtool,但不确定如何使用它。

小智 6

当然,这很容易做到。只需指定您要构建的配方而不是图像名称,例如,如果它是您更改的主要 gstreamer 配方(至少在当前版本中称为 gstreamer1.0):

MACHINE=some-machine bitbake gstreamer1.0
Run Code Online (Sandbox Code Playgroud)

请注意,命令行上预期的名称始终是配方名称或配方中 PROVIDES 中的内容,而不是运行时包名称。

关于 devtool,它当然可以让您进入一个环境,您可以更轻松地更改配方的源代码并从中生成补丁,但我们在这里讨论的实际构建部分并没有真正改变。您可以在Yocto 项目开发手册中找到有关如何使用 devtool 的更多信息


Abh*_*edi 5

您可以根据需要将其他命令传递给bitbake。

删除温度:

bitbake -c clean gstreamer
Run Code Online (Sandbox Code Playgroud)

删除临时和状态缓存(我最常使用):

bitbake -c cleansstate gstreamer
Run Code Online (Sandbox Code Playgroud)

也要删除下载,并从do_fetch和所有内容开始构建

bitbake -c cleanall gstreamer
Run Code Online (Sandbox Code Playgroud)

一旦完成了其中一种适合您的清理工作,您就可以简单地为指定的命令提供build命令:

bitbake gstreamer
Run Code Online (Sandbox Code Playgroud)