OpenEmbedded

OpenEmbedded
Developer(s)75+ developers[1]
Repository
Operating systemLinux
PlatformCross-platform
TypeBuild automation
LicenseMIT
Websitewww.openembedded.org

OpenEmbedded is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices.[2] The OpenEmbedded framework is developed by the OpenEmbedded community, which was formally established in 2003. OpenEmbedded is the recommended build system of the Yocto Project, which is a Linux Foundation workgroup that assists commercial companies in the development of Linux-based systems for embedded products.

The build system is based on BitBake "recipes", which specify how a particular package is built but also include lists of dependencies and source code locations, as well as for instructions on how to install and remove a compiled package. OpenEmbedded tools use these recipes to fetch and patch source code, compile and link binaries, produce binary packages (ipk, deb, rpm), and create bootable images.

Historically, OpenEmbedded's collection of recipes was stored in a single repository, and the metadata was structured in a form now called "OpenEmbedded-Classic". By 2010, it had become increasingly difficult to manage the ever-growing number of recipes. To resolve this, recipe metadata was split into multiple layers. The lowest layer, which includes platform-independent and distribution-independent meta data is called "OpenEmbedded-Core".[3] Architecture-specific, application-specific and distribution-dependent instructions are applied in appropriate target support layers that can override or complement the instructions from lower layers. Additionally, changes to the recipes at the core layer are now managed with a pull model: instead of committing their changes directly to the repository (as was previously the case), developers now send their patches to the mailing list. The patches, if approved, are then merged (pulled) by a maintainer.[3]

The OpenEmbedded framework can be installed and automatically updated via Git.[2]

  1. ^ "OpenEmbedded Developers". Archived from the original on 2012-11-09.
  2. ^ a b Brake, Cliff; et al. (2015), "Welcome to OpenEmbedded", OpenEmbedded Wiki, Blacksburg, VA: openembedded.org.
  3. ^ a b Eggleton, Paul (2015), "OpenEmbedded-Core", OpenEmbedded Wiki, Blacksburg, VA: openembedded.org.