On Thu, Oct 06, 2016 at 05:55:05PM +0200, Andreas Müller wrote:
> On Thu, Oct 6, 2016 at 2:20 PM, Jonathan Liu <net...@gmail.com> wrote:
> > The value of the RPI_KERNEL_VERSION can change between None and the
> > kernel version which can result in taskhash mismatch errors while
> > building images.
> >
> > The taskhash mismatch errors can be reproduced using:
> > bitbake -c cleansstate virtual/kernel core-image-minimal && bitbake 
> > core-image-minimal
> >
> > The get_dts() and split_overlays() functions are modified so that the
> > kernel version argument is optional. If the version is not supplied to
> > these functions, they will fallback to the Python equivalent of the
> > expression used for RPI_KERNEL_VERSION.
> >
> > Signed-off-by: Jonathan Liu <net...@gmail.com>
> > ---
> >  classes/linux-raspberrypi-base.bbclass | 4 ++--
> >  classes/sdcard_image-rpi.bbclass       | 8 +++-----
> >  2 files changed, 5 insertions(+), 7 deletions(-)
> >
> > diff --git a/classes/linux-raspberrypi-base.bbclass 
> > b/classes/linux-raspberrypi-base.bbclass
> > index 930fc44..3a6e33d 100644
> > --- a/classes/linux-raspberrypi-base.bbclass
> > +++ b/classes/linux-raspberrypi-base.bbclass
> > @@ -1,6 +1,6 @@
> >  inherit linux-kernel-base
> >
> > -def get_dts(d, ver):
> > +def get_dts(d, ver=None):
> >      import re
> >
> >      staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
> > @@ -32,7 +32,7 @@ def get_dts(d, ver):
> >      return dts
> >
> >
> > -def split_overlays(d, ver, out):
> > +def split_overlays(d, out, ver=None):
> >      dts = get_dts(d, ver)
> >      if out:
> >          overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
> > diff --git a/classes/sdcard_image-rpi.bbclass 
> > b/classes/sdcard_image-rpi.bbclass
> > index 2f0daee..0487ef1 100644
> > --- a/classes/sdcard_image-rpi.bbclass
> > +++ b/classes/sdcard_image-rpi.bbclass
> > @@ -71,8 +71,6 @@ SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg"
> >  # Additional files and/or directories to be copied into the vfat partition 
> > from the IMAGE_ROOTFS.
> >  FATPAYLOAD ?= ""
> >
> > -RPI_KERNEL_VERSION := 
> > "${@get_kernelversion_file('${STAGING_KERNEL_BUILDDIR}')}"
> > -
> >  IMAGE_CMD_rpi-sdimg () {
> >
> >         # Align partitions
> > @@ -83,7 +81,7 @@ IMAGE_CMD_rpi-sdimg () {
> >         echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} 
> > KiB and RootFS $ROOTFS_SIZE KiB"
> >
> >         # Check if we are building with device tree support
> > -       DTS="${@get_dts(d, '${RPI_KERNEL_VERSION}')}"
> > +       DTS="${@get_dts(d)}"
> >
> >         # Initialize sdcard image file
> >         dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
> > @@ -104,8 +102,8 @@ IMAGE_CMD_rpi-sdimg () {
> >         mcopy -i ${WORKDIR}/boot.img -s 
> > ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/
> >         if test -n "${DTS}"; then
> >                 # Device Tree Overlays are assumed to be suffixed by 
> > '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a 
> > dedicated folder
> > -               DT_OVERLAYS="${@split_overlays(d, '${RPI_KERNEL_VERSION}', 
> > 0)}"
> > -               DT_ROOT="${@split_overlays(d, '${RPI_KERNEL_VERSION}', 1)}"
> > +               DT_OVERLAYS="${@split_overlays(d, 0)}"
> > +               DT_ROOT="${@split_overlays(d, 1)}"
> >
> >                 # Copy board device trees to root folder
> >                 for DTB in ${DT_ROOT}; do
> > --
> > 2.10.0
> >
> Yes this makes sense - thanks.
>
> Andreas

Good stuff. This explains a lot. Was merged in master. We should
backport this in krogoth branch too.

--
Andrei Gherzan

Attachment: signature.asc
Description: PGP signature

-- 
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to