Shared Embedded Linux Distribution

From eLinux.org
Revision as of 07:11, 1 March 2018 by Fschrempf (talk | contribs) (add link to presentation on collaboration status from Dec 2017)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page describes the CELP "Shared Embedded Linux Distribution" project

Rationale

The Deby (meta-debian layer) is a set of recipes (metadata) for the poky build system, which allows cross-building Linux images using Debian source packages. By enabling meta-debian layer, poky fetches required sources from Debian source repository and LTSI/CIP kernel repository. Deby is independent of OpenEmbedded-core recipes, so OE-Core recipes are still available after meta-debian layer is enabled. Deby is mainly intended to be used for embedded products which needs long-term support.

The purpose is to provide the following things

  • Fully customizable embedded Linux based on existed distro
  • Wide embedded CPU support
  • Stability and long-term support

The meta-debian recipes follow Debian build rules by default, but sometimes customize them for embedded systems if necessary (e.g. remove dependencies). Also they re-use essential patches from OE-Core to support cross-building

Quick start

Install essential packages poky requires into your host system according to http://www.yoctoproject.org/docs/2.0/ref-manual/ref-manual.html#intro-requirements

$ sudo apt-get install git tar python
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat

NOTE: The following three packages have version limitation

   git: 1.7.8 or greater
   tar: 1.24 or greater
   python: 2.7.3 or greater not including Python 3.x

Setup repositories.

$ git clone -b morty git://git.yoctoproject.org/poky.git
$ cd poky
$ git clone -b morty https://github.com/meta-debian/meta-debian.git
$ cd ..

Setup build directory.

$ export TEMPLATECONF=meta-debian/conf
$ source ./poky/oe-init-build-env

You can change the target machine by setting MACHINE variable in conf/local.conf to one of the following machines.

   qemux86 (default)
   qemux86-64
   qemuarm
   qemuarm64
   qemuppc
   qemumips

For example, the target machine is set to QEMU ARM by adding the following difinition to conf/local.conf.

MACHINE = "qemuarm"

Now, the build system is ready. Build Linux kernel and the minimal rootfs by the following command. It takes a while to complete (more than 30 minutes).

$ bitbake core-image-minimal

Run the built Linux on QEMU. Please replace ${MACHINE} by the target machine you selected in the above step.

$ runqemu ${MACHINE} nographic

Only if MACHINE is qemuarm, the console should be set to the correct serial device.

$ runqemu qemuarm nographic bootparams="console=ttyAMA0"

After boot, you can login as root without password.

If you'd like to reduce the time of bitbake, please refer to https://github.com/meta-debian/meta-debian-docker.

Resources

Download

Mailing list

Presentations

Similar activities for reference

  • ISAR - Integration System for Automated Root filesystem generation
  • ELBE - embedded linux build environment