SlideShare a Scribd company logo
1 of 51
Download to read offline
Generating a Reproducible and
Maintainable Embedded Linux
Environment with Poky and Deby
Kazuhiro Hayashi
CE Workgroup, The Linux Foundation (TOSHIBA Corporation)
LinuxCon Japan 2016
Jul 14, 2016
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
2
About this project
• Shared Embedded Linux Distribution Project
– One of the activities of CEWG project
– Goals: Create an industry-supported distribution of embedded Linux
and provide support for long term
• For more information about this project
– Shared Embedded Linux Distribution
• http://elinux.org/Shared_Embedded_Linux_Distribution
– CE Workgroup Linux Foundation
• http://www.linuxfoundation.org/collaborate/workgroups/celf
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
3
Motivation
• Linux is running on many kind of embedded systems
– Including the systems in civil infrastructure
• Things to be considered to choose a base distribution
– The number of supported packages
– Package versions
– Supported hardware
– Stability, number of bugs were fixed
– The frequency of security updates and supported timespan
– How to compile and customize packages
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
4
In our case
• What we want to do
– Make custom embedded Linux environments
• What we need
– Wider hardware support
– Stability
• Well tested packages are required
• Many embedded developer are still want to use stable version
– Long-term support
• Over 10 years support required, especially for security fixes
• (This is what we would like to contribute something)
– Fully customizable build system
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
5
Our solution
• One of the most popular
reference distributions for
embedded Linux
• Fully customizable build system
• Supports numerous embedded
boards including modern ones
• Can be extended by meta-layer
Yocto Project "poky"
• Support many kind of CPUs:
x86, ARM, PowerPC, MIPS
(32bit/64bit)
• Release a stable version after
two years of testing
• Long-term support for 5 years
by Debian-LTS project
Debian GNU/Linux
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
6
Our solution
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Deby
• One of the most popular
reference distributions for
embedded Linux
• Fully customizable build system
• Supports numerous embedded
boards including modern ones
• Can be extended by meta-layer
Yocto Project "poky"
• Support many kind of CPUs:
x86, ARM, PowerPC, MIPS
(32bit/64bit)
• Release a stable version after
two years of testing
• Long-term support for 5 years
by Debian-LTS project
Debian GNU/Linux
meta-debian
7
What is meta-debian?
• A meta layer for the Poky build system
• Allows cross-building Linux images using
Debian source packages
• Implemented as an independent "layer"
– Completely separated from OpenEmbedded-Core and other layers
• Source code
– https://github.com/meta-debian/meta-debian.git
• See also
– http://events.linuxfoundation.org/sites/events/files/slides/LinuxCon2
015_meta-debian_r7.pdf
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
8
What is Deby?
• A reference distribution built with Poky+meta-debian
• Support multiple architectures
• Easy to customize by appending metadata
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
9
Build system structure (poky)
poky build system
Board-specific metadata
meta (OpenEmbedded-Core)
Upstream source code
A B C
Fetch
Build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Poky A Poky B Poky C
10
Build system structure (poky + meta-debian)
poky build system
Board-specific metadata
meta (OpenEmbedded-Core)
meta-debian
A B C
Build
Upstream source code
Fetch
Debian source packages
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Deby A Deby B Deby C
11
Target versions of Deby
poky build system
Board-specific metadata
meta (OpenEmbedded-Core)
meta-debian
A B C
Build
Upstream source code
Fetch
Debian source packages
Debian 8 jessie
Yocto Project
The latest stable version: 2.0 jethro
Development version: 2.1 krogoth
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Deby A Deby B Deby C
12
Purpose of Deby
• Create embedded Linux environments with
– Wide embedded CPU support
– Stability
– Long-term support
– Fully customizable build system
• Contribute to upstream (Debian and Yocto Project)
– Especially for the Debian LTS project
With Debian stable release + LTS
With poky build system
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
13
Quick start
1. Download the build tools
2. Setup build directory
3. Build minimal Linux image
4. Run minimal Linux image on QEMU
5. Build & install minimal SDK
6. Build application with SDK
7. Run application on QEMU
• See also meta-debian/README.md
– https://github.com/meta-debian/meta-debian/blob/jethro/README.md
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
14
Download build tools
• Download poky
• Download meta-debian into the poky directory
$ git clone git://git.yoctoproject.org/poky.git
$ cd poky
$ git checkout jethro
$ cd poky
$ git clone https://github.com/meta-debian/meta-debian.git
$ cd meta-debian
$ git checkout jethro
•  meta-debian specific step
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
15
Setup build directory
• Change the default configuration
– Enable meta-debian layer
– Enable "deby" distro (DISTRO = "deby")
– The default target machine is "qemux86" (MACHINE = "qemux86")
– TEMPLATECONF is used by oe-init-build-env script
• Run startup script
– This setup a build directory and environment variables automatically
– (builddir): name of build directory (optional)
$ source /path/to/poky/oe-init-build-env (builddir)
$ export TEMPLATECONF=meta-debian/conf
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
16
Build minimal Linux image
• Run bitbake
• Built images (case of qemux86)
– Output directly
• /path/to/builddir/tmp/deploy/images/qemux86
– Kernel
• bzImage-qemux86.bin
– Root filesystem
• core-image-minimal-qemux86.ext4
• core-image-minimal-qemux86.tar.gz
$ bitbake core-image-minimal
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
17
Run minimal Linux image on QEMU
• Run built images on QEMU environment
– qemux86 / qemux86-64 / qemuppc / qemumips
– qemuarm
$ runqemu qemux86 nographic
$ runqemu qemuarm nographic bootparams="console=ttyAMA0"
$ runqemu qemux86-64 nographic
$ runqemu qemuppc nographic
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
$ runqemu qemumips nographic
18
Build & install minimal SDK
• Run bitbake
• Output (Host: x86_64, Target: qemux86)
– /path/to/builddir/tmp/deploy/sdk/qemux86/deby-glibc-x86_64-
meta-toolchain-i586-toolchain-8.0.sh
• Self-extracting script
• Install SDK to host environment
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
$ bitbake meta-toolchain
$ sh deby-glibc-x86_64-meta-toolchain-i586-toolchain-8.0.sh
19
Build application with SDK
• Create hello.c and Makefile
• Export SDK environment variables and make
• See also Yocto Project Application Developer’s Guide
– http://www.yoctoproject.org/docs/2.0/adt-manual/adt-
manual.html#using-the-command-line
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
/* hello.c */
#include <stdio.h>
int main(int argc, char **argv)
{
printf("hello worldn");
return 0;
}
# Makefile
hello: hello.o
$ source /opt/deby/8.0/environment-setup-i586-deby-linux
$ make
20
Run application on QEMU
• Copy hello to the filesystem image
• Run application on QEMU
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
$ cd /path/to/builddir/tmp/deploy/images/qemux86
$ sudo mount –o loop 
core-image-minimal-qemux86.ext4 /mnt
$ sudo cp /path/to/hello /mnt
$ sudo umount /mnt
$ runqemu qemux86 nographic
...
192.168.7.2 login: root
# /hello
hello world
21
New features
• Supported Yocto Project version
– 2.0 jethro (The latest stable)
– 2.1 krogoth (Development)
• Kernel
– Upgraded to 4.1-ltsi
• Supported init systems
– Default init system is still busybox init
– Added systemd support (Experimental)
• The number of available recipes
– Approx. 500
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
22
New features
• Newly supported target machine
– MIPS (QEMU), VMware Player
– RaspberryPi 2, Intel Edison Board
• Useful features for efficient source code management
– Tag based source code fetch and build
– Generation of summary information for Linux image
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
23
Features for efficient source code management
• Reproducible build
– Useful for finding the source of issue in the old released image
• Build with specifying the fixed source code versions
– Don’t want to update software versions to fix bugs in the old release
• Generation of summary information for Linux image
– Make it easy to manage included OSS name, version, and license
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Tag based source code fetch and build
Add packaging hooks to generate
summary information
24
Tag based source code fetch and build
• Issues
– How to manage released source code versions
=> Register a common release tag in git repositories
– How to reproduce an old release image
=> Use GIT_REBUILD_TAG
– How to build an image with fixed source code versions
=> Use GIT_PREFERRED_TAG
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
25
• How to manage released source code versions
Tag based source code fetch and build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Source code A 1 2 3
Source code B 1 2 3
Source code C 1 2
Source code D 1 2 3
4 5 6 7
Time
Metadata 1 2 3
4
4
Version number
git repositories
26
• How to manage released source code versions
Tag based source code fetch and build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Source code A 1 2 3
Source code B 1 2 3
Source code C 1 2
Source code D 1 2 3
4 5 6 7
4
Time
Metadata 1 2 3 4
Release1
r1
r1
r1
r1
r1
Metadata fetches the latest
source code by default
Register a common
release tag
27
• How to manage released source code versions
Tag based source code fetch and build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Source code A 1 2 3
Source code B 1 2 3
Source code C 1 2
Source code D 1 2 3
4 5 6 7
4
Time
Metadata 1 2 3 4
Release2
r1
r1
r1
r1
r1
r2
r2
r2
r2
r2
28
• How to manage released source code versions
Release3
Tag based source code fetch and build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Source code A 1 2 3
Source code B 1 2 3
Source code C 2
Source code D 1 2 3
4 5 6 7
4
Time
Metadata 1 2 3 4
1
r1
r1
r1
r1
r1
r2
r2
r2
r2
r2
r3
r3
r3
r3
r3
29
• How to reproduce “Release1”
Tag based source code fetch and build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Source code A 1 2 3
Source code B 1 2 3
Source code C 2
Source code D 1 2 3
4 5 6 7
4
Time
Metadata 1 2 3 4
1
r1
r1
r1
r1
r1
r2
r2
r2
r2
r2
r3
r3
r3
r3
r3
STEP1:
Checkout metadata revision "r1"
GIT_REBUILD_TAG
30
• How to reproduce “Release1”
Tag based source code fetch and build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Source code A 1 2 3
Source code B 1 2 3
Source code C 2
Source code D 1 2 3
4 5 6 7
4
Time
Metadata 1 2 3 4
1
r1
r1
r1
r1
r1
r2
r2
r2
r2
r2
r3
r3
r3
r3
r3
STEP2:
Set GIT_RELEASE_TAG = "r1"
to specify target source code versions
GIT_REBUILD_TAG
Don’t fetch
the latest version
31
• How to add “E” to “Release3”
Tag based source code fetch and build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Source code A 1 2 3
Source code B 1 2 3
Source code C 2
Source code D 1 2 3
4 5 6 7
4
Time
1
r1
r1
r1
r1
r2
r2
r2
r2
r3
r3
r3
r3
New release
Source code E 1 2 3
Metadata 1 2 3 4
r1 r2 r3
Unused in old releases
5
STEP1:
Add "E" to the target image
GIT_PREFERRED_TAG
32
• How to add “E” to “Release3”
Tag based source code fetch and build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Source code A 1 2 3
Source code B 1 2 3
Source code C 2
Source code D 1 2 3
4 5 6 7
4
Time
1
r1
r1
r1
r1
r2
r2
r2
r2
r3
r3
r3
r3
New release
Source code E 1 2 3
Metadata 1 2 3 4
r1 r2 r3
5
Fetches the latest
source code by default
GIT_PREFERRED_TAG
33
• How to add “E” to “Release3”
Tag based source code fetch and build
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Source code A 1 2 3
Source code B 1 2 3
Source code C 2
Source code D 1 2 3
4 5 6 7
4
Time
1
r1
r1
r1
r1
r2
r2
r2
r2
r3
r3
r3
r3
New release
Source code E 1 2 3
Metadata 1 2 3 4
r1 r2 r3
5
STEP2:
Set GIT_PREFERRED_TAG = "r3"
to specify target source code versions
Fetches the latest source code
if the specified tag doesn’t exist
GIT_PREFERRED_TAG
34
Tag based source code fetch and build
• GIT_REBUILD_TAG:
– Assumption
• Specified tag has been specified on all related repositories
– Behavior
• Rebuild with specified tag for each package
• If the tag does not available on any repository, the build will fail
• GIT_PREFERRED_TAG:
– Assumption
• Specified tag has been specified on all or a part of related
package
– Behavior
• Rebuild with specified tag, if it exist
• If some repository does not have the specified tag, poky use the
latest commit for the repository
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
35
• Create git repository mirrors with docker
– Follow the instructions in meta-debian-docker/README.md
How to register tag and rebuild
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
$ git clone https://github.com/meta-debian/meta-debian-docker.git
$ cd meta-debian-docker
$ ./make-docker-image.sh
$ sudo docker run -d -p 10022:22 meta-debian:1 /etc/sv/git-daemon/run -D
github.com docker (172.17.0.2)
mirror
36
How to register tag and rebuild
• Setup poky + meta-debian
• Override the git server related variables in local.conf
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
$ export TEMPLATECONF=meta-debian/conf
$ source ./poky/oe-init-build-env
github.com docker (172.17.0.2)
mirror
poky
meta-debian
Fetches source code
from github by default
fetch
37
How to register tag and rebuild
• Setup poky + meta-debian
• Override the git server related variables in local.conf
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
$ export TEMPLATECONF=meta-debian/conf
$ source ./poky/oe-init-build-env
github.com docker (172.17.0.2)
mirror
poky
meta-debian
fetch
local.conf
DEBIAN_GIT_URI = "git://172.17.0.2"
DEBIAN_GIT_PROTOCOL = "git"
MISC_GIT_URI = "git://172.17.0.2"
MISC_GIT_PROTOCOL = "git"
LINUX_GIT_URI = "git://172.17.0.2"
LINUX_GIT_PROTOCOL = "git"
SRC_URI_ALLOWED = "git://172.17.0.2"
38
How to register tag and rebuild
• bitbake something
• Get list files that have git repositories used in the build
– Example: /path/to/builddir/tmp/git.list.172.17.0.2
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
$ bitbake core-image-minimal
github.com docker (172.17.0.2)
mirror
poky
meta-debian
fetch
local.conf
git.list.172.17.0.2
build
39
How to register tag and rebuild
• Register a tag "testtag" to the repositories
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
$ git clone https://github.com/meta-debian/meta-debian-scripts.git
$ cd meta-debian-scripts
$ ./git-tagger.sh git.list.172.17.0.2 172.17.0.2 testtag
github.com docker (172.17.0.2)
mirror
poky
meta-debian
local.conf
register tag
git-tagger.sh
git.list.172.17.0.2
testtagtesttagtesttag
40
How to register tag and rebuild
• Rebuild the old image
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
$ export TEMPLATECONF=meta-debian/conf
$ source ./poky/oe-init-build-env
$ echo 'GIT_REBUILD_TAG = "testtag"' >> conf/local.conf
$ bitbake core-image-minimal
github.com docker (172.17.0.2)
mirror
poky
meta-debian
fetch
local.conf
rebuild
testtagtesttagtesttag
GIT_REBUILD_TAG = "testtag"
41
Generation of summary information
• Minimum information required for products
– List of installed software
– Version of each software
– Source URI where the source code fetched
– License of each software
• Issues
– How to collect the above information for each package
– How to generate summary of each deployment (rootfs, SDK)
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
42
• Poky’s build flow
Package pool
Generation of summary information
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
A.git
.deb.deb.deb
rootfs
A.bb
Build
B.git
.deb.deb.deb
B.bb
C.git
.deb.deb.deb
C.bb
X.git
.deb.deb.deb
X.bb
Source
code
Recipe
SDK
Install
rootfs SDK
Package: X
Version: git0+dae8d9bd7f-r0
PackageArch: i586
Depends: B, C, ...
...
metadata
43
• How to collect information for each package
Package pool
Generation of summary information
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
A.git
.deb.deb.deb
rootfs
A.bb
Build
B.git
.deb.deb.deb
B.bb
C.git
.deb.deb.deb
C.bb
X.git
.deb.deb.deb
X.bb
Source
code
Recipe
SDK
Install
rootfs SDK
Package: X
Version: git0+dae8d9bd7f-r0
PackageArch: i586
Depends: B, C, ...
DebianSourceName: X
DebianSourceVersion: 1.2-3
RemoteSourceURI: git://...
License: GPLv2+
metadata
Hook
STEP1:
Embed additional metadata
44
• How to generate summary of each deployment
Package pool
Generation of summary information
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
A.git
.deb.deb
rootfs
A.bb
Build
B.git
.deb.deb.deb
B.bb
C.git
.deb.deb
C.bb
X.git
.deb.deb
X.bb
Source
code
Recipe
SDK
Install
rootfs SDK
Hook
.deb .deb
rootfs summary SDK summary
Hook
.deb
STEP2:
Generate summary from
metadata of installed package
45
Generation of summary information
• Format of summary information (CSV)
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Version with commit ID
Recipe name in meta-debian layer
Debian’s source package name
Source URI represents where the source code fetched
License information
Debian package version number
46
Conclusions
• What is Shared Embedded Linux distribution
– Share the work of maintaining long-term support for an embedded
distribution, by leveraging the work of the Debian project
• Metadata for building embedded Linux systems using
Debian source packages
• Implemented as an independent layer of OpenEmbedded-Core
• Deby is intended to provide
– Wide embedded CPU support
– Stability
– Long-term support
– Fully customizable Linux
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
47
Conclusions
• Useful features for efficient source code management
– Tag based source code fetch and build
• GIT_REBUILD_TAG
– Easy to reproduce the old images
• GIT_PREFERRED_TAG
– Helpful to build a new images based on the old one without
unneeded changes
– Generation of summary information for Linux image
• Generate summary for each deployment by adding hooks into
poky’s packaging functions
• Easy to manage version, source URI and license of software
included in Linux image
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
48
Current development status
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
Debian version 8 jessie (the latest stable)
Yocto Project version 2.0 jethro (stable)
2.1 krogoth (development)
Kernel 4.1 LTSI
BSP QEMU: x86 (32bit, 64bit), ARM, PowerPC, MIPS
VMware Player
MinnowBoard
Raspberry Pi 1/2
Intel Edison board
init manager busybox, systemd
Packages Approx. 500
49
Future works
• Keep following updates of poky and Debian
• Support more embedded boards
• Package management
– Run-time dpkg & apt
– Install pre-built packages
– Related work
• Isar ( https://github.com/ilbers/isar )
• Smart Package Manager ( https://github.com/ubinux/smart2 )
• Efficient recipe creation
– Add a (semi-)automated recipe generator from debian/rules
• Integrate with LTSI test environment (Fuego)
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
50
Please give us feedback
• E-mail
– yoshitake.kobayashi@toshiba.co.jp
– kazuhiro3.hayashi@toshiba.co.jp
• Repository
– https://github.com/meta-debian/meta-debian.git
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
51
Questions?
Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby

More Related Content

What's hot

yocto_scale_handout-with-notes
yocto_scale_handout-with-notesyocto_scale_handout-with-notes
yocto_scale_handout-with-notesSteve Arnold
 
Yocto Project Kernel Lab hands-on
Yocto Project Kernel Lab hands-onYocto Project Kernel Lab hands-on
Yocto Project Kernel Lab hands-onTrevor Woerner
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded trainingH Ming
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Anne Nicolas
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primerDrew Fustini
 
Eclipse IDE Yocto Plugin
Eclipse IDE Yocto PluginEclipse IDE Yocto Plugin
Eclipse IDE Yocto Plugincudma
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerSherif Mousa
 
Debian or Yocto Project? Which is the best for your Embedded Linux project?
Debian or Yocto Project? Which is the best for your Embedded Linux project?Debian or Yocto Project? Which is the best for your Embedded Linux project?
Debian or Yocto Project? Which is the best for your Embedded Linux project?Chris Simmonds
 
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Projectrossburton
 
Yocto Project Kernel Lab, Hands-On
Yocto Project Kernel Lab, Hands-OnYocto Project Kernel Lab, Hands-On
Yocto Project Kernel Lab, Hands-OnTrevor Woerner
 
Building Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto projectBuilding Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto projecttwcoimbatore
 
Yocto and IoT - a retrospective
Yocto and IoT - a retrospectiveYocto and IoT - a retrospective
Yocto and IoT - a retrospectiveOpen-RnD
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectYen-Chin Lee
 
Debugging embedded devices using GDB
Debugging embedded devices using GDBDebugging embedded devices using GDB
Debugging embedded devices using GDBChris Simmonds
 
OpenEmbedded & BitBake - Denx
OpenEmbedded & BitBake - DenxOpenEmbedded & BitBake - Denx
OpenEmbedded & BitBake - Denxyang firo
 
The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)Chris Simmonds
 
Why you should use the Yocto Project
Why you should use the Yocto ProjectWhy you should use the Yocto Project
Why you should use the Yocto Projectrossburton
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Mender.io
 
Reducing the boot time of Linux devices
Reducing the boot time of Linux devicesReducing the boot time of Linux devices
Reducing the boot time of Linux devicesChris Simmonds
 

What's hot (20)

yocto_scale_handout-with-notes
yocto_scale_handout-with-notesyocto_scale_handout-with-notes
yocto_scale_handout-with-notes
 
Yocto Project Kernel Lab hands-on
Yocto Project Kernel Lab hands-onYocto Project Kernel Lab hands-on
Yocto Project Kernel Lab hands-on
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded training
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primer
 
Eclipse IDE Yocto Plugin
Eclipse IDE Yocto PluginEclipse IDE Yocto Plugin
Eclipse IDE Yocto Plugin
 
Yocto Project - OSCON 7-17-2012
Yocto Project - OSCON 7-17-2012Yocto Project - OSCON 7-17-2012
Yocto Project - OSCON 7-17-2012
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
 
Debian or Yocto Project? Which is the best for your Embedded Linux project?
Debian or Yocto Project? Which is the best for your Embedded Linux project?Debian or Yocto Project? Which is the best for your Embedded Linux project?
Debian or Yocto Project? Which is the best for your Embedded Linux project?
 
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Project
 
Yocto Project Kernel Lab, Hands-On
Yocto Project Kernel Lab, Hands-OnYocto Project Kernel Lab, Hands-On
Yocto Project Kernel Lab, Hands-On
 
Building Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto projectBuilding Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto project
 
Yocto and IoT - a retrospective
Yocto and IoT - a retrospectiveYocto and IoT - a retrospective
Yocto and IoT - a retrospective
 
Build your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto projectBuild your own embedded linux distributions by yocto project
Build your own embedded linux distributions by yocto project
 
Debugging embedded devices using GDB
Debugging embedded devices using GDBDebugging embedded devices using GDB
Debugging embedded devices using GDB
 
OpenEmbedded & BitBake - Denx
OpenEmbedded & BitBake - DenxOpenEmbedded & BitBake - Denx
OpenEmbedded & BitBake - Denx
 
The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)
 
Why you should use the Yocto Project
Why you should use the Yocto ProjectWhy you should use the Yocto Project
Why you should use the Yocto Project
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
 
Reducing the boot time of Linux devices
Reducing the boot time of Linux devicesReducing the boot time of Linux devices
Reducing the boot time of Linux devices
 

Similar to Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby

The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution ProjectYoshitake Kobayashi
 
Introduction to LinuxKit - Docker Bangalore Meetup
Introduction to LinuxKit - Docker Bangalore MeetupIntroduction to LinuxKit - Docker Bangalore Meetup
Introduction to LinuxKit - Docker Bangalore MeetupAjeet Singh Raina
 
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...Yoshitake Kobayashi
 
FOSDEM_2019_Buildroot_RISCV.pdf
FOSDEM_2019_Buildroot_RISCV.pdfFOSDEM_2019_Buildroot_RISCV.pdf
FOSDEM_2019_Buildroot_RISCV.pdfssuser30e7d2
 
DevOps: Arquitectura, Estrategia y Modelo
DevOps: Arquitectura, Estrategia y ModeloDevOps: Arquitectura, Estrategia y Modelo
DevOps: Arquitectura, Estrategia y ModeloSUSE España
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
 
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
 
Building community with CentOS Stream
Building community with CentOS StreamBuilding community with CentOS Stream
Building community with CentOS StreamDavide Cavalca
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
Runc: The Little Engine That Could (Run Docker Containers)
Runc: The Little Engine That Could (Run Docker Containers)Runc: The Little Engine That Could (Run Docker Containers)
Runc: The Little Engine That Could (Run Docker Containers)Phil Estes
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...Docker, Inc.
 
Upgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleetUpgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleetDavide Cavalca
 
Design, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformDesign, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformSZ Lin
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERIndrajit Poddar
 
Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distributionemertxemarketing
 
Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?GlobalLogic Ukraine
 

Similar to Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby (20)

The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 
Introduction to LinuxKit - Docker Bangalore Meetup
Introduction to LinuxKit - Docker Bangalore MeetupIntroduction to LinuxKit - Docker Bangalore Meetup
Introduction to LinuxKit - Docker Bangalore Meetup
 
OpenEmbedded
OpenEmbeddedOpenEmbedded
OpenEmbedded
 
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
 
FOSDEM_2019_Buildroot_RISCV.pdf
FOSDEM_2019_Buildroot_RISCV.pdfFOSDEM_2019_Buildroot_RISCV.pdf
FOSDEM_2019_Buildroot_RISCV.pdf
 
DevOps: Arquitectura, Estrategia y Modelo
DevOps: Arquitectura, Estrategia y ModeloDevOps: Arquitectura, Estrategia y Modelo
DevOps: Arquitectura, Estrategia y Modelo
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
 
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
 
Java developer intro to environment management with vagrant puppet and docker
Java developer intro to environment management with vagrant puppet and dockerJava developer intro to environment management with vagrant puppet and docker
Java developer intro to environment management with vagrant puppet and docker
 
Building community with CentOS Stream
Building community with CentOS StreamBuilding community with CentOS Stream
Building community with CentOS Stream
 
Dedicated embedded linux af Esben Haabendal, Prevas A/S
Dedicated embedded linux af Esben Haabendal, Prevas A/SDedicated embedded linux af Esben Haabendal, Prevas A/S
Dedicated embedded linux af Esben Haabendal, Prevas A/S
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Runc: The Little Engine That Could (Run Docker Containers)
Runc: The Little Engine That Could (Run Docker Containers)Runc: The Little Engine That Could (Run Docker Containers)
Runc: The Little Engine That Could (Run Docker Containers)
 
runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...runC: The little engine that could (run Docker containers) by Docker Captain ...
runC: The little engine that could (run Docker containers) by Docker Captain ...
 
Upgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleetUpgrading CentOS on the Facebook fleet
Upgrading CentOS on the Facebook fleet
 
Design, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformDesign, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux Platform
 
Docker on a Diet
Docker on a DietDocker on a Diet
Docker on a Diet
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distribution
 
Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?
 

More from LF Events

Feature rich BTRFS is Getting Richer with Encryption
Feature rich BTRFS is Getting Richer with EncryptionFeature rich BTRFS is Getting Richer with Encryption
Feature rich BTRFS is Getting Richer with EncryptionLF Events
 
KASan in a Bare-Metal Hypervisor
 KASan in a Bare-Metal Hypervisor  KASan in a Bare-Metal Hypervisor
KASan in a Bare-Metal Hypervisor LF Events
 
Efficient kernel backporting
Efficient kernel backportingEfficient kernel backporting
Efficient kernel backportingLF Events
 
Raspberry pi Update - Encourage your IOT
Raspberry pi Update - Encourage your IOTRaspberry pi Update - Encourage your IOT
Raspberry pi Update - Encourage your IOTLF Events
 
Introduction to Open-O
Introduction to Open-OIntroduction to Open-O
Introduction to Open-OLF Events
 
CNCF and Fujitsu
CNCF and FujitsuCNCF and Fujitsu
CNCF and FujitsuLF Events
 
SR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and ImprovementSR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and ImprovementLF Events
 
NVMe Over Fabrics Support in Linux
NVMe Over Fabrics Support in LinuxNVMe Over Fabrics Support in Linux
NVMe Over Fabrics Support in LinuxLF Events
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boardsLF Events
 
Taking over to the Next Generation
Taking over to the Next GenerationTaking over to the Next Generation
Taking over to the Next GenerationLF Events
 
Learning From Real Practice of Providing Highly Available Hybrid Cloud Servic...
Learning From Real Practice of Providing Highly Available Hybrid Cloud Servic...Learning From Real Practice of Providing Highly Available Hybrid Cloud Servic...
Learning From Real Practice of Providing Highly Available Hybrid Cloud Servic...LF Events
 
Secure IOT Gateway
Secure IOT GatewaySecure IOT Gateway
Secure IOT GatewayLF Events
 
Trading Derivatives on Hyperledger
Trading Derivatives on HyperledgerTrading Derivatives on Hyperledger
Trading Derivatives on HyperledgerLF Events
 
Introducing Oracle Linux and Securing It With ksplice
Introducing Oracle Linux and Securing It With kspliceIntroducing Oracle Linux and Securing It With ksplice
Introducing Oracle Linux and Securing It With kspliceLF Events
 
Boost UDP Transaction Performance
Boost UDP Transaction PerformanceBoost UDP Transaction Performance
Boost UDP Transaction PerformanceLF Events
 
Containers: Don't Skeu Them Up, Use Microservices Instead
Containers: Don't Skeu Them Up, Use Microservices InsteadContainers: Don't Skeu Them Up, Use Microservices Instead
Containers: Don't Skeu Them Up, Use Microservices InsteadLF Events
 

More from LF Events (16)

Feature rich BTRFS is Getting Richer with Encryption
Feature rich BTRFS is Getting Richer with EncryptionFeature rich BTRFS is Getting Richer with Encryption
Feature rich BTRFS is Getting Richer with Encryption
 
KASan in a Bare-Metal Hypervisor
 KASan in a Bare-Metal Hypervisor  KASan in a Bare-Metal Hypervisor
KASan in a Bare-Metal Hypervisor
 
Efficient kernel backporting
Efficient kernel backportingEfficient kernel backporting
Efficient kernel backporting
 
Raspberry pi Update - Encourage your IOT
Raspberry pi Update - Encourage your IOTRaspberry pi Update - Encourage your IOT
Raspberry pi Update - Encourage your IOT
 
Introduction to Open-O
Introduction to Open-OIntroduction to Open-O
Introduction to Open-O
 
CNCF and Fujitsu
CNCF and FujitsuCNCF and Fujitsu
CNCF and Fujitsu
 
SR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and ImprovementSR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and Improvement
 
NVMe Over Fabrics Support in Linux
NVMe Over Fabrics Support in LinuxNVMe Over Fabrics Support in Linux
NVMe Over Fabrics Support in Linux
 
Linxu conj2016 96boards
Linxu conj2016 96boardsLinxu conj2016 96boards
Linxu conj2016 96boards
 
Taking over to the Next Generation
Taking over to the Next GenerationTaking over to the Next Generation
Taking over to the Next Generation
 
Learning From Real Practice of Providing Highly Available Hybrid Cloud Servic...
Learning From Real Practice of Providing Highly Available Hybrid Cloud Servic...Learning From Real Practice of Providing Highly Available Hybrid Cloud Servic...
Learning From Real Practice of Providing Highly Available Hybrid Cloud Servic...
 
Secure IOT Gateway
Secure IOT GatewaySecure IOT Gateway
Secure IOT Gateway
 
Trading Derivatives on Hyperledger
Trading Derivatives on HyperledgerTrading Derivatives on Hyperledger
Trading Derivatives on Hyperledger
 
Introducing Oracle Linux and Securing It With ksplice
Introducing Oracle Linux and Securing It With kspliceIntroducing Oracle Linux and Securing It With ksplice
Introducing Oracle Linux and Securing It With ksplice
 
Boost UDP Transaction Performance
Boost UDP Transaction PerformanceBoost UDP Transaction Performance
Boost UDP Transaction Performance
 
Containers: Don't Skeu Them Up, Use Microservices Instead
Containers: Don't Skeu Them Up, Use Microservices InsteadContainers: Don't Skeu Them Up, Use Microservices Instead
Containers: Don't Skeu Them Up, Use Microservices Instead
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby

  • 1. Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Kazuhiro Hayashi CE Workgroup, The Linux Foundation (TOSHIBA Corporation) LinuxCon Japan 2016 Jul 14, 2016 Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 2. 2 About this project • Shared Embedded Linux Distribution Project – One of the activities of CEWG project – Goals: Create an industry-supported distribution of embedded Linux and provide support for long term • For more information about this project – Shared Embedded Linux Distribution • http://elinux.org/Shared_Embedded_Linux_Distribution – CE Workgroup Linux Foundation • http://www.linuxfoundation.org/collaborate/workgroups/celf Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 3. 3 Motivation • Linux is running on many kind of embedded systems – Including the systems in civil infrastructure • Things to be considered to choose a base distribution – The number of supported packages – Package versions – Supported hardware – Stability, number of bugs were fixed – The frequency of security updates and supported timespan – How to compile and customize packages Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 4. 4 In our case • What we want to do – Make custom embedded Linux environments • What we need – Wider hardware support – Stability • Well tested packages are required • Many embedded developer are still want to use stable version – Long-term support • Over 10 years support required, especially for security fixes • (This is what we would like to contribute something) – Fully customizable build system Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 5. 5 Our solution • One of the most popular reference distributions for embedded Linux • Fully customizable build system • Supports numerous embedded boards including modern ones • Can be extended by meta-layer Yocto Project "poky" • Support many kind of CPUs: x86, ARM, PowerPC, MIPS (32bit/64bit) • Release a stable version after two years of testing • Long-term support for 5 years by Debian-LTS project Debian GNU/Linux Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 6. 6 Our solution Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Deby • One of the most popular reference distributions for embedded Linux • Fully customizable build system • Supports numerous embedded boards including modern ones • Can be extended by meta-layer Yocto Project "poky" • Support many kind of CPUs: x86, ARM, PowerPC, MIPS (32bit/64bit) • Release a stable version after two years of testing • Long-term support for 5 years by Debian-LTS project Debian GNU/Linux meta-debian
  • 7. 7 What is meta-debian? • A meta layer for the Poky build system • Allows cross-building Linux images using Debian source packages • Implemented as an independent "layer" – Completely separated from OpenEmbedded-Core and other layers • Source code – https://github.com/meta-debian/meta-debian.git • See also – http://events.linuxfoundation.org/sites/events/files/slides/LinuxCon2 015_meta-debian_r7.pdf Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 8. 8 What is Deby? • A reference distribution built with Poky+meta-debian • Support multiple architectures • Easy to customize by appending metadata Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 9. 9 Build system structure (poky) poky build system Board-specific metadata meta (OpenEmbedded-Core) Upstream source code A B C Fetch Build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Poky A Poky B Poky C
  • 10. 10 Build system structure (poky + meta-debian) poky build system Board-specific metadata meta (OpenEmbedded-Core) meta-debian A B C Build Upstream source code Fetch Debian source packages Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Deby A Deby B Deby C
  • 11. 11 Target versions of Deby poky build system Board-specific metadata meta (OpenEmbedded-Core) meta-debian A B C Build Upstream source code Fetch Debian source packages Debian 8 jessie Yocto Project The latest stable version: 2.0 jethro Development version: 2.1 krogoth Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Deby A Deby B Deby C
  • 12. 12 Purpose of Deby • Create embedded Linux environments with – Wide embedded CPU support – Stability – Long-term support – Fully customizable build system • Contribute to upstream (Debian and Yocto Project) – Especially for the Debian LTS project With Debian stable release + LTS With poky build system Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 13. 13 Quick start 1. Download the build tools 2. Setup build directory 3. Build minimal Linux image 4. Run minimal Linux image on QEMU 5. Build & install minimal SDK 6. Build application with SDK 7. Run application on QEMU • See also meta-debian/README.md – https://github.com/meta-debian/meta-debian/blob/jethro/README.md Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 14. 14 Download build tools • Download poky • Download meta-debian into the poky directory $ git clone git://git.yoctoproject.org/poky.git $ cd poky $ git checkout jethro $ cd poky $ git clone https://github.com/meta-debian/meta-debian.git $ cd meta-debian $ git checkout jethro •  meta-debian specific step Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 15. 15 Setup build directory • Change the default configuration – Enable meta-debian layer – Enable "deby" distro (DISTRO = "deby") – The default target machine is "qemux86" (MACHINE = "qemux86") – TEMPLATECONF is used by oe-init-build-env script • Run startup script – This setup a build directory and environment variables automatically – (builddir): name of build directory (optional) $ source /path/to/poky/oe-init-build-env (builddir) $ export TEMPLATECONF=meta-debian/conf Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 16. 16 Build minimal Linux image • Run bitbake • Built images (case of qemux86) – Output directly • /path/to/builddir/tmp/deploy/images/qemux86 – Kernel • bzImage-qemux86.bin – Root filesystem • core-image-minimal-qemux86.ext4 • core-image-minimal-qemux86.tar.gz $ bitbake core-image-minimal Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 17. 17 Run minimal Linux image on QEMU • Run built images on QEMU environment – qemux86 / qemux86-64 / qemuppc / qemumips – qemuarm $ runqemu qemux86 nographic $ runqemu qemuarm nographic bootparams="console=ttyAMA0" $ runqemu qemux86-64 nographic $ runqemu qemuppc nographic Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby $ runqemu qemumips nographic
  • 18. 18 Build & install minimal SDK • Run bitbake • Output (Host: x86_64, Target: qemux86) – /path/to/builddir/tmp/deploy/sdk/qemux86/deby-glibc-x86_64- meta-toolchain-i586-toolchain-8.0.sh • Self-extracting script • Install SDK to host environment Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby $ bitbake meta-toolchain $ sh deby-glibc-x86_64-meta-toolchain-i586-toolchain-8.0.sh
  • 19. 19 Build application with SDK • Create hello.c and Makefile • Export SDK environment variables and make • See also Yocto Project Application Developer’s Guide – http://www.yoctoproject.org/docs/2.0/adt-manual/adt- manual.html#using-the-command-line Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby /* hello.c */ #include <stdio.h> int main(int argc, char **argv) { printf("hello worldn"); return 0; } # Makefile hello: hello.o $ source /opt/deby/8.0/environment-setup-i586-deby-linux $ make
  • 20. 20 Run application on QEMU • Copy hello to the filesystem image • Run application on QEMU Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby $ cd /path/to/builddir/tmp/deploy/images/qemux86 $ sudo mount –o loop core-image-minimal-qemux86.ext4 /mnt $ sudo cp /path/to/hello /mnt $ sudo umount /mnt $ runqemu qemux86 nographic ... 192.168.7.2 login: root # /hello hello world
  • 21. 21 New features • Supported Yocto Project version – 2.0 jethro (The latest stable) – 2.1 krogoth (Development) • Kernel – Upgraded to 4.1-ltsi • Supported init systems – Default init system is still busybox init – Added systemd support (Experimental) • The number of available recipes – Approx. 500 Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 22. 22 New features • Newly supported target machine – MIPS (QEMU), VMware Player – RaspberryPi 2, Intel Edison Board • Useful features for efficient source code management – Tag based source code fetch and build – Generation of summary information for Linux image Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 23. 23 Features for efficient source code management • Reproducible build – Useful for finding the source of issue in the old released image • Build with specifying the fixed source code versions – Don’t want to update software versions to fix bugs in the old release • Generation of summary information for Linux image – Make it easy to manage included OSS name, version, and license Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Tag based source code fetch and build Add packaging hooks to generate summary information
  • 24. 24 Tag based source code fetch and build • Issues – How to manage released source code versions => Register a common release tag in git repositories – How to reproduce an old release image => Use GIT_REBUILD_TAG – How to build an image with fixed source code versions => Use GIT_PREFERRED_TAG Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 25. 25 • How to manage released source code versions Tag based source code fetch and build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Source code A 1 2 3 Source code B 1 2 3 Source code C 1 2 Source code D 1 2 3 4 5 6 7 Time Metadata 1 2 3 4 4 Version number git repositories
  • 26. 26 • How to manage released source code versions Tag based source code fetch and build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Source code A 1 2 3 Source code B 1 2 3 Source code C 1 2 Source code D 1 2 3 4 5 6 7 4 Time Metadata 1 2 3 4 Release1 r1 r1 r1 r1 r1 Metadata fetches the latest source code by default Register a common release tag
  • 27. 27 • How to manage released source code versions Tag based source code fetch and build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Source code A 1 2 3 Source code B 1 2 3 Source code C 1 2 Source code D 1 2 3 4 5 6 7 4 Time Metadata 1 2 3 4 Release2 r1 r1 r1 r1 r1 r2 r2 r2 r2 r2
  • 28. 28 • How to manage released source code versions Release3 Tag based source code fetch and build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Source code A 1 2 3 Source code B 1 2 3 Source code C 2 Source code D 1 2 3 4 5 6 7 4 Time Metadata 1 2 3 4 1 r1 r1 r1 r1 r1 r2 r2 r2 r2 r2 r3 r3 r3 r3 r3
  • 29. 29 • How to reproduce “Release1” Tag based source code fetch and build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Source code A 1 2 3 Source code B 1 2 3 Source code C 2 Source code D 1 2 3 4 5 6 7 4 Time Metadata 1 2 3 4 1 r1 r1 r1 r1 r1 r2 r2 r2 r2 r2 r3 r3 r3 r3 r3 STEP1: Checkout metadata revision "r1" GIT_REBUILD_TAG
  • 30. 30 • How to reproduce “Release1” Tag based source code fetch and build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Source code A 1 2 3 Source code B 1 2 3 Source code C 2 Source code D 1 2 3 4 5 6 7 4 Time Metadata 1 2 3 4 1 r1 r1 r1 r1 r1 r2 r2 r2 r2 r2 r3 r3 r3 r3 r3 STEP2: Set GIT_RELEASE_TAG = "r1" to specify target source code versions GIT_REBUILD_TAG Don’t fetch the latest version
  • 31. 31 • How to add “E” to “Release3” Tag based source code fetch and build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Source code A 1 2 3 Source code B 1 2 3 Source code C 2 Source code D 1 2 3 4 5 6 7 4 Time 1 r1 r1 r1 r1 r2 r2 r2 r2 r3 r3 r3 r3 New release Source code E 1 2 3 Metadata 1 2 3 4 r1 r2 r3 Unused in old releases 5 STEP1: Add "E" to the target image GIT_PREFERRED_TAG
  • 32. 32 • How to add “E” to “Release3” Tag based source code fetch and build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Source code A 1 2 3 Source code B 1 2 3 Source code C 2 Source code D 1 2 3 4 5 6 7 4 Time 1 r1 r1 r1 r1 r2 r2 r2 r2 r3 r3 r3 r3 New release Source code E 1 2 3 Metadata 1 2 3 4 r1 r2 r3 5 Fetches the latest source code by default GIT_PREFERRED_TAG
  • 33. 33 • How to add “E” to “Release3” Tag based source code fetch and build Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Source code A 1 2 3 Source code B 1 2 3 Source code C 2 Source code D 1 2 3 4 5 6 7 4 Time 1 r1 r1 r1 r1 r2 r2 r2 r2 r3 r3 r3 r3 New release Source code E 1 2 3 Metadata 1 2 3 4 r1 r2 r3 5 STEP2: Set GIT_PREFERRED_TAG = "r3" to specify target source code versions Fetches the latest source code if the specified tag doesn’t exist GIT_PREFERRED_TAG
  • 34. 34 Tag based source code fetch and build • GIT_REBUILD_TAG: – Assumption • Specified tag has been specified on all related repositories – Behavior • Rebuild with specified tag for each package • If the tag does not available on any repository, the build will fail • GIT_PREFERRED_TAG: – Assumption • Specified tag has been specified on all or a part of related package – Behavior • Rebuild with specified tag, if it exist • If some repository does not have the specified tag, poky use the latest commit for the repository Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 35. 35 • Create git repository mirrors with docker – Follow the instructions in meta-debian-docker/README.md How to register tag and rebuild Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby $ git clone https://github.com/meta-debian/meta-debian-docker.git $ cd meta-debian-docker $ ./make-docker-image.sh $ sudo docker run -d -p 10022:22 meta-debian:1 /etc/sv/git-daemon/run -D github.com docker (172.17.0.2) mirror
  • 36. 36 How to register tag and rebuild • Setup poky + meta-debian • Override the git server related variables in local.conf Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby $ export TEMPLATECONF=meta-debian/conf $ source ./poky/oe-init-build-env github.com docker (172.17.0.2) mirror poky meta-debian Fetches source code from github by default fetch
  • 37. 37 How to register tag and rebuild • Setup poky + meta-debian • Override the git server related variables in local.conf Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby $ export TEMPLATECONF=meta-debian/conf $ source ./poky/oe-init-build-env github.com docker (172.17.0.2) mirror poky meta-debian fetch local.conf DEBIAN_GIT_URI = "git://172.17.0.2" DEBIAN_GIT_PROTOCOL = "git" MISC_GIT_URI = "git://172.17.0.2" MISC_GIT_PROTOCOL = "git" LINUX_GIT_URI = "git://172.17.0.2" LINUX_GIT_PROTOCOL = "git" SRC_URI_ALLOWED = "git://172.17.0.2"
  • 38. 38 How to register tag and rebuild • bitbake something • Get list files that have git repositories used in the build – Example: /path/to/builddir/tmp/git.list.172.17.0.2 Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby $ bitbake core-image-minimal github.com docker (172.17.0.2) mirror poky meta-debian fetch local.conf git.list.172.17.0.2 build
  • 39. 39 How to register tag and rebuild • Register a tag "testtag" to the repositories Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby $ git clone https://github.com/meta-debian/meta-debian-scripts.git $ cd meta-debian-scripts $ ./git-tagger.sh git.list.172.17.0.2 172.17.0.2 testtag github.com docker (172.17.0.2) mirror poky meta-debian local.conf register tag git-tagger.sh git.list.172.17.0.2 testtagtesttagtesttag
  • 40. 40 How to register tag and rebuild • Rebuild the old image Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby $ export TEMPLATECONF=meta-debian/conf $ source ./poky/oe-init-build-env $ echo 'GIT_REBUILD_TAG = "testtag"' >> conf/local.conf $ bitbake core-image-minimal github.com docker (172.17.0.2) mirror poky meta-debian fetch local.conf rebuild testtagtesttagtesttag GIT_REBUILD_TAG = "testtag"
  • 41. 41 Generation of summary information • Minimum information required for products – List of installed software – Version of each software – Source URI where the source code fetched – License of each software • Issues – How to collect the above information for each package – How to generate summary of each deployment (rootfs, SDK) Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 42. 42 • Poky’s build flow Package pool Generation of summary information Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby A.git .deb.deb.deb rootfs A.bb Build B.git .deb.deb.deb B.bb C.git .deb.deb.deb C.bb X.git .deb.deb.deb X.bb Source code Recipe SDK Install rootfs SDK Package: X Version: git0+dae8d9bd7f-r0 PackageArch: i586 Depends: B, C, ... ... metadata
  • 43. 43 • How to collect information for each package Package pool Generation of summary information Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby A.git .deb.deb.deb rootfs A.bb Build B.git .deb.deb.deb B.bb C.git .deb.deb.deb C.bb X.git .deb.deb.deb X.bb Source code Recipe SDK Install rootfs SDK Package: X Version: git0+dae8d9bd7f-r0 PackageArch: i586 Depends: B, C, ... DebianSourceName: X DebianSourceVersion: 1.2-3 RemoteSourceURI: git://... License: GPLv2+ metadata Hook STEP1: Embed additional metadata
  • 44. 44 • How to generate summary of each deployment Package pool Generation of summary information Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby A.git .deb.deb rootfs A.bb Build B.git .deb.deb.deb B.bb C.git .deb.deb C.bb X.git .deb.deb X.bb Source code Recipe SDK Install rootfs SDK Hook .deb .deb rootfs summary SDK summary Hook .deb STEP2: Generate summary from metadata of installed package
  • 45. 45 Generation of summary information • Format of summary information (CSV) Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Version with commit ID Recipe name in meta-debian layer Debian’s source package name Source URI represents where the source code fetched License information Debian package version number
  • 46. 46 Conclusions • What is Shared Embedded Linux distribution – Share the work of maintaining long-term support for an embedded distribution, by leveraging the work of the Debian project • Metadata for building embedded Linux systems using Debian source packages • Implemented as an independent layer of OpenEmbedded-Core • Deby is intended to provide – Wide embedded CPU support – Stability – Long-term support – Fully customizable Linux Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 47. 47 Conclusions • Useful features for efficient source code management – Tag based source code fetch and build • GIT_REBUILD_TAG – Easy to reproduce the old images • GIT_PREFERRED_TAG – Helpful to build a new images based on the old one without unneeded changes – Generation of summary information for Linux image • Generate summary for each deployment by adding hooks into poky’s packaging functions • Easy to manage version, source URI and license of software included in Linux image Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 48. 48 Current development status Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby Debian version 8 jessie (the latest stable) Yocto Project version 2.0 jethro (stable) 2.1 krogoth (development) Kernel 4.1 LTSI BSP QEMU: x86 (32bit, 64bit), ARM, PowerPC, MIPS VMware Player MinnowBoard Raspberry Pi 1/2 Intel Edison board init manager busybox, systemd Packages Approx. 500
  • 49. 49 Future works • Keep following updates of poky and Debian • Support more embedded boards • Package management – Run-time dpkg & apt – Install pre-built packages – Related work • Isar ( https://github.com/ilbers/isar ) • Smart Package Manager ( https://github.com/ubinux/smart2 ) • Efficient recipe creation – Add a (semi-)automated recipe generator from debian/rules • Integrate with LTSI test environment (Fuego) Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 50. 50 Please give us feedback • E-mail – yoshitake.kobayashi@toshiba.co.jp – kazuhiro3.hayashi@toshiba.co.jp • Repository – https://github.com/meta-debian/meta-debian.git Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby
  • 51. 51 Questions? Generating a Reproducible and Maintainable Embedded Linux Environment with Poky and Deby