OpenEmbedded

Last updated
OpenEmbedded
OpenEmbedded-logo-2009.svg
Developer(s) 75+ developers [1]
Repository
Operating system Linux
Platform Cross-platform
Type Build automation
License MIT
Website www.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.

Contents

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]

History

The OpenEmbedded Project (OE for short) was created by Chris Larson, Michael Lauer, and Holger Schurig, merging 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.

The OpenEmbedded-Core Project (OE-Core for short) resulted from the merge of the Yocto Project with OpenEmbedded. [4] 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. [5] [6] 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: layers.openembedded.org/layerindex/branch/master/layers/

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
Yocto layer
  • meta-yocto (Yocto Project layer [5] [4] )
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:

Supported hardware

Various devices are supported: [10]

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. [11] [ improper synthesis? ] [12] [ improper synthesis? ]

See also

Related Research Articles

<span class="mw-page-title-main">Linux distribution</span> Operating system based on the Linux kernel

A Linux distribution is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.

<span class="mw-page-title-main">Sharp Zaurus</span>

The Sharp Zaurus is the name of a series of personal digital assistants (PDAs) made by Sharp Corporation. The Zaurus was the most popular PDA during the 1990s in Japan and was based on a proprietary operating system. The first Sharp PDA to use the Linux operating system was the SL-5000D, running the Qtopia-based Embedix Plus. The Linux Documentation Project considers the Zaurus series to be "true Linux PDAs" because their manufacturers install Linux-based operating systems on them by default. The name derives from the common suffix applied to the names of dinosaurs.

GPE Palmtop Environment Graphical user interface for mobile devices

GPE is a graphical user interface environment for handheld computers, such as palmtops and personal digital assistants (PDAs), running some Linux kernel-based operating system. GPE is a complete environment of software components and applications which makes it possible to use a Linux handheld for tasks such as personal information management (PIM), audio playback, email, and web browsing.

<span class="mw-page-title-main">OpenZaurus</span> Linux distribution

OpenZaurus is a defunct embedded operating system for the Sharp Zaurus personal mobile tool PDA.

<span class="mw-page-title-main">MontaVista</span> Software company

MontaVista Software is a company that develops embedded Linux system software, development tools, and related software. Its products are made for other corporations developing embedded systems such as automotive electronics, communications equipment, mobile phones, and other electronic devices and infrastructure.

Wind River Systems, also known as Wind River, is an Alameda, California–based company, subsidiary of Aptiv PLC. The company develops embedded system and cloud software consisting of real-time operating systems software, industry-specific software, simulation technology, development tools and middleware.

Operating systems based on the Linux kernel are used in embedded systems such as consumer electronics, in-vehicle infotainment (IVI), networking equipment, machine control, industrial automation, navigation equipment, spacecraft flight software, and medical instruments in general.

The MicroBlaze is a soft microprocessor core designed for Xilinx field-programmable gate arrays (FPGA). As a soft-core processor, MicroBlaze is implemented entirely in the general-purpose memory and logic fabric of Xilinx FPGAs.

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 (GUIs) available are OPIE and GPE among other options.

Timesys Corporation is a company selling Linux open source software security, engineering services, and development tools, for the embedded software market. They also help software development teams build and maintain a custom Linux platform for embedded processors from integrated circuit manufacturers such as Atmel, Freescale, Intel, Texas Instruments, and Xilinx.

<span class="mw-page-title-main">Moblin</span>

Moblin, short for 'mobile Linux', is a discontinued open source operating system and application stack for Mobile Internet Devices (MIDs), netbooks, nettops and embedded devices.

BitBake is a make-like build tool with the special focus of distributions and packages for embedded Linux cross compilation, although it is not limited to that. It is inspired by Portage, which is the package management system used by the Gentoo Linux distribution. BitBake existed for some time in the OpenEmbedded project until it was separated out into a standalone, maintained, distribution-independent tool. BitBake is co-maintained by the Yocto Project and the OpenEmbedded project.

RPM Package Manager Package management system

RPM Package Manager (RPM) is a free and open-source package management system. The name RPM refers to the .rpm file format and the package manager program itself. RPM was intended primarily for Linux distributions; the file format is the baseline package format of the Linux Standard Base.

Linux Target Image Builder (LTIB) is an open-source project based on RPM, menuconfig and Perl. LTIB is similar in concept to Buildroot and other Linux file system builders. LTIB can develop and deploy board support packages (BSP) for various target platforms. One can develop a Linux image for his or her specific target. The project was initially sponsored by Freescale Semiconductor and later moved to Savannah.

<span class="mw-page-title-main">SHR (operating system)</span> Linux distribution for smartphones

SHR was a community-driven Linux distribution for smartphones which was based on OpenEmbedded, Xorg, and the freesmartphone.org (FSO) framework. Several different graphical toolkits were made available, such as GTK+ and Qt.

<span class="mw-page-title-main">Yocto Project</span>

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 architecture of the embedded hardware. The project was announced by the Linux Foundation in 2010 and launched in March, 2011, in collaboration with 22 organizations, including OpenEmbedded.

Linux for mobile devices, sometimes referred to as mobile Linux, is the usage of Linux-based operating systems on portable devices, whose primary or only Human interface device (HID) is a touchscreen. It mainly comprises smartphones and tablet computers, but also some mobile phones, personal digital assistants (PDAs) portable media players that come with a touchscreen separately.

<span class="mw-page-title-main">Buildroot</span>

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 a single Linux-based development system. Buildroot can automatically build the required cross-compilation toolchain, create a root file system, compile a Linux kernel image, and generate a boot loader for the targeted embedded system, or it can perform any independent combination of these steps. For example, an already installed cross-compilation toolchain can be used independently, while Buildroot only creates the root file system.

<span class="mw-page-title-main">Snap (software)</span> Software deployment system for Linux by Canonical

Snap is a software packaging and deployment system developed by Canonical for operating systems that use the Linux kernel and the systemd init system. The packages, called snaps, and the tool for using them, snapd, work across a range of Linux distributions and allow upstream software developers to distribute their applications directly to users. Snaps are self-contained applications running in a sandbox with mediated access to the host system. Snap was originally released for cloud applications but was later ported to also work for Internet of Things devices and desktop applications.

postmarketOS Free and open-source operating system for smartphones, based on Alpine Linux

postmarketOS is an operating system primarily for smartphones, based on the Alpine Linux distribution.

References

  1. "OpenEmbedded Developers". Archived from the original on 2012-11-09.
  2. 1 2 Brake, Cliff; et al. (2015), "Welcome to OpenEmbedded", OpenEmbedded Wiki, Blacksburg, VA: openembedded.org.
  3. 1 2 Eggleton, Paul (2015), "OpenEmbedded-Core", OpenEmbedded Wiki, Blacksburg, VA: openembedded.org.
  4. 1 2 "Yocto Project Aligns Technology with OpenEmbedded and Gains Corporate Collaborators". Archived from the original on 2012-01-11.
  5. 1 2 Yocto & OpenEmbedded Core Layers Archived 2011-09-19 at the Wayback Machine
  6. "OpenEmbedded Metadata Index - layers". Archived from the original on 2013-06-22. Retrieved 2013-06-18.
  7. "SHR".
  8. Ben Combee on Palm Developer Forum - Fri Jul 16, 2010. Building static libs Archived 2011-07-26 at the Wayback Machine
  9. "B2C Info Solutions".
  10. "Overview of OE supported machines" . Retrieved 2022-09-08.
  11. Yocto Project Board Support Package guide
  12. "Yocto Project Development Manual".