[yocto] Multiple ubifs partition
Ulrich Ölmann
u.oelmann at pengutronix.de
Thu May 2 22:59:02 PDT 2019
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 |
More information about the yocto
mailing list