[yocto] Multiple ubifs partition

Ulrich Ölmann u.oelmann at pengutronix.de
Mon May 6 05:15:19 PDT 2019


Hi Gabriele,

On Mon, May 06 2019 at 13:32 +0200, Gabriele Zampieri <gabbla.malist at gmail.com> wrote:
> thank you very much for your explanation. The provided genimage.config
> looks similar to mine, so I guess it is ok. I will try when I come back to
> the office. The point I missed was that I need to call: bitbake
> your-customized-ubi and not bitbake my-custom-image, right?

correct - "my-custom-image" will indirectly become a dependency via the
variable GENIMAGE_ROOTFS_IMAGE, see [1].

Best regards
Ulrich


[1] https://github.com/pengutronix/meta-ptx/blob/master/classes/genimage.bbclass#L88

> Thank you again,
> Gabriele
>
>
> Il giorno ven 3 mag 2019 alle ore 07:59 Ulrich Ölmann <
> u.oelmann at pengutronix.de> ha scritto:
>
>> Hi Gabriele,
>>
>> On Thu, May 02 2019 at 13:25 +0200, Gabriele Zampieri <
>> gabbla.malist at gmail.com> wrote:
>> > ok, I guess I miss-understand how that class works. I thought that I
>> > had to add the customization on my own image recipe.
>> > So the correct way is to write a 'customization recipe' and install
>> > via IMAGE_INSTALL? Can you provide an example?
>>
>> use your custom image recipe as before to just produce your root-
>> filesystem which results in a (compressed) tar-file in ${DEPLOY_DIR_
>> IMAGE}. It will be referenced from the genimage recipe without any file
>> extension via GENIMAGE_ROOTFS_IMAGE. Now your UBI-recipe (e.g. 'your-
>> customized-ubi.bb') could look like
>>
>>     inherit genimage
>>     LICENSE = "MIT"
>>     LIC_FILES_CHKSUM =
>> "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
>>
>>     SRC_URI += "file://genimage.config"
>>
>>     # to not confuse the flashable UBI-image ('ubi')
>>     # with the UBI-filesystems ('ubifs') it contains
>>     GENIMAGE_IMAGE_SUFFIX = "ubi"
>>
>>     # the name of the root-filesystem genimage should use
>>     GENIMAGE_ROOTFS_IMAGE = "your-customized-rootfs"
>>
>> with the accompanying 'genimage.config' for example as follows
>>
>>     #
>>     # Manufacturer ID: 0x2c, Chip ID: 0xda
>>     # -> Micron MT29F2G08ABAEAWP
>>     # 256 MiB, SLC
>>     #
>>     flash nand {
>>         pebsize = 131072
>>         lebsize = 126976
>>         numpebs = 2044
>>         minimum-io-unit-size = 2048
>>         sub-page-size = 2048
>>     }
>>
>>     image @IMAGE@ {
>>         flashtype = "nand"
>>         ubi {
>>         }
>>
>>         partition rootfs {
>>                 image = rootfs.ubifs
>>                 size = 64MiB
>>         }
>>
>>         partition opt {
>>                 image = opt.ubifs
>>                 size = 32MiB
>>         }
>>
>>         partition data {
>>                 image = data.ubifs
>>                 autoresize = true
>>         }
>>     }
>>
>>     image rootfs.ubifs {
>>         flashtype = "nand"
>>         ubifs {
>>                 extraargs = "-x lzo"
>>                 max-size = 64MiB
>>         }
>>         mountpoint = "/"
>>     }
>>
>>     image opt.ubifs {
>>         flashtype = "nand"
>>         ubifs {
>>                 extraargs = "-x lzo"
>>                 max-size = 32MiB
>>         }
>>         mountpoint = "/opt"
>>     }
>>
>>     image data.ubifs {
>>         flashtype = "nand"
>>         ubifs {
>>                 extraargs = "-x lzo"
>>                 max-size = 192MiB
>>         }
>>         mountpoint = "/data"
>>     }
>>
>> In a UBI-image almost all UBI-volumes need to have a fixed size and only
>> one is allowed to use the autoresize mechanism which blows it up to use
>> the remaining space when it is UBI-attached for the first time. Distinct
>> from that is the UBI-filesystem's max-size parameter which prescribes
>> the maximum size of an UBI-volume that shall be addressable by this
>> filesystem. This means that if you would re-use 'data.ubifs' in a volume
>> that has been autoresized to e.g. 1024MiB the filesystem would not be
>> able to make use of it.
>>
>> I neither tested the recipe nor the genimage.config, so please give some
>> feedback.
>>
>> Best regards
>> Ulrich
>>
>>
>> > Thanks,
>> > Gabriele
>> >
>> > Il giorno mer 24 apr 2019 alle ore 15:15 Ulrich Ölmann <
>> > u.oelmann at pengutronix.de> ha scritto:
>> >
>> >> Hi Gabriele,
>> >>
>> >> On Wed, Apr 24 2019 at 14:06 +0200, Gabriele Zampieri <
>> >> gabbla.malist at gmail.com> wrote:
>> >> > I'm now testing genimage via meta-ptx in my Yocto workflow, but I
>> found a
>> >> > problem: I cannot set a SRC_URI in my custom image recipe (that
>> inherit
>> >> > from core-image which in turn inherit from image) because do_fetch and
>> >> > do_unpack tasks have noexec set to 1. If I specify the SRC_URI with my
>> >> > genimage.config, bitbake exits, complaining about LIC_FILE_CHECKSUM
>> (that
>> >> > is correctly specified). If I hack image.bbclass and comment out
>> >> >
>> >> > #do_fetch[noexec] = "1"
>> >> >
>> >> >
>> >> > #do_unpack[noexec] = "1"
>> >> >
>> >> > The process start correctly. Is there a way to avoid touching
>> >> image.bbclass
>> >> > and install my configuration from the image recipe?
>> >> >
>> >> > Thanks,
>> >> > Gabriele
>> >>
>> >> you need one or more recipe(s) that construct(s) your filesystem(s) and
>> >> a separate one that makes a flashable image out of that (see the
>> >> introductory documentation in 'genimage.bbclass'). In the former you
>> >> inherit 'core-image' and only in the latter which inherits 'genimage'
>> >> you have to set the SRC_URI to point to your 'genimage.config'.
>> >>
>> >> Best regards
>> >> Ulrich
>> >>
>> >>
>> >> > Il giorno mer 13 mar 2019 alle ore 16:14 Gabriele Zampieri <
>> >> > gabbla.malist at gmail.com> ha scritto:
>> >> >
>> >> >> Hi all,
>> >> >>
>> >> >> thank you very much for the suggestion, I will check genimage and
>> test
>> >> it.
>> >> >>
>> >> >> Gabriele
>> >> >>
>> >> >> Il giorno gio 7 mar 2019 alle ore 16:23 Ulrich Ölmann <
>> >> >> u.oelmann at pengutronix.de> ha scritto:
>> >> >>
>> >> >>> Hi there,
>> >> >>>
>> >> >>> On Thu, Mar 07 2019 at 15:11 +0100, Stelling2 Carsten <
>> >> >>> Carsten.Stelling2 at goerlitz.com> wrote:
>> >> >>> > Have you seen https://github.com/pengutronix/genimage?
>> >> >>>
>> >> >>> you can find it included within
>> >> https://github.com/pengutronix/meta-ptx
>> >> >>> with an accompanying genimage.bbclass.
>> >> >>>
>> >> >>> Best regards
>> >> >>> Ulrich
>> >> >>>
>> >> >>> > Regards,
>> >> >>> >
>> >> >>> > Carsten
>> >> >>> >
>> >> >>> > Von: yocto-bounces at yoctoproject.org [mailto:
>> >> >>> yocto-bounces at yoctoproject.org] Im Auftrag von Gabriele Zampieri
>> >> >>> > Gesendet: Montag, 4. März 2019 12:17
>> >> >>> > An: yocto at yoctoproject.org
>> >> >>> > Betreff: [yocto] Multiple ubifs partition
>> >> >>> >
>> >> >>> > Hi all,
>> >> >>> >
>> >> >>> > I'm trying to build a distribution that has multiple partitions.
>> The
>> >> >>> desiderata is something like:
>> >> >>> >
>> >> >>> > - rootfs.ubifs mounted on /
>> >> >>> > - data.ubifs mounted on /data
>> >> >>> > - opt.ubifs mounted on /opt
>> >> >>> >
>> >> >>> > I was wondering if there is a standard way to achieve the goal. I
>> see
>> >> >>> that there is a tool called wic, but it does not seems to support
>> >> ubifs. I
>> >> >>> could post process the tarball image and doing stuff with my
>> scripts,
>> >> but
>> >> >>> I'd prefer doing this in a single bitbake run. Can you suggest
>> >> something?
>> >> >>> >
>> >> >>> > Thanks,
>> >> >>> > Gabriele
>> >> >>>
>> >> >>>
>> >> >>> --
>> >> >>> Pengutronix e.K.                           | Ulrich Ölmann
>> >>    |
>> >> >>> Industrial Linux Solutions                 |
>> >> http://www.pengutronix.de/
>> >> >>> |
>> >> >>> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone:
>> +49-5121-206917-0
>> >>   |
>> >> >>> Amtsgericht Hildesheim, HRA 2686           | Fax:
>> >>  +49-5121-206917-5555 |
>> >> >>>
>> >> >>
>> >>
>> >>
>> >> --
>> >> Pengutronix e.K.                           | Ulrich Ölmann
>>  |
>> >> Industrial Linux Solutions                 | http://www.pengutronix.de/
>> |
>> >> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0
>>   |
>> >> Amtsgericht Hildesheim, HRA 2686           | Fax:
>>  +49-5121-206917-5555 |
>> >>
>>
>>
>> --
>> Pengutronix e.K.                           | Ulrich Ölmann               |
>> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
>> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
>> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>>


--
Pengutronix e.K.                           | Ulrich Ölmann               |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |


More information about the yocto mailing list