我可以把图像 select 做成机器吗

Can I make an image select a machine

我有一些图像仅与特定平台相关(假设一些仅适用于 intel core,其他仅适用于 sabrelite)。

图像是否可以独立于 local.conf 自动为构建设置 MACHINE 变量?

如果不行,我至少可以让镜像拒绝为其他机器构建吗?

我尝试进行一些谷歌搜索,但当然 "yocto image selects machine" 或仅类似请求 return 通用 Yocto 教程。

谢谢。

要根据机器添加包,您可以使用 python 函数 base_containsbase-conditional。例如。

在配方中输入 COMPATIBLE_MACHINE = " " 以检查兼容机器。 building-yocto-image-for-dragonboard-410c-how-to-build-chromium

不,图像不会影响您为哪台机器构建。

背景:在 OpenEmbedded 中,机器、映像和发行版的概念应该是相互正交的。 IE。任何图像都应该可以为发行版和机器的任何组合构建。 (当然,这在实践中可能并不总是正确的)。

可以通过设置

让镜像拒绝构建
 COMPATIBLE_MACHINE = "macha"

在你的图像配方中。

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

 IMAGE_INSTALL_append_macha = " package1 package2"

注意字符串中的前导 space。 (_append 不会在您的字符串前加上 space)。

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

注:macha为机器想象的名字