[yocto] [meta-raspberrypi] Adding an additional device tree overlay in the SDCard

Herve Jourdain herve.jourdain at neuf.fr
Wed Jul 29 20:27:03 PDT 2015


Hello,

 

I'm trying to add a specific .dts file to the raspberrypi.

Therefore, in my own layer, I have made a linux-raspberrypi_3.%.bbappend,
that applies a patch to the arch/arm/boot/dts makefile to add my own layer,
and a new rule that copies my specific .dts file to the kernel source
directory.

And, initially, I had also defined KERNEL_DEVICETREE += "myown-overlay.dtb"
in there.

 

It definitely compiles well, installation process is smooth, I get the
Image-myown-overlay.dtb in tmp/deploy/raspberrypi2.

 

BUT when I flash my SDCard, it does NOT appear in the "overlays" directory
of the DOS partition!

 

If I add it manually, everything works fine, so I know my overlay has been
correctly generated and is working.

 

What I discovered is that, the sdcard_image_rpi class takes the list of .dtb
to be considered from split_overlays(), which is defined in
linux-raspberrypi-base class.

And split_overlays() basically  gets the value of KERNEL_DEVICETREE (dts =
d.getVar("KERNEL_DEVICETREE", True)).

 

But when I set KERNEL_DEVICETREE in linux-raspberrypi_3.%.bbappend, it seems
the additional value it defines is NOT taken into account when
linux-raspberry-class evaluates the value of KERNEL_DEVICETREE.

I've checked in the create_image.rpi-sdimg script created, it does not
appear in DTS nor DT_OVERLAYS.

 

But when I define KERNEL_DEVICETREE in my distro.conf, THEN it is taken into
account.

 

My goal would be to add that overlay by NOT modifying distro.conf (distros
are not necessarily RaspberryPi centric) nor in the raspberry machine files
(or local.conf).

This leads me to several questions:

#1 Is there a specific reason why my addition to KERNEL_DEVICETREE gets lost
when creating the image? I mean, is it normal, or are there some steps I
missed there?

#2 Is there a way that I could achieve adding my .dtb overlay in the sdcard
image only from my linux kernel bbappend?

#3 On a more general note, wouldn't it be simpler (better?) to just add all
the .dtb that are found in the deploy/images/ directory to the DOS partition
of the SDCard? After all, the .dtb need to be compiled from a .dts, so all
the .dtb that appear in deploy/images are "legit".

 

Herve

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20150730/f1e2c06a/attachment.html>


More information about the yocto mailing list