[yocto] One kernel tree, two BSP layers, two defconfigs. How to pickup the right one based on MACHINE value?

Saul Wold saul.wold at intel.com
Mon Nov 30 15:29:12 PST 2015


On Mon, 2015-11-30 at 17:25 -0200, Daniel. wrote:
> Hi,
> 
> I have one kernel tree where I keep all my modules in-tree. Inside
> kernel I have two FOO_defconfig and BAR_defconfig which are
> configurations for FOO-board and BAR-board. On Yocto I have
> core-layer, FOO-bsp layer and BAR-bsp layer. At core-layer I have
> linux-custom.bb file which has the URI for kernel tree with a dummy
> defconfig. At FOO-bsp and BAR-bsp a have a .bbappend that adds a
> folder with the right defconfig for each board.
> 
> My doubt is: I have two .bbappends, on two distinct layers being
> applied at same time? Both layers are pointed at
> build/conf/bblayers.conf.
> 
So you are including both your BSP Layers in the bblayers, that will
probably cause problems based on your description above.

Another option is to look at using overrides and have 1 layer that
supports both boards if they are similar and share other items.

> How can I have sure to pick up the right defconfig at build time?
> 
> I've tried to delete core-layer and have two kernel recipes with
> distinct names, but Yocto complains about two recipes being selected
> at same time for build (because of virtual/kernel feature or
> something
> alike). So I want to keep one kernel recipe and select the right
> defconfig based on MACHINE value.
> 
You can use PREFERRED_PROVIDER_virtual/kernel to have multiple
alternate kernel present and set it in your <machine>.conf to select
the kernel you want.

If your kernel recipe does not inherit kernel.bbclass you will need to
set PROVIDES

You should also be sure to set COMPATIBLE_MACHINE for each machine

> Both defconfig are present on arch/arm/configs. Can I overwrite
> do_config()? Is that safe? About the .bbappends: Should be two
> .bbappends on same .bb file be avoided?
> 
You can use a do_config_prepend() to deal with moving the correct
defconfig.

Honestly there are many ways you can make this work and even more to
make is fail!

Sau!

> 
> Regards,
> - dhs
> -- 
> "Do or do not. There is no try"
>   Yoda Master



More information about the yocto mailing list