13

我有一个使用bitbake做一些构建的OpenEmbedded环境。我想得到一些“互动”的东西,在那里bitbake会暂停并要求输入,然后继续构建,但我发现这是不可能的。是否可以将命令行变量传递给bitbake构建?

因为我不能这样做,我正在寻找一些方法来传递构建的额外标志。有没有办法将标志传递给像gcc的-D选项那样的bitbake构建?

即:

bitbake -Dfoo=bar oe-myimage 

因此期间的oe-myimage可变foo构建过程将被设置为bar

回答

2

不,我不相信这样的机制存在。但你可以做类似

​​

不确定这会解决您的特定问题与否。此外,本地站点范围的变量还有一个机制:如果您的主目录下有一个名为“.oe”的目录中有一个“site.conf”文件,则bitbake将读取该文件并将这些变量应用于全局环境。也许这会有所帮助?你没有具体说明你想要解决什么问题,可能有更好的方法。

14
bitbake -Dfoo=bar oe-myimage 

-D标志不被bitbake识别。所以,使用上述方法将无法工作。相反,您可以使用以下步骤从命令行指定标志 -

假设您要导出变量foo并期望它能被bitbake识别。

export foo="foobar" 

您需要导出这个和采购OE-INIT-集结ENV之后通过BB_ENV_EXTRAWHITE变量bitbake的通知。这意味着

. oe-init-build-env 
export foo="foobar" 
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo"  

此白名单变量'foo'用于bitbake,因此在构建期间使其对任何配方和子流程都可见。

这之后,您可以通过类似的表达调用使用bitbake的内部变量foo的任何bitbake的操作 -

${foo} 
4

,你可以这样做:

export foo="bar" 
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE foo" 
bitbake oe-myimage 
3

虽然没有什么错bitbake的做其他的答案接受 - 如文件here所记录的 - 这意味着您可以根据需要写入尽可能多的bitbake变量来创建一些临时配置文件,并通过在命令行中指定文件的名称在bitbake.conf之后读取它。例如:

bitbake --read=./extra.conf 

我个人觉得这比处理环境变量更方便。

相关问题