All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-raspberrypi][PATCH] sdcard_image-rpi.bbclass: Remove redundant RPI_KERNEL_VERSION
@ 2016-10-06 12:20 Jonathan Liu
  2016-10-06 15:55 ` Andreas Müller
  2016-10-06 16:59 ` Khem Raj
  0 siblings, 2 replies; 4+ messages in thread
From: Jonathan Liu @ 2016-10-06 12:20 UTC (permalink / raw)
  To: yocto

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@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



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [meta-raspberrypi][PATCH] sdcard_image-rpi.bbclass: Remove redundant RPI_KERNEL_VERSION
  2016-10-06 12:20 [meta-raspberrypi][PATCH] sdcard_image-rpi.bbclass: Remove redundant RPI_KERNEL_VERSION Jonathan Liu
@ 2016-10-06 15:55 ` Andreas Müller
  2016-10-14  7:55   ` Andrei Gherzan
  2016-10-06 16:59 ` Khem Raj
  1 sibling, 1 reply; 4+ messages in thread
From: Andreas Müller @ 2016-10-06 15:55 UTC (permalink / raw)
  To: Jonathan Liu; +Cc: Yocto Project

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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [meta-raspberrypi][PATCH] sdcard_image-rpi.bbclass: Remove redundant RPI_KERNEL_VERSION
  2016-10-06 12:20 [meta-raspberrypi][PATCH] sdcard_image-rpi.bbclass: Remove redundant RPI_KERNEL_VERSION Jonathan Liu
  2016-10-06 15:55 ` Andreas Müller
@ 2016-10-06 16:59 ` Khem Raj
  1 sibling, 0 replies; 4+ messages in thread
From: Khem Raj @ 2016-10-06 16:59 UTC (permalink / raw)
  To: Jonathan Liu; +Cc: Yocto Project

[-- Attachment #1: Type: text/plain, Size: 3264 bytes --]


> On Oct 6, 2016, at 5:20 AM, Jonathan Liu <net147@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.

I was able to see this error and was reaching same conclusions. I have staged this patch on
kraj/master and will test it out

> 
> Signed-off-by: Jonathan Liu <net147@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
> 


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [meta-raspberrypi][PATCH] sdcard_image-rpi.bbclass: Remove redundant RPI_KERNEL_VERSION
  2016-10-06 15:55 ` Andreas Müller
@ 2016-10-14  7:55   ` Andrei Gherzan
  0 siblings, 0 replies; 4+ messages in thread
From: Andrei Gherzan @ 2016-10-14  7:55 UTC (permalink / raw)
  To: Andreas Müller; +Cc: Yocto Project

[-- Attachment #1: Type: text/plain, Size: 3674 bytes --]

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 <net147@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@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 #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 817 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-10-14  7:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-06 12:20 [meta-raspberrypi][PATCH] sdcard_image-rpi.bbclass: Remove redundant RPI_KERNEL_VERSION Jonathan Liu
2016-10-06 15:55 ` Andreas Müller
2016-10-14  7:55   ` Andrei Gherzan
2016-10-06 16:59 ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.