Advanced configuration

From Openembedded

Jump to: navigation, search

Contents

[edit] ASSUME_PROVIDED

OpenEmbedded has a couple of native packages that are used for cross-compiling stuff. Whenever a package X needs another package Y on the host but Y is not in the list of RequiredSoftware then a native package presents a solution. If you already have that package Y installed on your compile host then there is no need to waste CPU cycles compiling it again. That is what ASSUME_PROVIDED is for.

  • you have a Java virtual machine installed: ASSUME_PROVIDED += "virtual/java-native"
  • you have a Java compiler installed: ASSUME_PROVIDED += "virtual/javac-native"

[edit] Parallel bitbake

People having a multi CPU or multi core computer can build several packages in parallel to speed the process. Starting with bitbake 1.8.8, you can set

 BB_NUMBER_THREADS = "4"

to run nicely on your quad core system.

[edit] Clean-up

After a package is built, the build dir can be automatically removed. To have this functionality in your build add

INHERIT += "rm_work"

to your configuration.

[edit] Insecure downloads

In case you want to prevent OpenEmbedded from erroring out when it downloads something that has no entry in checksums.ini set:

 OE_STRICT_CHECKSUMS = ""

in local.conf

This is handy if your are using an overlay. It is still STRONGLY recommended you add the checksums to checksums.ini as well.

[edit] Whitelist Environment Variables

For detailed information see:

http://article.gmane.org/gmane.comp.sysutils.bitbake.devel/970

To allow bitbake to pass variables from the environment use:

 export BB_ENV_EXTRAWHITE="OE_DIR OTHER_ENV_VAR"

in bashrc or your preferred way of setting up the environment before running bitbake.

[edit] Building a single binary and its dependencies

As default, "bitbake x" is defined to mean build x and whatever other tasks x needs to build, not build x and package all x's dependencies.

The image or package-index recipe will set the necessary flags to ensure that all dependent packages are generated to run its tasks. If you're not building an image but just compiling something to test on target, you may want to install the package and its dependencies too.

To obtain that result you can set BB_DEFAULT_TASK = "buildall" in your local.conf.

If you're using the feed rather than copying the packages manually remember to run "bitbake package-index".

Personal tools