Thanks to some good inputs from Gary and Steve, I was able to setup a user.collections folder, to store all my local customizations, to make the system build against the linux-omap3-2.6.27 kernel, instead of the v2.6.29 kernel.

I'm still not sure if it was adding the default preference parameter = 1 in the linux-omap3-2.6.27.bb file or specifying the PREFERRED_VERSION_linux-omap3 = "2.6.27-r3" that made it work.

Not also still sure if I have to specify the -r3 at the. 

In any case, the following instructions work, and the bitbake system now correctly picks up and executes the linux-omap3-2.6.27.bb file!! :-) 

I'll upload all these technotes onto the gumstix wiki, as soon as I've completed the main task at hand, which is trying to port android onto the overo. Just sharing all this info, in case it comes in handy for someone else in the same situation!! 

Most of the instructions outlined here are adapted from suggestions made by Gary.

Please note that the system correctly picks up the required recipe files, but I haven't tested the built image yet to confirm if everything is working fine. The OE build process is very time consuming. Perhaps a little later on I need to get a set of machines to do parallel builds or something!! ;-)

Best regards,


Technote OpenEmbedded-002: How to execute linux-omap3-2.6.27.bb when running the bitbake omap3-android-image command


When there are multiple “versions” of a given package, bitbake defaults to selecting the most recent version, unless otherwise specified. 

If the .bb in question has a DEFAULT_PREFERENCE set lower than the other .bb's (default is 0), then it will not be selected. This allows the person or persons maintaining the repository of .bb files to specify their preferences for the default selected version. In addition, the user can specify their preferences with regard to version.

If the first .bb is named a_1.1.bb, then the PN variable will be set to “a”, and the PV variable will be set to 1.1.

If we then have an a_1.2.bb, bitbake will choose 1.2 by default. However, if we define the following variable in a .conf that bitbake parses, we can change that.


Therefore, if you have a .bb recipe that you want to use (such as linux-omap3-2.6.27.bb ) you would want to to set the PV variable to 2.6.27 (IE: PREFERRED_VERSION_linux-omap = "2.6.27" ) in order to have bitbake use the linux-omap3-2.6.27.bb recipe instead of the most recent linux-omap3 recipe it finds in the system.


Step 01.00: Create a new user.collection folder to store all your customizations.


Step 02.00: Copy the recipes that you want to modify into the user.collection folder.

overo-oe/user.collection/recipes/linux/linux-omap3-2.6.27      (recipes folder)
overo-oe/user.collection/recipes/linux/linux-omap3-2.6.27.bb   (bitbake recipe)
overo-oe/user.collection/recipes/linux/linux-omap.inc          (required file)
overo-oe/user.collection/recipes/linux/linux.inc               (required file)

overo-oe/user.collection/recipes/images/omap3-android-image.bb (image recipe) 
overo-oe/user.collection/recipes/images/omap3-console-image.bb (required recipe) 

Step 03.00: Modify the bitbake recipe files.

Modify the bitbake recipies stored in the overo-oe/user.collection folder.

Step 03.01: Modify the omap3-android.image.bb file.

# Android image for omap3

# Required packages
require omap3-console-image.bb

# Package information
PN = "omap3-android-image"
PV = "2.6.27"
PR = "r1"

# Set the preferred linux kernel version to 2.6.27
PREFERRED_VERSION_linux-omap3 = "2.6.27-r3"

Step 03.02: Modify the linux-omap3-2.6.27.bb file.

# Linux OMAP3 2.6.27 recipie

# Required packages
require linux-omap.inc

# Package information
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-omap3-git/${MACHINE}"

SRCREV = "189f0e76832b4a2d3bcc0d973ed4240170e04c29"

PN = "linux-omap3"
PV = "2.6.27"
PR = "r3"

SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git;branch=master;protocol=git \

SRC_URI_append_beagleboard = " \
           file://logo_linux_clut224.ppm \
           file://no-empty-flash-warnings.patch;patch=1 \
           file://beagleboard.patch;patch=1 \

SRC_URI_append_omap3evm = " \
           file://logo_linux_clut224.ppm \
           file://no-empty-flash-warnings.patch;patch=1 \
           file://omap3evm.patch;patch=1 \

SRC_URI_append_overo = " \
           file://logo_linux_clut224.ppm \
           file://no-empty-flash-warnings.patch;patch=1 \
           file://overo.patch;patch=1 \

COMPATIBLE_MACHINE = "beagleboard|omap3evm|overo"

S = "${WORKDIR}/git"

Step 04.00: Rebuild the image file.

bitbake -c rebuild omap3-android-image

Related Links

01. bitbake Chapter 4. Commands.