Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

TODO this page needs updating.

The following assumes that you already have a built tree rooted in openxt.git with a completed build. It also assumes the build was done with with INHIBIT_RMWORK set. INHIBIT_RMWORK is set by default, and tells the build scripts to not delete the temporary packages build folders, so that we can go there, modify and rebuild source code.

...

bitbake, the tool we use to build packages, uses the MACHINE environment variable to know what the current target (VM) is. A few possible values are xenclient-dom0 (to work on the main rootfs), xenclient-uivm (to work on the UI VM rootfs), xenclient-ndvm (to work on the network VM rootfs).


Make sure it is always set to something valid. Having "export MACHINE=xenclient-dom0" in your .bashrc is not a bad idea. If you are modifying multiple machines you can set it on the comment line before invoking the bb (which is a wrapper for the bitbake command).

The main folders

FolderDescription
build-scriptsopenxt.git/build/oe/The main work folder, where bb (bitbake wrapper) livesbuild-scripts
openxt.git/build/reposWhere all the OpenEmbedded repos get checked out
openxt.git/build/repos/xenclient-oe/xenclient/recipes/The OpenXT-specific recipes (xenclient-oe.git)
build-scriptsopenxt.git/build/oe/tmp-eglibc/The build folder, made not so "tmp" by INHIBIT_RMWORK
build-scriptsopenxt.git/build/oe/tmp-eglibc/work/Where the building of the packages happen, each subfolder is an OE "machine"
build-scriptsopenxt.git/build/oe/tmp-eglibc/work/core2-oe-linux/For non-machine-specific work, most of the non-kernel-related packages are built here

The package folders

Those are located in build-scripts openxt.git/build/oe/tmp-eglibc/work/*/[Package name]_[Package version]/ and can contain the following folders:

...

Custom bibake rules

To run in build-scriptsopenxt.git/build /oe using ./bb -c [rule] [Package name]

RuleDescription
makeclean
Run a proper "make clean" inside the build folder. IMPORTANT: rebuilding without cleaning could not do what you expect, like with Xen recipes.
force_rebuild
Brings the state of the package back (usually from "done building") to "needs compiling"
cleansstate
Cleans the package and removes its state (which means "initial state" to OE)

...