[yocto] [meta-raspberrypi][PATCH] sdcard_image-rpi.bbclass: Remove redundant RPI_KERNEL_VERSION

Andreas Müller schnitzeltony at googlemail.com
Thu Oct 6 08:55:05 PDT 2016


On Thu, Oct 6, 2016 at 2:20 PM, Jonathan Liu <net147 at 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 <net147 at 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



More information about the yocto mailing list