Hi Petter,
Thanks for your answers. At some point, Ive set it in the disto.conf it works there but for maintenance reasons Id love to be able to keep it localized with the kernel .bbappend since it clearly depends on the kernel. For now, Ive just patched the sdcard_image-rpi.bbclass, to take the existing ${KERNEL_IMAGE}*.dtb in the ${DEPLOY_DIR_DIRECTORY}, split them in overlay and non-overlay, and then do the processing like its done now. It does work in my case, and I can provide the patch if its deemed of interest. But Im not sure whether or not there can be some side effects looks like rather safe, but more opinions are definitely needed on that. Regarding the kernel, yes Im using the 3.18 that is supported by the meta-raspberry layer. As I mentioned in another thread, with more recent kernels, the RaspberryPi overlay layers were added in a separate directory, so in addition to a patch to build the newer kernel, the sdcard_image-rpi.bbclass will also have to be modified to get the files in the proper directory, when we switch to those newer kernels. Best regards, Herve From: Petter Mabäcker [mailto:pet...@technux.se] Sent: vendredi 31 juillet 2015 15:29 To: Herve Jourdain <herve.jourd...@neuf.fr>; franc...@concept-embarque.fr; Andrei Gherzan <and...@gherzan.ro> Cc: yocto@yoctoproject.org Subject: Re: [yocto] [meta-raspberrypi] Adding an additional device tree overlay in the SDCard Hi Herve, See inline answers. BR, Petter On 07/30/2015 05:27 AM, Herve Jourdain wrote: Hello, Im 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. Ive 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? Yes, in the current solution KERNEL_DEVICETREE is needed in both the kernel recipe and image creation context. When appending KERNEL_DEVICETREE in linux-raspberrypi_3.%.bbappend your new overlay will only be visible within the linux-raspberrypi scope and NOT within the image class. #2 Is there a way that I could achieve adding my .dtb overlay in the sdcard image only from my linux kernel bbappend? If I remember the code correct within the kernel scope we are only interesting if device tree should be used. At least in theory (assuming you are using a >= 3.18 kernel since then KERNEL_DEVICETREE will bve set by default) you should be able to skip the KERNEL_DEVICETREE += code in linux-raspberrypi_3.%.bbappend (since it will be set any way and the overlays themselves isn't really used in here..) then append the KERNEL_DEVICETREE within the image scope. If you don't want to put this into the layer.conf or similiar in your own layer I guess it should work to "prepend" for example the IMAGE_CMD. But in the current solution I guess local.conf, layer.conf (in your own layer) or rpi-base.inc (in meta-raspberrypi) is the easiest options.. #3 On a more general note, wouldnt 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. That might perhaps be a better solution. Have you tried it out? Andrei or Francois might have some comments about this? Herve
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto