[OE-core] Using kernel device tree when compiling U-Boot

Mike Crowe mac at mcrowe.com
Mon Nov 25 15:34:10 UTC 2019


I'd like to use a single set of device tree sources for both the kernel and
U-Boot. I'd like to take the dtb files generated when compiling the kernel
and use it for U-Boot. This means that I need to able to find them from the
U-Boot recipe - ideally without having a list of them there.

So, I thought that I'd teach my kernel recipe to install the device trees
in the sysroot. I ought to be able to do this by adding

  SYSROOT_DIRS +="/boot"

to my kernel recipe. Unfortunately, kernel.bbclass contains:

 # We don't need to stage anything, not the modules/firmware since those would clash with linux-firmware
 sysroot_stage_all () {
         :
 }

which stops this being effective. This code predates
80e7e7f78d957b8159bede2a5cd5614d8d73039c. Would it now be more appropriate
to influence staging.bbclass's behaviour by setting SYSROOT_DIRS_BLACKLIST
to fix the mentioned clashes? Perhaps the invention of recipe-specific
sysroots might mean that these clashes no longer occur?

The device tree dtb files are published to the deploy directory. I could
try to grab them from there, but even apart from having to deal with the
symlinks, it doesn't feel quite right to do so.

Or perhaps I've missed a much simpler way to solve this problem.

Thanks.

Mike.


More information about the Openembedded-core mailing list