Difference between revisions of "Shared Embedded Linux Distribution"
Line 15: | Line 15: | ||
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 | 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. | |
− | |||
− | (qemuppc) | + | $ git clone -b morty git://git.yoctoproject.org/poky.git |
− | $ runqemu | + | $ 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 == | == Resources == | ||
Line 67: | Line 80: | ||
=== Presentations === | === Presentations === | ||
− | |||
* [[Media:Poky_meets_Debian_Understanding_How_to_Make_an_Embedded_Linux_by_Using_an_Existing_Distribution%27s_Source_Code.pdf|"Poky meets Debian: Understanding How to Make an Embedded Linux by Using an Existing Distribution's Source Code"]] talk at ELC 2015 by Yoshitake Kobayashi | * [[Media:Poky_meets_Debian_Understanding_How_to_Make_an_Embedded_Linux_by_Using_an_Existing_Distribution%27s_Source_Code.pdf|"Poky meets Debian: Understanding How to Make an Embedded Linux by Using an Existing Distribution's Source Code"]] talk at ELC 2015 by Yoshitake Kobayashi | ||
* [[Media:LinuxCon2015 meta-debian r7.pdf|"meta-debian: Extending Yocto Project's Poky for building Debian-based embedded system"]] talk at LinuxCon Japan 2015 by Kazuhiro Hayashi | * [[Media:LinuxCon2015 meta-debian r7.pdf|"meta-debian: Extending Yocto Project's Poky for building Debian-based embedded system"]] talk at LinuxCon Japan 2015 by Kazuhiro Hayashi | ||
* [[Media:ELCE2016_Hayashi_Deby.pdf|"Deby - Reproducible and Maintainable Embedded Linux Environment with Poky"]] talk at ELC Europe 2016 by Kazuhiro Hayashi | * [[Media:ELCE2016_Hayashi_Deby.pdf|"Deby - Reproducible and Maintainable Embedded Linux Environment with Poky"]] talk at ELC Europe 2016 by Kazuhiro Hayashi | ||
* [[Media:MiniDebianConfJapan-Yoshi.pdf|"Generating Embedded Linux Images by Using the Debian Source Code"]] talk at Mini Debian Conference Japan 2016 by Yoshitake Kobayashi | * [[Media:MiniDebianConfJapan-Yoshi.pdf|"Generating Embedded Linux Images by Using the Debian Source Code"]] talk at Mini Debian Conference Japan 2016 by Yoshitake Kobayashi | ||
+ | * [http://events.linuxfoundation.jp/sites/events/files/slides/ISAR-DEBY-OSSJ2017_r10.pdf|"Building Debian-Based Products: Experiences in Collaboration"] talk at Open Source Summit Japan 2017 by Baurzhan Ismagulov and Kazuhiro Hayashi (This was a collaborative work with [https://github.com/ilbers/isar ISAR].) | ||
− | === Similar activities for reference == | + | === Similar activities for reference === |
− | * [https://github.com/ilbers/isar | + | * [https://github.com/ilbers/isar ISAR] - Integration System for Automated Root filesystem generation |
− | * [https://elbe-rfs.org/ | + | * [https://elbe-rfs.org/ ELBE] - embedded linux build environment |
Revision as of 00:26, 6 July 2017
This page describes the CELP "Shared Embedded Linux Distribution" project
- This is a project to use Debian packages with the Yocto Project "Poky"
- Goal is to share the work of maintaining long-term support for an embedded distribution, by leveraging the work of the Debian project
- See "Poky meets Debian: Understanding How to Make an Embedded Linux by Using an Existing Distribution's Source Code" talk at ELC 2015 by Yoshitake Kobayashi
- See "Meta-debian handout" which was available at LinuxCon Japan 2015 CE Workgroup booth
Contents
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
- meta-debian@googlegroups.com
- Subscription
- meta-debian+subscribe@googlegroups.com
- https://groups.google.com/forum/#!forum/meta-debian/join
Presentations
- "Poky meets Debian: Understanding How to Make an Embedded Linux by Using an Existing Distribution's Source Code" talk at ELC 2015 by Yoshitake Kobayashi
- "meta-debian: Extending Yocto Project's Poky for building Debian-based embedded system" talk at LinuxCon Japan 2015 by Kazuhiro Hayashi
- "Deby - Reproducible and Maintainable Embedded Linux Environment with Poky" talk at ELC Europe 2016 by Kazuhiro Hayashi
- "Generating Embedded Linux Images by Using the Debian Source Code" talk at Mini Debian Conference Japan 2016 by Yoshitake Kobayashi
- "Building Debian-Based Products: Experiences in Collaboration" talk at Open Source Summit Japan 2017 by Baurzhan Ismagulov and Kazuhiro Hayashi (This was a collaborative work with ISAR.)