ArticleslgStudy

computer science

OpenEmbedded

OpenEmbedded is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand OpenEmbedded rather than just read about it. In short: OpenEmbedded (OE) is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices. The framework is developed by the OpenEmbedded community, which was formally established in 2003.

OpenEmbedded — main illustration
OpenEmbedded — illustration

Key takeaways

  • OpenEmbedded belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect OpenEmbedded to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of OpenEmbedded from memory before moving on to harder problems.

Reference excerpt

OpenEmbedded (OE) is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices. The 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. A BitBake configuration file, called a recipe, specifies various information such as dependency and source code locations, how to build a package, and 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 (deb, rpm, ipk), and create bootable images. Historically, OpenEmbedded recipes were stored in a single repository, and the metadata was structured as what is now called "OpenEmbedded-Classic". Starting in 2010, the structure was modified to better support the ever-growing number of recipes. 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 patches to a mailing list. When approved, the patches are merged (pulled) by a maintainer. 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 .wic.

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: 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

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) 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 KaliOS Openmoko SHR 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

Buildroot – Tool for building Linux Emdebian Grip Familiar Linux – Linux distribution for iPAQ machines and other PDAs Openpandora – Handheld gaming computerPages displaying short descriptions of redirect targets OpenZaurus – Linux distribution T2 SDE – Open source Linux distribution kit

References

External links Official website FOSDEM'05 presentation of OpenEmbedded FOSDEM'07 presentation of OpenEmbedded ELC'08 presentation of OpenEmbedded

Illustrations

OpenEmbedded illustration

Worked examples

Example 1 — a first encounter with OpenEmbedded

Start with the simplest possible case. Write down what OpenEmbedded claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to OpenEmbedded before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about OpenEmbedded ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of OpenEmbedded

In research
OpenEmbedded appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses OpenEmbedded in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
OpenEmbedded is common in secondary-school and first-year university syllabi. It links to neighbouring topics Build automation, Embedded Linux, Personal digital assistant software, so understanding it makes those chapters shorter.
In everyday life
Look for OpenEmbedded outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study OpenEmbedded in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what OpenEmbedded means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain OpenEmbedded out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is OpenEmbedded in simple terms?

OpenEmbedded (OE) is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices. The framework is developed by the OpenEmbedded community, which was formally established in 2003.

Why does OpenEmbedded matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study OpenEmbedded?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on OpenEmbedded.

Tags

  • Build automation
  • Embedded Linux
  • Personal digital assistant software
  • Software using the MIT license

Keep exploring