我可以制作图像选择机器吗?

时间:2016-04-21 11:11:16

标签: yocto

我有一些只与特定平台相关的图像(让我们说有些图像只适用于英特尔核心而其他只适用于sabrelite)。

图像是否有可能自动为构建设置MACHINE变量,而与local.conf无关?

如果没有,我是否可以至少让图像拒绝为其他机器构建?

我试着做一些谷歌搜索,但当然" yocto图像选择机器"或类似的请求只返回通用的Yocto教程。

感谢。

2 个答案:

答案 0 :(得分:1)

要根据计算机添加包,可以使用python函数.filter()base_contains。例如。 bitbake-how-to-add-package-depending-on-machine

配方中有base-conditional个输入来检查兼容机器。 building-yocto-image-for-dragonboard-410c-how-to-build-chromium

答案 1 :(得分:1)

不,图像无法影响您正在构建的计算机。

背景:在OpenEmbedded中,机器,图像和发行版的概念应该彼此正交。即任何图像都应该适用于发行版和机器的任何组合。 (当然,在实践中可能并非总是如此)。

您可以通过设置

使图像拒绝构建
 COMPATIBLE_MACHINE = "macha"

在您的图像配方中。

如果图像非常相似,另一个想法是,如果正在为正确的机器构建图像,则只安装机器特定的包。这可以通过以下方式轻松完成:

 IMAGE_INSTALL_append_macha = " package1 package2"

注意字符串中的前导空格。 (_append不会在空格前添加字符串。)

后一部分是通常所做的。将图像限制在特定的机器上是很少见的,至少在公共图层中是这样。

注意:macha是机器的想象名称。