Re: [OE-core] [PATCH v4 0/2] image-bootfiles: new class

Martin Hundebøll
2024-06-11T14:44:17Z

On Tue, 2024-06-11 at 15:22 +0200, Marcus Folkesson wrote:
> Hi Ross,
>
> On Tue, Jun 11, 2024 at 10:37:06AM +0000, Ross Burton wrote:
> > On 30 May 2024, at 10:53, Marcus Folkesson via
> > lists.openembedded.org
> > <marcus.folkesson=gmail.com@lists.openembedded.org> wrote:
> > > The image-bootfiles class is used to put all files listed in
> > > IMAGE_BOOT_FILES into the root filesystem.
> > >
> > > IMAGE_BOOT_FILES is used by the bootimg-partition wic plugin to
> > > put the
> > > files into a boot partition.
> > > Be able to list files as "boot files" in e.g. your .conf or image
> > > files
> > > instead of install those in every recipe is a good thing.
> > >
> > > It is not always desired to have a separate boot partition for
> > > boot
> > > files. Sometimes it could be good to have them as a part of the
> > > root
> > > filesystem.
> > >
> > > For example, if a double copy strategy is used for update the
> > > system,
> > > then you probably want to update both the boot files and root
> > > filesystem
> > > at the same time as there may be dependencies.
> >
> > In my mind, IMAGE_BOOT_FILES is a workaround for the fact that some
> > /boot partitions (such as ones generated by wic) are not managed by
> > bitbake directly.  If you have a setup where you just have a / that
> > contains /boot isn’t adding eg grub to IMAGE_INSTALL sufficient to
> > get it in the right place in the rootfs?
>
> I don't know about the workaround, but it would'nt surprise me as it
> is
> not handled by bitbake as it is now.
>
> For some packages yes, but not for all. If you, for instance, have an
> embedded
> system where you depend on other files that are critical for the boot
> process, there is no uniform way to specify that for those files.
>
> IMAGE_BOOT_FILES is good as it let you include e.g. ramdisks and such
> that does not have installation scripts to the boot partition.
>
> The use case that I had was that I was first using a separate boot
> partition using the bootimg-partition wic plugin. Everything was
> good.
> Then I wanted to include those files into the root filesystem instead
> to
> be able to do an atomic update on everything, but there is no good
> way
> to achive that.

I'd suggest updating the recipe providing those boot files, so it
installs them into /boot (maybe in addition to deploying them to
$DEPLOYDIR).

> This image-class make the swap from bootimg-partition to rootfs
> seamless as it uses the same mechanics for both implementations.

I have always disliked the concept of recipes pulling files from
${DEPLOY_DIR_IMAGE}. That folder is an output folder, and should not be
used as input for other packages.

Instead, a proper do_populate_deploy task similar to
do_populate_sysroot would make it possible to DEPEND += on deployed
files from other recipes.

But this is probably a discussion for another mail thread. Sorry for
raising my opinion so late in the process.

// Martin