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

Joao Carlos Cabral (P) Joao.CCabral at parceiros.nos.pt
Sun Feb 9 23:26:55 UTC 2020


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.

PS. Also tried to require the bbappend file, but bitbake fails saying
that it's not a bitbake file.

Thanks in advanced.

João Cabral


More information about the bitbake-devel mailing list