[bitbake-devel] [HELP] Create a new image recipe based on a (changed) existing one

Joao Carlos Cabral (P) Joao.CCabral at parceiros.nos.pt
Thu Feb 13 17:34:05 UTC 2020


Thanks for your answer.

Using your method, how could I create the normal image and the dev one?

* bitbake product - would produce the normal one?
* bitbake my-image - would produce the dev one?

I still need to create the "normal" when ending a develop phase.

Thanks

João Cabral 

On Mon, 2020-02-10 at 13:12 -0800, Andre McCurdy wrote:
> On Mon, Feb 10, 2020 at 6:15 AM Joao Carlos Cabral (P)
> <Joao.CCabral at parceiros.nos.pt> wrote:
> > 
> > Hi,
> > 
> > I'm trying to create a image recipe based on a existing one.
> > I've searched online, and I could find such an example.
> > 
> > My problem is that the image I what to serve as a base is changed
> > in
> > another layer, and I want to include that changes.
> > 
> > Ex:
> > 
> > (tree)
> > 
> > Prj_root
> >     -> layer1
> >         -> recipes-core
> >             -> images
> >                 -> my-image.bb  [This is the base recipe]
> >     -> layer2
> >         -> recipes-core
> >             -> images
> >                 -> my-image.bbappend [This is the changed one]
> >     -> layer3
> >         -> recipes-core
> >             -> images
> >                 -> my-image-dev.bb [this is the new image, based on
> > my-image]
> > 
> > my-image.bbappend is something like this:
> > 
> > --------------------- my-image.bbappend ---------
> > PROVIDES = "product"
> > 
> > IMAGE_INSTALL += " \
> >         <some_packages> \
> > "
> > IMAGE_INSTALL_remove += " \
> >         <other-packeges>
> > "
> > 
> > (+ other functions related with signing the image)
> > _________________________________________________
> > 
> > The final image is created with 'bitbake product'.
> > And, I want to create a dev image that must be based on the current
> > "product" image (my-image.bb + my-image.bbappend) with some dev
> > packages.
> > So, I need to include the changes that my-image.bbapend does to
> > this
> > dev image I'm trying to create.
> > 
> > 
> > Tried simple create a new image that should be a copy of the
> > working
> > one, and then add the needed packages for development.
> > So I did the following...
> > 
> > ---------------- my-image-dev.bbappend ----------
> > 
> > SUMMARY = "dev Image"
> > 
> > require layer1/recipes-core/images/my-image.bb
> > ------------------------------------------------
> > 
> > I can run 'bitbake my-image-dev' and it runs, but doesn't produce
> > the
> > same output as 'bitbake product'.
> > 
> > Also, If I run 'bitbake my-image-dev' 1st, it finishes fine.
> > Running
> > 'bitbake product' after makes a bunch of other tasks and finishes
> > fine.
> > Running again 'bitbake my-image-dev' finishes with an error on a
> > specific task. ( It shows that they are not building the same
> > thing)
> > 
> > How can I do what I need?
> > NOTE: I can't change anything in the layer1 and layer2.
> 
> For the future, the clean way to do this would be to for the base
> image to include a package group for dev tools. The dev tools package
> group would be defined by a recipe in layer 1 and empty by default.
> When you want to add dev tools you can create a .bbappend (in layer
> 3)
> for the dev tools recipe.
> 
> If you can't modify layers 1 or 2 you can archieve something similar
> with a .bbappend in layer 3 which adds the dev tools to one of the
> package groups which _is_ being included in the image. For example,
> if
> you look in the manifest for the image you should see a number of
> package groups named packagegroup-base-ipv6, packagegroup-base-nfs,
> etc which are being included in the image. You can add packages to
> these package groups by using a .bbappend for the "
> packagegroup-base.bb" recipe.


More information about the bitbake-devel mailing list