[yocto] [meta-raspberrypi][PATCH v5 3/4] linux-raspberrypi-base.bbclass: support for .dtbo files for dtb overlays

Francois Muller forlorn18 at gmail.com
Sat Jun 25 08:48:29 PDT 2016


Hi Hervé,
I haven't tested your patch yet, but while reviewing the diff I'm a
bit surprised about this:
>          overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', > dts
, d)
> +        overlays = oe.utils.str_filter_out('\S+\.dtbo$', > overlays,
> d)
Shouldn't .dtbo files be filtered out from 'dts' instead of 'overlays'
in the added line?
Seems like a typo to me.
BR,
François
Le vendredi 17 juin 2016 à 23:35 +0800, Herve Jourdain a écrit :
> Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays,
> instead of .dtb.
> Add support for both variants of overlays ("-overlay.dtb" and
> ".dtbo")
> Change which variant needs to be supported based on the kernel
> version
> 
> CAUTION: when called from IMAGE_CMD_rpi-sdimg, 'TMPDIR' is not set,
> causing 'STAGING_KERNEL_BUILDDIR' to not be expanded, causing
> get_kernelversion_file() to fail!
> To avoid this problem, get_dts() and split_overlays() MUST be called
> with the kernel version parameter set, when called from
> IMAGE_CMD_rpi-sdimg!
> 
> Signed-off-by: Herve Jourdain <herve.jourdain at neuf.fr>
> ---
>  classes/linux-raspberrypi-base.bbclass | 19 ++++++++++++-------
>  1 file changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/classes/linux-raspberrypi-base.bbclass b/classes/linux-
> raspberrypi-base.bbclass
> index 40beef1..930fc44 100644
> --- a/classes/linux-raspberrypi-base.bbclass
> +++ b/classes/linux-raspberrypi-base.bbclass
> @@ -1,7 +1,8 @@
>  inherit linux-kernel-base
>  
> -
>  def get_dts(d, ver):
> +    import re
> +
>      staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
>      dts = d.getVar("KERNEL_DEVICETREE", True)
>  
> @@ -20,20 +21,24 @@ def get_dts(d, ver):
>  
>      # Always turn off device tree support for kernel's < 3.18
>      try:
> -        if int(min_ver[0]) <= 3:
> -            if int(min_ver[1]) < 18:
> -                dts = ""
> +        if int(min_ver[0]) >= 4:
> +            if (int(min_ver[1]) < 4) or (int(min_ver[1]) == 4 and
> int(min_ver[2]) < 6):
> +                dts = ' '.join([(re.sub(r'(.*)\.dtbo$', r'\1-
> overlay.dtb', x)) for x in dts.split()])
> +        elif int(min_ver[1]) < 18:
> +            dts = ""
>      except IndexError:
>          min_ver = None
>  
>      return dts
>  
>  
> -def split_overlays(d, out):
> -    dts = get_dts(d, None)
> +def split_overlays(d, ver, out):
> +    dts = get_dts(d, ver)
>      if out:
>          overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$',
> dts, d)
> +        overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays,
> d)
>      else:
> -        overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d)
> +        overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d)
> + \
> +                   " " + oe.utils.str_filter('\S+\.dtbo$', dts, d)
>  
>      return overlays
> -- 
> 2.7.4
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20160625/49f16af4/attachment.html>


More information about the yocto mailing list