Embedding Custom Packages

From
Jump to navigation Jump to search

German version

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.