I'm not sure I sufficiently explained what I'm doing in my earlier post, so here's an elaboration:

I'm building console images for two custom Gumstix carrier boards: board A and board B.  The two boards require slightly different kernel configurations.  Therefore, when I build the image for board A, I want it to use the kernel configuration for board A, and likewise for board B.

In my current strategy, I have created two customized kernel recipes:
    $OVEROTOP/org.openembedded/recipes/linux-customized-for-boardA
    $OVEROTOP/org.openembedded/recipes/linux-customized-for-boardB

and two custom image recipes:
    $OVEROTOP/org.openembedded/recipes/console-image-for-boardA
    $OVEROTOP/org.openembedded/recipes/console-image-for-boardB

I've made two local git branches of org.openembedded.dev - both of which include the above recipes.
    boardA
    boardB

Within the boardA branch, I modify $OVEROTOP/org.openembedded/conf/machine/overo.conf such that:
    PREFERRED_PROVIDER_virtual/kernel = "linux-customized-for-boardA"

Similarly, within the boardB branch, I modify $OVEROTOP/org.openembedded/conf/machine/overo.conf such that:
    PREFERRED_PROVIDER_virtual/kernel = "linux-customized-for-boardB"

Now, to build the custom image for carrier board A, I simply do the following
    git checkout boardA
    bitbake console-image-for-boardA

Likewise, to build the custom image for carrier board B:
    git checkout boardB
    bitbake console-image-for-boardB

Using this strategy, I can modify and build either custom image recipe without needing to re-build the kernel when switching from one to the other.  What I'd like to know is whether there is a way to explicitly specify a kernel recipe to use *within an image recipe*.  If there is, it would eliminate the need for the two git branches and modification of PREFERRED_PROVIDER_virtual/kernel.

I hope this helps clarify my earlier question.  Thanks for any thoughts.


Best Regards,

Dave Billin

Graduate Research Assistant --MS Computer Engineering
University of Idaho
Moscow, Idaho 83844

e-mail: david.billin@vandals.uidaho.edu



From: Dave Billin [david.billin@vandals.uidaho.edu]
Sent: Tuesday, June 12, 2012 9:06 AM
To: gumstix-users@lists.sourceforge.net
Subject: [Gumstix-users] Stategy for binding a specific kernel recipe to an image recipe

I have an application that utilizes Gumstix OVERO modules on two custom carrier PCB's.  Differences in the hardware on the two carrier PCB's necessitates slightly different kernel recipes for the two processor modules.  To this end, I have created two bitbake recipes that implement the kernel differences and two corresponding image recipes for the processor modules.  I can then switch between the two kernel recipes by setting the value of the "PREFERRED_PROVIDER_virtual/kernel" variable in org.openembedded.dev/conf/machine/overo.c (conveniently accomplished by switching between two git branches).

While my current method works, I'm wondering if someone can recommend a better way to accomplish what I'm doing; specifically one that explicitly ties an image recipe to its corresponding custom kernel recipe.  I've tried overriding PREFERRED_PROVIDER_virtual/kernel in the image recipes, but it results in a parsing error.  From what I've gathered in reading through the OpenEmbedded user's manual, it seems like the kernel recipe gets assigned within the OpenEmbedded machine configuration and nowhere else.

Perhaps this question would be better posed to the OpenEmbedded mailing list, but I thought I would post it here in case one of the experienced Gumstix developers has addressed a similar situation.  Thanks in advance for any helpful comments!

Best Regards,

Dave Billin

Graduate Research Assistant --MS Computer Engineering
University of Idaho
Moscow, Idaho 83844

e-mail: david.billin@vandals.uidaho.edu