bitbake:如何根据机器添加包



我的映像,用bitbake构建,必须包含用于不同机器的不同包(例如,我需要将包package1添加到映像中machine1,但不适用于machine2)。

可以添加行

IMAGE_INSTALL_append_machine1 = " package1"

到图像配方。但我不认为这是可持续的,因为IMAGE_INSTALL_append_machine1可能会在其他一些配方中定义(不受我的控制),并且前面的定义会被后面的定义覆盖。这就是我认为Yocto项目开发手册警告使用IMAGE_INSTALL的内容。

我的担忧有效吗?在这种情况下,编写食谱的正确方法是什么?

我相信您正在寻找的功能是base_contains

此函数用于根据 第三个变量的定义。

${@base_contains('variable-name', 'value', 'true-result', 'false-result',d)}" 其中:

变量

名 这是要检查的变量的名称。

值 这是要比较变量的值。

true-result 如果变量等于值,那么这就是 由函数返回。

假结果 如果变量不等于该值,则为 函数返回的内容。

还有一件事,您可以使用??=来提供默认值。 ?=??= 之间的区别在于,对于??=,在解析过程结束之前不会发生分配。

你可以看看这里的一个例子图像配方

http://www.embeddedlinux.org.cn/OEManual/recipes_advanced_python.html

最新更新