[OE-core] [oe-core][PATCHv4] image_types.bbclass: add optional size to ubi vols

Tobias Olausson TOl at hms.se
Wed Jun 20 15:29:00 UTC 2018


Hey,

Sorry for top posting. I have done some testing of this during the day, and it seems that this only works if you run "export MKUBIFS_ARGS_foo" and similar in whichever config file contains those settings (such as a machine conf).

I would have preferred a combined shell/python solution, but that seems to be trickier than I thought, since there is code in place that looks for IMAGE_CMD_multiubi specifically (in image.bbclass), and I have not been able to override that. Any ideas of making this work without the export hack are welcome.

Cheers,
 
 Tobias Olausson
 Development Engineer
 HMS Industrial Networks AB


From: Andre McCurdy <armccurdy at gmail.com>
Sent: Tuesday, June 19, 2018 8:33 PM
To: Tobias Olausson
Cc: openembedded-core at lists.openembedded.org
Subject: Re: [OE-core] [oe-core][PATCHv4] image_types.bbclass: add optional size to ubi vols
  

On Tue, Jun 19, 2018 at 8:09 AM, Tobias Olausson <TOl at hms.se> wrote:
> From 1d15f0d3c516351e6540a912367bcb22f9c25bbf Mon Sep 17 00:00:00 2001
> From: Tobias Olausson <tol at hms.se>
> Date: Mon, 18 Jun 2018 15:01:53 +0200
> Subject: [oe-core][PATCHv4] image_types.bbclass: add optional size to ubi vols
>
> Instead of hard coding the ubi volume to be just large enough to fit the
> root file system, one can use a variable to set a preferred size.
>
> Signed-off-by: Tobias Olausson <tol at hms.se>
> ---
>  meta/classes/image_types.bbclass | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass
> index 00a00d318f..2a0a7994c9 100644
> --- a/meta/classes/image_types.bbclass
> +++ b/meta/classes/image_types.bbclass
> @@ -164,10 +164,22 @@ multiubi_mkfs() {
>                 local vname="_$3"
>         fi
>
> +       # Set UBI_VOL_SIZE (for regular ubi) or UBI_VOL_SIZE_vname for multiubi
> +       if [ -z "${vname}" ]; then
> +               local ubi_vol_size=${UBI_VOL_SIZE}
> +       else
> +               eval local ubi_vol_size=\"\$UBI_VOL_SIZE${vname}\"

This looks odd. Presumably it (and the multiubi code from which it's
derived) relies on the _<VOLUMENAME> suffix variables
(MKUBIFS_ARGS_foo, UBI_VOL_SIZE_foo, etc) being exported from bitbake
to the shell?

I didn't find any discussion about that from when the original
multiubi code was merged though. Are there any multiubi users who can
clarify?

> +       fi
> +
>         echo \[ubifs\] > ubinize${vname}-${IMAGE_NAME}.cfg
>         echo mode=ubi >> ubinize${vname}-${IMAGE_NAME}.cfg
>         echo image=${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs >> ubinize${vname}-${IMAGE_NAME}.cfg
>         echo vol_id=0 >> ubinize${vname}-${IMAGE_NAME}.cfg
> +
> +       if [ -n "${ubi_vol_size}" ]; then
> +               echo "vol_size=${ubi_vol_size}" >> ubinize${vname}-${IMAGE_NAME}.cfg
> +       fi
> +
>         echo vol_type=dynamic >> ubinize${vname}-${IMAGE_NAME}.cfg
>         echo vol_name=${UBI_VOLNAME} >> ubinize${vname}-${IMAGE_NAME}.cfg
>         echo vol_flags=autoresize >> ubinize${vname}-${IMAGE_NAME}.cfg
> --
> 2.17.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
    


More information about the Openembedded-core mailing list