OpenEmbedded (OE) is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices.

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

The OpenEmbedded Image Creator, called Wic, can be used to generate disk image files, generally with extension <code>.wic</code>.

History

The OpenEmbedded Project, created by Chris Larson, Michael Lauer, and Holger Schurig, merged the achievements of OpenZaurus with contributions from projects like Familiar Linux and OpenSIMpad into a common codebase. OpenEmbedded superseded these projects and was used to build any of them from the same code base.

OpenEmbedded-Core (OE-Core) resulted from the merge of the Yocto Project with OpenEmbedded. Since then, all package recipes are maintained through OpenEmbedded-Core.

OpenEmbedded-Core (OE-Core) contains a core set of metadata, including base recipes and classes used by OpenEmbedded and related systems. In this structure, developers can extend the build system without modifying the core metadata, with different layers supporting specific hardware platforms and software configurations.

The BitBake build tool, developed alongside OpenEmbedded, serves as the task execution engine and manages package builds and dependencies.

Layer organisation

OpenEmbedded-Core has adapted this layered structure in the merge with Yocto and new layer entries were added over time. The Layers represent a structure which is only of declarative nature. The specific entries are stricter in the scope of deciding which entry provides which packages. Overview of layers is available in:

; Developer layer

: The user-defined layer for custom Bitbake recipes. Embedded system software developers would place their recipe here if the software would not fit the commercial or base layer.

; Commercial layer

: Packages, plugins, and configurations from open source vendors go in this layer.

; UI-specific layer

: Layers currently present within the meta-openembedded layer:

:* meta-efl (Enlightenment window manager)

:* meta-gnome (GNOME window manager)

:* meta-gpe (GPE window manager)

:* meta-xfce (Xfce window manager)

; Hardware-specific layer

:* meta-efikamx (Efika devices)

:* meta-fsl-arm (Freescale Semiconductor officially supported development boards)

:* meta-fsl-arm-extra (Freescale Semiconductor community supported boards)

:* meta-handheld (Personal digital assistants, PDAs)

:* meta-intel (Intel embedded devices)

:* meta-nslu2 (NSLU2 devices)

:* meta-openpandora (Openpandora devices)

:* meta-smartphone (various smartphone devices)

:* meta-ti (Texas Instruments devices)

:* meta-xilinx (Xilinx devices)

:* meta-altera (Altera devices)

:* meta-ettus (Ettus Research USRP SDR devices)

:* (Others)

; Yocto layer

:* meta-yocto (Yocto Project layer

  • SlugOS
  • WebOS
  • Others

Supported hardware

Various devices are supported:

; Boards and processors

: The BeagleBoard from Texas Instruments, and a variety of devices based on an ARM CPU are supported.

; Smartphones

: Smartphones like the Nokia N800 and Neo FreeRunner are supported.

; Porting to new hardware

: The constellation of OpenEmbedded, especially the open design, allows it to get OpenEmbedded to adapt new hardware fairly easy.

See also

References

  • FOSDEM'05 presentation of OpenEmbedded
  • FOSDEM'07 presentation of OpenEmbedded
  • ELC'08 presentation of OpenEmbedded