OpenEmbedded-Core

OpenEmbedded-Core is a meta distribution targeting embedded systems. It allows an end developer to create highly customized images. In OpenEmbedded-Core everything is built from scratch. The core distribution is extensible using so called 'layers'. One of these layers is 'meta-linaro' that adds recipes for Linaro toolchain components and therefore allows building an entire embedded Linux distribution using the Linaro GCC.

Where to find it

The sources can be retrieved from the following git repositories:

Status

An end developer can now built images using the Linaro 4.7 or 4.8 Toolchain for all the supported targets by OpenEmbedded. The following was tested:

  • build/host system:
    • x86_64 Ubuntu 12.04 (Precise)
  • toolchain:
    • Linaro GCC 4.7 2013.08
    • Linaro GCC 4.8 2013.08
    • Linaro binary toolchain 2013.07 (only ARMv7, armv7at-neon)
  • images:
    • core-image-minimal (just enough to get a shell)
    • core-image-sato (Xorg, gtk+2)
    • qt4e-demo-image (Qt 4.8 embedded)
  • targets:
    • ARM:
      • qemuarm (vesatilepb, ARMv5, arm926ej-s)
      • qemuarmv7a (vexpress, ARMv7, -march=armv7-a, -mthumb, -mfloat-abi=hard, -mfpu=neon)
    • MIPS:
      • qemumips (malta, -march=mips32)
    • PPC:
      • qemuppc (mac99, -mcpu=603e)
    • X86
      • qemux86
    • X86_64
      • qemux86-64

Details about building images using OE-Core + meta-linaro can be found at:

All images for all the supported targets are booting successfully using QEMU. One goal of this work was to test the Linaro toolchain in a real world environment where one toolchain source gets used for different targets. Building images for all the architectures creates 37876 packages and takes 86G of disk space.

Some effort has been spent on automating the builds. There is a shell script that provides an easy way to generate the images available at:

The Linaro Toolchain working group is using cbuild for automated testing. Initial support for oe-core+meta-linaro has been added to cbuild and is available at: https://code.launchpad.net/~kwerner/cbuild/oecore. The Linaro Toolchain working group is currently working towards a new automated build system, called Cbuildv2, which has been integrated with the Jenkins for automated builds using the LAVA build farm.

Future Work

  • adding recipes for Linaro QEMU and GDB
  • add support for building the Linaro toolchain components from tip/trunk/head
  • when using the binary toolchain: find out how to build the libc instead of using the one from the binary toolchain
  • investigate on running testsuites to improve the verification of the images
  • improve the automation
  • add BSP layers for Linaro supported boards (targeting real HW instead of QEMU)

The blueprints are here:

The work was done by:

WorkingGroups/ToolChain/Outputs/OpenEmbedded-Core (last modified 2013-08-20 21:21:02)