OpenEmbedded is a
build automation framework and
cross-compile environment used to create
Linux distributions for
embedded devices.
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
The Yocto Project is a Linux Foundation collaborative open source project whose goal is to produce tools and processes that enable the creation of Linux distributions for embedded and IoT software that are independent of the underlying architectu ...
, 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".
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.
[.]
The OpenEmbedded framework can be installed and automatically updated via
Git
Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
.
[.]
History
The ''OpenEmbedded Project'' (''OE'' for short) was created by Chris Larson, Michael Lauer, and Holger Schurig, merging the achievements of
OpenZaurus
OpenZaurus is a defunct embedded operating system for the Sharp Zaurus personal mobile tool PDA.
History
In its original form, the project was a repackaging of the SharpROM, the Zaurus's factory supplied kernel and root filesystem image. In or ...
with contributions from projects like
Familiar Linux
Familiar Linux is a discontinued Linux distribution for iPAQ devices and other personal digital assistants (PDAs), intended as a replacement for Windows CE. It can use OPIE or GPE Palmtop Environment as the graphical user interface.
Technical d ...
and
OpenSIMpad into a common codebase. OpenEmbedded superseded these projects and was used to build any of them from the same code base.
The ''OpenEmbedded-Core'' Project (''OE-Core'' for short) resulted from the merge of the
Yocto Project
The Yocto Project is a Linux Foundation collaborative open source project whose goal is to produce tools and processes that enable the creation of Linux distributions for embedded and IoT software that are independent of the underlying architectu ...
with OpenEmbedded.
All package recipes are since then maintained through OpenEmbedded-Core.
Layer organisation
OpenEmbedded-Core has adapted this layered structure in the merge with Yocto and new layer entries were added over time.
[Yocto & OpenEmbedded Core Layers](_blank)
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
Efika is a line of power efficient ARM architecture and Power ISA based computers manufactured by Genesi.
In Esperanto ''efika'' means "efficacious, effective, or efficient".
EfikaPPC
The EfikaPPC, sometimes also referred to as EFIKA 5200B, was ...
devices)
:* meta-fsl-arm (
Freescale Semiconductor officially supported development boards)
:* meta-fsl-arm-extra (
Freescale Semiconductor community supported boards)
:* meta-handheld (
Personal digital assistant
A personal digital assistant (PDA), also known as a handheld PC, is a variety mobile device which functions as a personal information manager. PDAs have been mostly displaced by the widespread adoption of highly capable smartphones, in part ...
s, PDAs)
:* meta-intel (
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
embedded devices)
:* meta-nslu2 (
NSLU2
The NSLU2 (Network Storage Link for USB 2.0 Disk Drives) is a network-attached storage (NAS) device made by Linksys introduced in 2004 and discontinued in 2008. It makes USB flash memory and hard disks accessible over a network using the SMB pro ...
devices)
:* meta-openpandora (
Openpandora
The Pandora is an operating system, handheld game console and mobile personal computer originally released in 2010. It is designed to take advantage of existing free and open-source software and to be a target for homebrew development. It inclu ...
devices)
:* meta-smartphone (various smartphone devices)
:* meta-ti (
Texas Instruments
Texas Instruments Incorporated (TI) is an American technology company headquartered in Dallas, Texas, that designs and manufactures semiconductors and various integrated circuits, which it sells to electronics designers and manufacturers globa ...
devices)
:* meta-xilinx (
Xilinx devices)
:* meta-altera (
Altera
Altera Corporation was a manufacturer of programmable logic devices (PLDs) headquartered in San Jose, California. It was founded in 1983 and acquired by Intel in 2015.
The main product lines from Altera were the flagship Stratix series, mid-ran ...
devices)
:* meta-ettus (Ettus Research
USRP SDR devices)
:* (Others)
; Yocto layer
:* meta-yocto (Yocto Project layer
)
; OpenEmbedded-Core layer
:* openembedded-core
:* meta-openembedded
Distributions supported
In OpenEmbedded-Classic, the configurations from Base- to the UI-Layer can be supplemented by various
Linux distributions. The following list is available for OpenEmbedded:
*
Ångström distribution
The Ångström distribution is a defunct Linux distribution for a variety of embedded devices. The distribution is the result of work by developers from the OpenZaurus, OpenEmbedded, and OpenSIMpad projects. The graphical user interfaces (GU ...
*
KaliOS
*
Openmoko
Openmoko is a discontinued project to create a family of Open-source model, open source mobile phones, including the hardware specification, the operating system (Openmoko Linux), and actual smartphone development implementation like the Neo 19 ...
*
SHR
*
SlugOS
*
WebOS
webOS, also known as LG webOS and previously known as Open webOS, HP webOS and Palm webOS, is a Linux kernel-based multitasking operating system for smart devices such as smart TVs that has also been used as a mobile operating system. Initially ...
* Others
Supported hardware
Various devices are supported:
; Boards and processors
: The
BeagleBoard
The BeagleBoard is a low-power open-source single-board computer produced by Texas Instruments in association with Digi-Key and Newark element14. The BeagleBoard was also designed with open source software development in mind, and as a way of de ...
from Texas Instruments, and a variety of devices based on an ARM CPU are supported.
; Smartphones
: Smartphones like the
Nokia N800
The Nokia N800 Internet tablet is a wireless Internet appliance from Nokia, originally announced at the Las Vegas CES 2007 Summit in January 2007. N800 allows the user to browse the Internet and communicate using Wi-Fi networks or with mobi ...
and
Neo FreeRunner
Openmoko is a discontinued project to create a family of open source mobile phones, including the hardware specification, the operating system ( Openmoko Linux), and actual smartphone development implementation like the Neo 1973 and Neo FreeRun ...
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
*
BitBake
*
Buildroot
Buildroot is a set of Makefiles and patches that simplifies and automates the process of building a complete and bootable Linux environment for an embedded system, while using cross-compilation to allow building for multiple target platforms on ...
*
Emdebian Grip
*
Familiar Linux
Familiar Linux is a discontinued Linux distribution for iPAQ devices and other personal digital assistants (PDAs), intended as a replacement for Windows CE. It can use OPIE or GPE Palmtop Environment as the graphical user interface.
Technical d ...
*
Openpandora
The Pandora is an operating system, handheld game console and mobile personal computer originally released in 2010. It is designed to take advantage of existing free and open-source software and to be a target for homebrew development. It inclu ...
*
OpenZaurus
OpenZaurus is a defunct embedded operating system for the Sharp Zaurus personal mobile tool PDA.
History
In its original form, the project was a repackaging of the SharpROM, the Zaurus's factory supplied kernel and root filesystem image. In or ...
*
Yocto Project
The Yocto Project is a Linux Foundation collaborative open source project whose goal is to produce tools and processes that enable the creation of Linux distributions for embedded and IoT software that are independent of the underlying architectu ...
*
T2 SDE
The T2 SDE (System Development Environment) is an open source Linux distribution kit. It is primarily developed by René Rebe.
History
ROCK Linux was started in the summer of 1996 by Claire Wolf. T2 SDE was forked in 2004, when developers where ...
References
External links
*
FOSDEM'05 presentation of OpenEmbeddedFOSDEM'07 presentation of OpenEmbeddedELC'08 presentation of OpenEmbedded
{{DEFAULTSORT:Openembedded
Build automation
Embedded Linux
Personal digital assistant software
Software using the MIT license