Embedding Custom Packages
The easiest and cleanest way to embed custom packages into an OpenMoko image build is to basically create a custom distribution on top of OpenMoko (just like OpenMoko is built on top of OpenEmbedded). In order to do this we create a new directory tree openmoko-sar
next to oe
and openembedded
:
$OPENMOKODIR | |-> oe | | | |-> classes | | | | | |-> ... | |-> packages | | | | | |-> images | | |-> ... | |->... |-> openembedded | | | |->... |-> openmoko-sar | | | |-> packages | | | | | |-> images | | | | | | | |-> openmoko-sar-devel-image.bb | | | |-> openmoko-sar-image.bb
For a first test we will put our own image recipes into this tree, and create the new recipes based on the image recipes from $OPENMOKODIR/oe/packages/images/
. Simply copy the existing recipes, change their name, modify the require
statement in (the now new) openmoko-sar-devel-image.bb
. At a later time we plan to put this structure into a version control system.
To actually use this structure the following changes are necessary. In setup-env
change:
export BBPATH="${OMDIR}/build:${OMDIR}/oe:${OMDIR}/openembedded:"
to
export BBPATH="${OMDIR}/build:${OMDIR}/oe:${OMDIR}/openembedded:${OMDIR}/openmoko-sar"
and in build/conf/local.conf
append:
BBFILES := "${BBFILES} ${OMDIR}/openmoko-sar/packages/*/*.bb"
(And maybe, for convenience, append to Makefile
:
.PHONY: %-image %-image: ( source ./setup-env ; cd build ; bitbake -c build $*-image )
)
Now you should be able to build the new image with make openmoko-sar-devel-image
. Bonus point: since the image name starts with openmoko-
it will automatically be picked up by make flash-qemu-local
.