如何在使用bitbake/yocto构建时指定要构建的内核版本

11

我正在使用yocto daisy生成一个新的BSP。当我构建我的镜像时,我收到了以下警告:

NOTE: Resolving any missing task queue dependencies
NOTE: multiple providers are available for virtual/kernel (my-kernel, linux-dummy)
NOTE: consider defining a PREFERRED_PROVIDER entry to match virtual/kernel
NOTE: multiple providers are available for runtime kernel-modules (my-kernel, linux-dummy)
NOTE: consider defining a PREFERRED_PROVIDER entry to match kernel-modules

我不明白如何为内核定义我的首选提供程序。从我所读的内容来看,我只需要将其添加到meta-myLayer/conf/machine/myMachine.conf文件中即可。

我已经这样做了:

KERNEL_IMAGETYPE = "zImage"
KERNEL_DEVICETREE = "${S}/arch/arm/boot/dts/myTree.dtb"
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
#  use this kernel and version
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
PREFERRED_VERSION_linux-yocto = "3.14%"

Yocto/bitbake似乎忽略了这些行。
此外,要明确的是,在build/conf/local.conf中我也正确设置了机器名称。

我需要改变其他什么才能使它工作?还是Yocto太不稳定了?


您将首选内核提供程序设置为“linux-yocto”,但它说只有“my-kernel”和“linux-dummy”可用。您确定已将“poky/meta-yocto”和“poky/meta-yocto-bsp”层添加到您的“bblayers.conf”中吗? - E-rich
@E-rich 是的,我的 bblayers 变量中包括了 meta-yocto 和 meta-yocto-bsp。 - AllenKll
1个回答

10

正如E-rich所写,构建系统只看到my-kernel和linux-dummy作为virtual/kernel可用的提供者。因此,我猜想你实际上想要构建它们中的一个?

linux-yocto不可用的原因可能是你的机器不在linux-yocto_3.14.bb的COMPATIBLE_MACHINE正则表达式中。因此,如果你想使用linux-yocto,你应该在自己的层中bbappend该配方,并将你的机器添加到COMPATIBLE_MACHINE中。(你还可能需要提供一些更多的参数,如SRCREV、KBRANCH等)


4
就是这样了。谢谢你指引我正确的方向。相比于BuildRoot,Yocto使用起来要困难得多。如果不需要使用Yocto,我会转换到BR。 - AllenKll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接