我有一些图像只与特定的平台有关(比方说有些图像只适用于英特尔核心,其他图像仅适用于sabrelite)。我可以制作一个图像选择一台机器
图像是否可以自动为构建自动设置MACHINE变量,与local.conf无关?
如果没有,我可以至少让图像拒绝建立其他机器?
我试图做一些谷歌搜索,但当然“yocto图像选择机器”或类似的请求只返回一般Yocto教程。
谢谢。
我有一些图像只与特定的平台有关(比方说有些图像只适用于英特尔核心,其他图像仅适用于sabrelite)。我可以制作一个图像选择一台机器
图像是否可以自动为构建自动设置MACHINE变量,与local.conf无关?
如果没有,我可以至少让图像拒绝建立其他机器?
我试图做一些谷歌搜索,但当然“yocto图像选择机器”或类似的请求只返回一般Yocto教程。
谢谢。
不,图像不能影响你正在建造哪台机器。背景:在OpenEmbedded中,机器,图像和发行版的概念应该是相互正交的。即任何图像都应该可以用于发行版和机器的任何组合。 (当然,这在实践中可能并不总是如此)。
可以使图像拒绝在你的形象配方设定
COMPATIBLE_MACHINE = "macha"
建设。
如果图像非常相似,另一个想法是仅在为正确机器构建图像时安装特定于机器的包。这可以通过以下方式轻松完成:
IMAGE_INSTALL_append_macha = " package1 package2"
请注意字符串中的前导空格。 (_append
不会用空格预先填充字符串)。
后面的部分是通常所做的。将图像限制在特定的机器上是很少做的事情,至少在公共层面上是这样。
注:macha
是机器的想象名称。
要根据机器添加软件包,可以使用python函数base_contains
或base-conditional
。例如。 bitbake-how-to-add-package-depending-on-machine
在配方中输入COMPATIBLE_MACHINE = " "
来检查兼容机器。 building-yocto-image-for-dragonboard-410c-how-to-build-chromium