SlideShare a Scribd company logo
Embedded Recipes Conference - 2017
Introduction to the Yocto Project /
OpenEmbedded-core
Mylène Josserand
Free Electrons
mylene@free-electrons.com
Embedded Linux
Experts
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 1/35
Mylène Josserand
▶ Embedded Linux engineer at Free Electrons
since 2016
▶ Embedded Linux expertise
▶ Development, consulting and training around
the Yocto Project
▶ One of the authors of Free Electrons’ Yocto
Project / OpenEmbedded training
materials.
▶ Kernel contributor: audio driver, touchscreen,
RTC and more to come!
Embedded Linux
Experts
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 2/35
Introduction
▶ In this talk, we will:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
Introduction
▶ In this talk, we will:
▶ Understand why we should use a build system
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
Introduction
▶ In this talk, we will:
▶ Understand why we should use a build system
▶ How the Yocto Project / OpenEmbedded core are structured
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
Introduction
▶ In this talk, we will:
▶ Understand why we should use a build system
▶ How the Yocto Project / OpenEmbedded core are structured
▶ How we can use it
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
Introduction
▶ In this talk, we will:
▶ Understand why we should use a build system
▶ How the Yocto Project / OpenEmbedded core are structured
▶ How we can use it
▶ How we can update it to fit our needs
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
Introduction
▶ In this talk, we will:
▶ Understand why we should use a build system
▶ How the Yocto Project / OpenEmbedded core are structured
▶ How we can use it
▶ How we can update it to fit our needs
▶ Give some good practices to start using the Yocto Project correctly
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
Introduction
▶ In this talk, we will:
▶ Understand why we should use a build system
▶ How the Yocto Project / OpenEmbedded core are structured
▶ How we can use it
▶ How we can update it to fit our needs
▶ Give some good practices to start using the Yocto Project correctly
▶ Allows to customize many things: it is easy to do things the wrong way
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
Introduction
▶ In this talk, we will:
▶ Understand why we should use a build system
▶ How the Yocto Project / OpenEmbedded core are structured
▶ How we can use it
▶ How we can update it to fit our needs
▶ Give some good practices to start using the Yocto Project correctly
▶ Allows to customize many things: it is easy to do things the wrong way
▶ When you see a ✓, it means it is a good practice!
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
Why use a build system?
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
Why use a build system?
▶ In the Embedded world, we have many constraints
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
Why use a build system?
▶ In the Embedded world, we have many constraints
▶ Nice to reduce the system to a minimal one + add our custom application
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
Why use a build system?
▶ In the Embedded world, we have many constraints
▶ Nice to reduce the system to a minimal one + add our custom application
▶ A build system will automate the creation of the system in a reproducible way
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
Why use a build system?
▶ In the Embedded world, we have many constraints
▶ Nice to reduce the system to a minimal one + add our custom application
▶ A build system will automate the creation of the system in a reproducible way
▶ Integration means packaging applications to create a final image
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
System integration: several possibilities
▶ Building everything manually:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)⊗
Hard to rebuild from source
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)⊗
Hard to rebuild from source⊗
Native-compilation
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)⊗
Hard to rebuild from source⊗
Native-compilation⊗
Not available for all architectures
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)⊗
Hard to rebuild from source⊗
Native-compilation⊗
Not available for all architectures
▶ Build systems (Buildroot, the Yocto Project, etc):
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)⊗
Hard to rebuild from source⊗
Native-compilation⊗
Not available for all architectures
▶ Build systems (Buildroot, the Yocto Project, etc):
⊗
Not as easy as a binary distribution
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)⊗
Hard to rebuild from source⊗
Native-compilation⊗
Not available for all architectures
▶ Build systems (Buildroot, the Yocto Project, etc):
⊗
Not as easy as a binary distribution⊕
Nearly full flexibility
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)⊗
Hard to rebuild from source⊗
Native-compilation⊗
Not available for all architectures
▶ Build systems (Buildroot, the Yocto Project, etc):
⊗
Not as easy as a binary distribution⊕
Nearly full flexibility⊕
Built from source: customization and optimization are easy
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)⊗
Hard to rebuild from source⊗
Native-compilation⊗
Not available for all architectures
▶ Build systems (Buildroot, the Yocto Project, etc):
⊗
Not as easy as a binary distribution⊕
Nearly full flexibility⊕
Built from source: customization and optimization are easy⊕
Fully reproducible
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
System integration: several possibilities
▶ Building everything manually:
⊕
Full flexibility⊗
Dependency hell⊗
Lack of reproducibility
▶ Binary distribution (Debian, Ubuntu, Fedora, etc):
⊕
Easy to create and extend⊗
Hard to customize and optimize (boot time, size)⊗
Hard to rebuild from source⊗
Native-compilation⊗
Not available for all architectures
▶ Build systems (Buildroot, the Yocto Project, etc):
⊗
Not as easy as a binary distribution⊕
Nearly full flexibility⊕
Built from source: customization and optimization are easy⊕
Fully reproducible⊕
Cross-compilation
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
Representation in the Yocto Project
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
Representation in the Yocto Project
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
Representation in the Yocto Project
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
Representation in the Yocto Project
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
Representation in the Yocto Project
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
Representation in the Yocto Project
▶ Common tasks defined in OpenEmbedded core
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
Representation in the Yocto Project
▶ Common tasks defined in OpenEmbedded core
▶ Many recipes availables for many applications: organized in layers
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
Representation in the Yocto Project
▶ Common tasks defined in OpenEmbedded core
▶ Many recipes availables for many applications: organized in layers
▶ Allow to build custom embedded Linux-based systems
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
Representation in the Yocto Project
▶ Common tasks defined in OpenEmbedded core
▶ Many recipes availables for many applications: organized in layers
▶ Allow to build custom embedded Linux-based systems
⇒ This is the aim of the Yocto Project
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
OpenEmbedded core & Poky
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
▶ It is the core of all the magic
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
▶ It is the core of all the magic
▶ It supports the ARM, MIPS (32
and 64 bits), PowerPC and x86
(32 and 64 bits) architectures +
QEMU
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
▶ It is the core of all the magic
▶ It supports the ARM, MIPS (32
and 64 bits), PowerPC and x86
(32 and 64 bits) architectures +
QEMU
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
▶ It is the core of all the magic
▶ It supports the ARM, MIPS (32
and 64 bits), PowerPC and x86
(32 and 64 bits) architectures +
QEMU
▶ Reference distribution of the Yocto Project
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
▶ It is the core of all the magic
▶ It supports the ARM, MIPS (32
and 64 bits), PowerPC and x86
(32 and 64 bits) architectures +
QEMU
▶ Reference distribution of the Yocto Project
▶ Contains everything you need to start a
project:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
▶ It is the core of all the magic
▶ It supports the ARM, MIPS (32
and 64 bits), PowerPC and x86
(32 and 64 bits) architectures +
QEMU
▶ Reference distribution of the Yocto Project
▶ Contains everything you need to start a
project:
▶ OpenEmbedded-core
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
▶ It is the core of all the magic
▶ It supports the ARM, MIPS (32
and 64 bits), PowerPC and x86
(32 and 64 bits) architectures +
QEMU
▶ Reference distribution of the Yocto Project
▶ Contains everything you need to start a
project:
▶ OpenEmbedded-core
▶ Bitbake
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
▶ It is the core of all the magic
▶ It supports the ARM, MIPS (32
and 64 bits), PowerPC and x86
(32 and 64 bits) architectures +
QEMU
▶ Reference distribution of the Yocto Project
▶ Contains everything you need to start a
project:
▶ OpenEmbedded-core
▶ Bitbake
▶ Additional layers
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
OpenEmbedded core & Poky
▶ Co-maintained by the Yocto
Project and OpenEmbedded
Project
▶ Set of base layer with recipes
and classes
▶ It is the core of all the magic
▶ It supports the ARM, MIPS (32
and 64 bits), PowerPC and x86
(32 and 64 bits) architectures +
QEMU
▶ Reference distribution of the Yocto Project
▶ Contains everything you need to start a
project:
▶ OpenEmbedded-core
▶ Bitbake
▶ Additional layers
▶ Also contains some useful tools to ease
recipes and layers’ creation
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
The Yocto Project / OpenEmbedded Core / Poky
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 8/35
Workflow - General
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 9/35
Workflow - General
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 9/35
Workflow - General
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 9/35
Workflow - Users/Developers actions
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 10/35
Workflow - 1. Download
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
Workflow - 1. Download
▶ Find which version you want to use:
Figure: https://wiki.yoctoproject.org/wiki/Releases
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
Workflow - 1. Download
▶ Find which version you want to use:
Figure: https://wiki.yoctoproject.org/wiki/Releases
▶ Support level: Development, Stable, Community
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
Workflow - 1. Download
▶ Find which version you want to use:
Figure: https://wiki.yoctoproject.org/wiki/Releases
▶ Support level: Development, Stable, Community
▶ A codename corresponds to a Poky and Bitbake versions
Pyro = Yocto Project v2.3 → Poky v17.0 & Bitbake v1.34
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
Workflow - 1. Download
▶ Find which version you want to use:
Figure: https://wiki.yoctoproject.org/wiki/Releases
▶ Support level: Development, Stable, Community
▶ A codename corresponds to a Poky and Bitbake versions
Pyro = Yocto Project v2.3 → Poky v17.0 & Bitbake v1.34
▶ How to download:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
Workflow - 1. Download
▶ Find which version you want to use:
Figure: https://wiki.yoctoproject.org/wiki/Releases
▶ Support level: Development, Stable, Community
▶ A codename corresponds to a Poky and Bitbake versions
Pyro = Yocto Project v2.3 → Poky v17.0 & Bitbake v1.34
▶ How to download:
git clone -b pyro git://git.yoctoproject.org/poky.git
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
Workflow - 1. Download
▶ Layers are sets of recipes, matching a common purpose.
To simplify things, they are just folders
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
Workflow - 1. Download
▶ Layers are sets of recipes, matching a common purpose.
To simplify things, they are just folders
▶ Look at existing layers
Figure: http://layers.openembedded.org/layerindex/
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
Workflow - 1. Download
▶ Layers are sets of recipes, matching a common purpose.
To simplify things, they are just folders
▶ Look at existing layers
Figure: http://layers.openembedded.org/layerindex/
▶ Download all other layers on same branch than Poky: Pyro
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
Workflow - 1. Download
▶ Layers are sets of recipes, matching a common purpose.
To simplify things, they are just folders
▶ Look at existing layers
Figure: http://layers.openembedded.org/layerindex/
▶ Download all other layers on same branch than Poky: Pyro
✓ Use existing layers before creating a new one ⇒ saves you time
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
Workflow - 1. Download
▶ Layers are sets of recipes, matching a common purpose.
To simplify things, they are just folders
▶ Look at existing layers
Figure: http://layers.openembedded.org/layerindex/
▶ Download all other layers on same branch than Poky: Pyro
✓ Use existing layers before creating a new one ⇒ saves you time
✓ DO NOT EDIT POKY/UPSTREAM LAYERS ⇒ complicates updates
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
Workflow - 2. Configure the build
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
Workflow - 2. Configure the build
▶ A script with all variables needed by Bitbake must be sourced:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
Workflow - 2. Configure the build
▶ A script with all variables needed by Bitbake must be sourced:
source oe-init-build-env
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
Workflow - 2. Configure the build
▶ A script with all variables needed by Bitbake must be sourced:
source oe-init-build-env
▶ Will move you in a build folder
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
Workflow - 2. Configure the build
▶ A script with all variables needed by Bitbake must be sourced:
source oe-init-build-env
▶ Will move you in a build folder
▶ Now, can run any commands
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
Workflow - 2. Configure the build
▶ A script with all variables needed by Bitbake must be sourced:
source oe-init-build-env
▶ Will move you in a build folder
▶ Now, can run any commands
▶ All the local configurations are in the conf folder
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
Workflow - 2. Configure the build
▶ A script with all variables needed by Bitbake must be sourced:
source oe-init-build-env
▶ Will move you in a build folder
▶ Now, can run any commands
▶ All the local configurations are in the conf folder
build/
|-- conf
|-- bblayers.conf
|-- local.conf
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
Workflow - 2. Configure the build
▶ A script with all variables needed by Bitbake must be sourced:
source oe-init-build-env
▶ Will move you in a build folder
▶ Now, can run any commands
▶ All the local configurations are in the conf folder
build/
|-- conf
|-- bblayers.conf
|-- local.conf
▶ Edit your bblayers.conf with possible additional layers:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
Workflow - 2. Configure the build
▶ A script with all variables needed by Bitbake must be sourced:
source oe-init-build-env
▶ Will move you in a build folder
▶ Now, can run any commands
▶ All the local configurations are in the conf folder
build/
|-- conf
|-- bblayers.conf
|-- local.conf
▶ Edit your bblayers.conf with possible additional layers:
BBLAYERS ?= " 
/home/mylene/yocto/poky/meta 
/home/mylene/yocto/poky/meta-poky 
/home/mylene/yocto/poky/meta-yocto-bsp 
/home/mylene/yocto/meta-freescale 
/home/mylene/yocto/meta-qt5 
"
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
▶ poky: beaglebone, x86, x86-64
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
▶ poky: beaglebone, x86, x86-64
▶ meta-ti: beagleboard, pandaboard, ...
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
▶ poky: beaglebone, x86, x86-64
▶ meta-ti: beagleboard, pandaboard, ...
▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ...
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
▶ poky: beaglebone, x86, x86-64
▶ meta-ti: beagleboard, pandaboard, ...
▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ...
▶ meta-atmel: at91*, sama5d*, ...
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
▶ poky: beaglebone, x86, x86-64
▶ meta-ti: beagleboard, pandaboard, ...
▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ...
▶ meta-atmel: at91*, sama5d*, ...
▶ DISTRO: Represents the top-level configuration that will apply to every build. It
will include tools needed to use your hardware: compiler, libC, etc + some specific
variables Look at conf/distro/ folders
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
▶ poky: beaglebone, x86, x86-64
▶ meta-ti: beagleboard, pandaboard, ...
▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ...
▶ meta-atmel: at91*, sama5d*, ...
▶ DISTRO: Represents the top-level configuration that will apply to every build. It
will include tools needed to use your hardware: compiler, libC, etc + some specific
variables Look at conf/distro/ folders
▶ poky: poky, poky-tiny, ...
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
▶ poky: beaglebone, x86, x86-64
▶ meta-ti: beagleboard, pandaboard, ...
▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ...
▶ meta-atmel: at91*, sama5d*, ...
▶ DISTRO: Represents the top-level configuration that will apply to every build. It
will include tools needed to use your hardware: compiler, libC, etc + some specific
variables Look at conf/distro/ folders
▶ poky: poky, poky-tiny, ...
▶ meta-angstrom: angstrom
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
▶ poky: beaglebone, x86, x86-64
▶ meta-ti: beagleboard, pandaboard, ...
▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ...
▶ meta-atmel: at91*, sama5d*, ...
▶ DISTRO: Represents the top-level configuration that will apply to every build. It
will include tools needed to use your hardware: compiler, libC, etc + some specific
variables Look at conf/distro/ folders
▶ poky: poky, poky-tiny, ...
▶ meta-angstrom: angstrom
▶ Noticed that local.conf ⇒ only for the local workstation.
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 2. Configure the build
▶ Edit local.conf with your MACHINE and your DISTRO
▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers.
Look at conf/machine/ folders
▶ poky: beaglebone, x86, x86-64
▶ meta-ti: beagleboard, pandaboard, ...
▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ...
▶ meta-atmel: at91*, sama5d*, ...
▶ DISTRO: Represents the top-level configuration that will apply to every build. It
will include tools needed to use your hardware: compiler, libC, etc + some specific
variables Look at conf/distro/ folders
▶ poky: poky, poky-tiny, ...
▶ meta-angstrom: angstrom
▶ Noticed that local.conf ⇒ only for the local workstation.
✓ Avoid changes directly in local.conf (or only for test purposes, except for some
variables such as MACHINE and DISTRO)
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
Workflow - 3. Build an image
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
Workflow - 3. Build an image
▶ What is an IMAGE?
⇒ Represents your root filesystem: all your applications, libraries, configuration
files, ... Will find it under recipes-*/images/
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
Workflow - 3. Build an image
▶ What is an IMAGE?
⇒ Represents your root filesystem: all your applications, libraries, configuration
files, ... Will find it under recipes-*/images/
▶ Common images already exist in Poky: core-image-minimal, core-image-base,
core-image-x11, ...
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
Workflow - 3. Build an image
▶ What is an IMAGE?
⇒ Represents your root filesystem: all your applications, libraries, configuration
files, ... Will find it under recipes-*/images/
▶ Common images already exist in Poky: core-image-minimal, core-image-base,
core-image-x11, ...
▶ Build an existing image:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
Workflow - 3. Build an image
▶ What is an IMAGE?
⇒ Represents your root filesystem: all your applications, libraries, configuration
files, ... Will find it under recipes-*/images/
▶ Common images already exist in Poky: core-image-minimal, core-image-base,
core-image-x11, ...
▶ Build an existing image:
bitbake core-image-minimal
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
MACHINE/DISTRO/IMAGE: a little reminder
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
MACHINE/DISTRO/IMAGE: a little reminder
▶ Machine: It represents your hardware
conf/machine/
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
MACHINE/DISTRO/IMAGE: a little reminder
▶ Machine: It represents your hardware
conf/machine/
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
MACHINE/DISTRO/IMAGE: a little reminder
▶ Machine: It represents your hardware
conf/machine/
▶ Distro: Represents the top-level
configuration that will apply on every
build
conf/distro/
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
MACHINE/DISTRO/IMAGE: a little reminder
▶ Machine: It represents your hardware
conf/machine/
▶ Distro: Represents the top-level
configuration that will apply on every
build
conf/distro/
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
MACHINE/DISTRO/IMAGE: a little reminder
▶ Machine: It represents your hardware
conf/machine/
▶ Distro: Represents the top-level
configuration that will apply on every
build
conf/distro/
▶ Image: It represents your root
filesystem itself: all your applications,
libraries, configuration’s files, etc
recipes-core/images
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
MACHINE/DISTRO/IMAGE: a little reminder
▶ Machine: It represents your hardware
conf/machine/
▶ Distro: Represents the top-level
configuration that will apply on every
build
conf/distro/
▶ Image: It represents your root
filesystem itself: all your applications,
libraries, configuration’s files, etc
recipes-core/images
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
Workflow - Developer
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 17/35
Workflow - 4. Create a layer
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
Workflow - 4. Create a layer
▶ You may have custom hardware, need to update recipes from upstream layers,
integrate your own application, etc
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
Workflow - 4. Create a layer
▶ You may have custom hardware, need to update recipes from upstream layers,
integrate your own application, etc
▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
Workflow - 4. Create a layer
▶ You may have custom hardware, need to update recipes from upstream layers,
integrate your own application, etc
▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS
▶ To be able to do that, we will create our own layer that will host all our
modifications/applications
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
Workflow - 4. Create a layer
▶ You may have custom hardware, need to update recipes from upstream layers,
integrate your own application, etc
▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS
▶ To be able to do that, we will create our own layer that will host all our
modifications/applications
▶ Poky provides a tool to create layers:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
Workflow - 4. Create a layer
▶ You may have custom hardware, need to update recipes from upstream layers,
integrate your own application, etc
▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS
▶ To be able to do that, we will create our own layer that will host all our
modifications/applications
▶ Poky provides a tool to create layers:
yocto-layer create <layer_name> -o <dest_dir>
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
Workflow - 4. Create a layer
▶ You may have custom hardware, need to update recipes from upstream layers,
integrate your own application, etc
▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS
▶ To be able to do that, we will create our own layer that will host all our
modifications/applications
▶ Poky provides a tool to create layers:
yocto-layer create <layer_name> -o <dest_dir>
✓ The layer’s name must be meta-* (done automatically using yocto-layer tool)
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
Workflow - 4. Create a layer
▶ You may have custom hardware, need to update recipes from upstream layers,
integrate your own application, etc
▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS
▶ To be able to do that, we will create our own layer that will host all our
modifications/applications
▶ Poky provides a tool to create layers:
yocto-layer create <layer_name> -o <dest_dir>
✓ The layer’s name must be meta-* (done automatically using yocto-layer tool)
✓ Avoid uppercase and funny/long names
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
Workflow - 4. Create a layer
▶ You may have custom hardware, need to update recipes from upstream layers,
integrate your own application, etc
▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS
▶ To be able to do that, we will create our own layer that will host all our
modifications/applications
▶ Poky provides a tool to create layers:
yocto-layer create <layer_name> -o <dest_dir>
✓ The layer’s name must be meta-* (done automatically using yocto-layer tool)
✓ Avoid uppercase and funny/long names
✓ If you have different projects with common parts, try to create two layers
⇒ Can re-use some parts
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
Workflow - 5. Create a recipe
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
Workflow - 5. Create a recipe
▶ A recipe is a file describing tasks for an application to:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
Workflow - 5. Create a recipe
▶ A recipe is a file describing tasks for an application to:
▶ retrieve its sources
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
Workflow - 5. Create a recipe
▶ A recipe is a file describing tasks for an application to:
▶ retrieve its sources
▶ configure it
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
Workflow - 5. Create a recipe
▶ A recipe is a file describing tasks for an application to:
▶ retrieve its sources
▶ configure it
▶ compile it
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
Workflow - 5. Create a recipe
▶ A recipe is a file describing tasks for an application to:
▶ retrieve its sources
▶ configure it
▶ compile it
▶ install it
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
Workflow - 5. Create a recipe
▶ A recipe is a file describing tasks for an application to:
▶ retrieve its sources
▶ configure it
▶ compile it
▶ install it
▶ It handles all the dependencies for you.
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
Workflow - 5. Create a recipe
▶ A recipe is a file describing tasks for an application to:
▶ retrieve its sources
▶ configure it
▶ compile it
▶ install it
▶ It handles all the dependencies for you.
▶ Many common tasks are already defined by OpenEmbedded-core
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
Workflow - 5. Create a recipe
▶ A recipe is a file describing tasks for an application to:
▶ retrieve its sources
▶ configure it
▶ compile it
▶ install it
▶ It handles all the dependencies for you.
▶ Many common tasks are already defined by OpenEmbedded-core
▶ Organized in folders with the same purpose (recipes-core, recipes-bsp,
recipes-kernel, recipes-devtool, recipes-support, ...) and a sub-folder with the
application’s name
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
Workflow - 5. Create a recipe
▶ To create a recipe, you have to create a .bb file. It is the format that bitbake
understands
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
Workflow - 5. Create a recipe
▶ To create a recipe, you have to create a .bb file. It is the format that bitbake
understands
▶ The format of a recipe file name is <application-name>_<version>.bb
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
Workflow - 5. Create a recipe
▶ To create a recipe, you have to create a .bb file. It is the format that bitbake
understands
▶ The format of a recipe file name is <application-name>_<version>.bb
▶ A recipe can be divided in three parts:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
Workflow - 5. Create a recipe
▶ To create a recipe, you have to create a .bb file. It is the format that bitbake
understands
▶ The format of a recipe file name is <application-name>_<version>.bb
▶ A recipe can be divided in three parts:
▶ The header: what/who. Description of the application
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
Workflow - 5. Create a recipe
▶ To create a recipe, you have to create a .bb file. It is the format that bitbake
understands
▶ The format of a recipe file name is <application-name>_<version>.bb
▶ A recipe can be divided in three parts:
▶ The header: what/who. Description of the application
▶ The sources: where. Can be tarballs, remote repository, ...
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
Workflow - 5. Create a recipe
▶ To create a recipe, you have to create a .bb file. It is the format that bitbake
understands
▶ The format of a recipe file name is <application-name>_<version>.bb
▶ A recipe can be divided in three parts:
▶ The header: what/who. Description of the application
▶ The sources: where. Can be tarballs, remote repository, ...
▶ The tasks: how. How to proceed with the application’s sources
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
Workflow - 5. Create a recipe
▶ To create a recipe, you have to create a .bb file. It is the format that bitbake
understands
▶ The format of a recipe file name is <application-name>_<version>.bb
▶ A recipe can be divided in three parts:
▶ The header: what/who. Description of the application
▶ The sources: where. Can be tarballs, remote repository, ...
▶ The tasks: how. How to proceed with the application’s sources
▶ Classes are available for tasks commonly used: kernel, CMake, autotools, ...
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
Workflow - 5. Create a recipe
recipes-support/nmon/nmon_13g.bb
SUMMARY = "nmon performance monitor"
HOMEPAGE = "http://nmon.sf.net"
SECTION = "console/utils"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
DEPENDS = "ncurses"
SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon13g.c;name=lmon 
${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc 
"
SRC_URI[lmon.md5sum] = "b1b8e6c0123ad232394991f2d4f40494"
SRC_URI[lmon.sha256sum] = "456ab2a342b31d1a352d0d940af5962fa65a12ae8757ff73e6e73210832ae8b5"
SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a"
SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
LDFLAGS += "-ltinfo -lncursesw"
do_compile() {
${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/lmon13g.c -o nmon
}
do_install() {
install -d ${D}${bindir}
install -m 0755 nmon ${D}${bindir}
}
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 21/35
Workflow - 5. Create a recipe
recipes-support/nmon/nmon_13g.bb
| SUMMARY = "nmon performance monitor"
| HOMEPAGE = "http://nmon.sf.net"
| SECTION = "console/utils"
"Header" | LICENSE = "GPLv3"
| LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
| DEPENDS = "ncurses"
| SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon13g.c;name=lmon 
| ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc 
| "
| SRC_URI[lmon.md5sum] = "b1b8e6c0123ad232394991f2d4f40494"
"Source" | SRC_URI[lmon.sha256sum] = "456ab2a342b31d1a352d0d940af5962fa65a12ae8757ff73e6e73210832ae8b5"
| SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a"
| SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
| CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
| LDFLAGS += "-ltinfo -lncursesw"
|
| do_compile() {
| ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/lmon13g.c -o nmon
"Tasks" | }
|
| do_install() {
| install -d ${D}${bindir}
| install -m 0755 nmon ${D}${bindir}
| }
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 22/35
Workflow - 5. Create a recipe
recipes-example/helloworld/helloworld_1.0.bb
DESCRIPTION = "Print a friendly, customizable greeting"
HOMEPAGE = "https://www.gnu.org/software/hello/"
PRIORITY = "optional"
SECTION = "examples"
LICENSE = "GPLv3"
SRC_URI = "${GNU_MIRROR}/hello/hello-${PV}.tar.gz"
SRC_URI[md5sum] = "67607d2616a0faaf5bc94c59dca7c3cb"
SRC_URI[sha256sum] = "ecbb7a2214196c57ff9340aa71458e1559abd38f6d8d169666846935df191ea7"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
inherit autotools
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 23/35
Workflow - 5. Create a recipe
recipes-example/helloworld/helloworld_1.0.bb
| DESCRIPTION = "Print a friendly, customizable greeting"
| HOMEPAGE = "https://www.gnu.org/software/hello/"
"Header" | PRIORITY = "optional"
| SECTION = "examples"
| LICENSE = "GPLv3"
| SRC_URI = "${GNU_MIRROR}/hello/hello-${PV}.tar.gz"
"Source" | SRC_URI[md5sum] = "67607d2616a0faaf5bc94c59dca7c3cb"
| SRC_URI[sha256sum] = "ecbb7a2214196c57ff9340aa71458e1559abd38f6d8d169666846935df191ea7"
| LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
"Tasks" | inherit autotools
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 24/35
Workflow - 5. Create a recipe
✓ Always use remote repositories to host your application sources
⇒ Makes development quicker + keep history
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
Workflow - 5. Create a recipe
✓ Always use remote repositories to host your application sources
⇒ Makes development quicker + keep history
✓ Do not put application sources in your layer directly!
⇒ Application development ̸= Application Integration
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
Workflow - 5. Create a recipe
✓ Always use remote repositories to host your application sources
⇒ Makes development quicker + keep history
✓ Do not put application sources in your layer directly!
⇒ Application development ̸= Application Integration
✓ Keep the same folder organization: recipes-core/recipes-bsp/recipes-devtools/...
⇒ Find recipes quicker
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
Workflow - 5. Create a recipe
✓ Always use remote repositories to host your application sources
⇒ Makes development quicker + keep history
✓ Do not put application sources in your layer directly!
⇒ Application development ̸= Application Integration
✓ Keep the same folder organization: recipes-core/recipes-bsp/recipes-devtools/...
⇒ Find recipes quicker
✓ Keep the headers / sources / tasks organization in the recipe
⇒ All the recipes have the same content organization
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
Workflow - 5. Create a recipe
✓ Always use remote repositories to host your application sources
⇒ Makes development quicker + keep history
✓ Do not put application sources in your layer directly!
⇒ Application development ̸= Application Integration
✓ Keep the same folder organization: recipes-core/recipes-bsp/recipes-devtools/...
⇒ Find recipes quicker
✓ Keep the headers / sources / tasks organization in the recipe
⇒ All the recipes have the same content organization
✓ Use/Create include files when possible
⇒ Can extend other versions easily
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
Workflow - 5. Create a recipe
✓ Always use remote repositories to host your application sources
⇒ Makes development quicker + keep history
✓ Do not put application sources in your layer directly!
⇒ Application development ̸= Application Integration
✓ Keep the same folder organization: recipes-core/recipes-bsp/recipes-devtools/...
⇒ Find recipes quicker
✓ Keep the headers / sources / tasks organization in the recipe
⇒ All the recipes have the same content organization
✓ Use/Create include files when possible
⇒ Can extend other versions easily
✓ Know how to compile the application manually before integrating it in a recipe
⇒ Saves you time
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
Workflow - 6. Extend a recipe
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
Workflow - 6. Extend a recipe
▶ It is a good practice not to modify recipes available in Poky.
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
Workflow - 6. Extend a recipe
▶ It is a good practice not to modify recipes available in Poky.
▶ But it is sometimes useful to modify an existing recipe
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
Workflow - 6. Extend a recipe
▶ It is a good practice not to modify recipes available in Poky.
▶ But it is sometimes useful to modify an existing recipe
▶ The BitBake build engine allows to modify a recipe by extending it
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
Workflow - 6. Extend a recipe
▶ It is a good practice not to modify recipes available in Poky.
▶ But it is sometimes useful to modify an existing recipe
▶ The BitBake build engine allows to modify a recipe by extending it
▶ The recipe extensions end in .bbappend
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
Workflow - 6. Extend a recipe
▶ It is a good practice not to modify recipes available in Poky.
▶ But it is sometimes useful to modify an existing recipe
▶ The BitBake build engine allows to modify a recipe by extending it
▶ The recipe extensions end in .bbappend
▶ Appended files must have the same root name as the recipe they extend
example_0.1.bbappend applies to example_0.1.bb
⇒ version specific
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
Workflow - 6. Extend a recipe
▶ It is a good practice not to modify recipes available in Poky.
▶ But it is sometimes useful to modify an existing recipe
▶ The BitBake build engine allows to modify a recipe by extending it
▶ The recipe extensions end in .bbappend
▶ Appended files must have the same root name as the recipe they extend
example_0.1.bbappend applies to example_0.1.bb
⇒ version specific
▶ If adding new files, you must prepend the FILESEXTRAPATHS variable with the
path to files’ directory.
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
Workflow - 6. Extend a recipe
recipes-support/nmon/nmon_13g.bbappend
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://custom-modification-0.patch 
file://custom-modification-1.patch 
"
do_install_append() {
# Do something
}
.
|--- conf
| |-- layer.conf
|--- recipes-support
|--- nmon
|-- files
| |-- custom-modification-0.patch
| |-- custom-modification-1.patch
|-- nmon_13g.bbappend
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 27/35
Workflow - 7. Create an image
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
Workflow - 7. Create an image
▶ An image is the top level recipe and is used alongside the machine definition
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
Workflow - 7. Create an image
▶ An image is the top level recipe and is used alongside the machine definition
▶ Whereas the machine describes the hardware used and its capabilities, the image
is architecture agnostic and defines how the root filesystem is built, with what
packages
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
Workflow - 7. Create an image
▶ An image is the top level recipe and is used alongside the machine definition
▶ Whereas the machine describes the hardware used and its capabilities, the image
is architecture agnostic and defines how the root filesystem is built, with what
packages
▶ By default, several images are provided in Poky:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
Workflow - 7. Create an image
▶ An image is the top level recipe and is used alongside the machine definition
▶ Whereas the machine describes the hardware used and its capabilities, the image
is architecture agnostic and defines how the root filesystem is built, with what
packages
▶ By default, several images are provided in Poky:
▶ meta*/recipes*/images/*.bb
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
Workflow - 7. Create an image
▶ An image is the top level recipe and is used alongside the machine definition
▶ Whereas the machine describes the hardware used and its capabilities, the image
is architecture agnostic and defines how the root filesystem is built, with what
packages
▶ By default, several images are provided in Poky:
▶ meta*/recipes*/images/*.bb
▶ An image is no more than a recipe
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
Workflow - 7. Create an image
▶ An image is the top level recipe and is used alongside the machine definition
▶ Whereas the machine describes the hardware used and its capabilities, the image
is architecture agnostic and defines how the root filesystem is built, with what
packages
▶ By default, several images are provided in Poky:
▶ meta*/recipes*/images/*.bb
▶ An image is no more than a recipe
▶ To create an image, simply create a .bb in an images folder
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
Workflow - 7. Create an image
▶ An image is the top level recipe and is used alongside the machine definition
▶ Whereas the machine describes the hardware used and its capabilities, the image
is architecture agnostic and defines how the root filesystem is built, with what
packages
▶ By default, several images are provided in Poky:
▶ meta*/recipes*/images/*.bb
▶ An image is no more than a recipe
▶ To create an image, simply create a .bb in an images folder
mkdir -p recipes-core/images/
touch recipes-core/images/core-image-fe.bb
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
Workflow - 7. Create an image
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
Workflow - 7. Create an image
▶ Some special configuration variables are used to describe an image:
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
Workflow - 7. Create an image
▶ Some special configuration variables are used to describe an image:
IMAGE_INSTALL List of packages to install in the generated image
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
Workflow - 7. Create an image
▶ Some special configuration variables are used to describe an image:
IMAGE_INSTALL List of packages to install in the generated image
IMAGE_FSTYPES List of formats the OpenEmbedded build system will use to
create images
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
Workflow - 7. Create an image
▶ Some special configuration variables are used to describe an image:
IMAGE_INSTALL List of packages to install in the generated image
IMAGE_FSTYPES List of formats the OpenEmbedded build system will use to
create images
✓ Create a minimal image to include it in others
⇒ Allows to have a minimal rootfs
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
Workflow - 7. Create an image
▶ Some special configuration variables are used to describe an image:
IMAGE_INSTALL List of packages to install in the generated image
IMAGE_FSTYPES List of formats the OpenEmbedded build system will use to
create images
✓ Create a minimal image to include it in others
⇒ Allows to have a minimal rootfs
✓ Create different images according to your needs: image-minimal, image-dev,
image-x11, image-qt5, etc
⇒ Install only what you really need for your board.
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
Workflow - 7. Create an image
recipes-core/images/core-image-fe.bb
inherit core-image
DESCRIPTION = "A small image to boot a device, created for Embedded Recipes"
LICENSE = "MIT"
IMAGE_FSTYPES = "tar.bz2 ext4"
IMAGE_INSTALL = "packagegroup-core-boot 
nmon 
helloworld 
"
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 30/35
Workflow - 8. Create a machine
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
▶ A machine describes your hardware
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
▶ A machine describes your hardware
▶ Stored under meta-<bsp_name>/conf/machine/*.conf
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
▶ A machine describes your hardware
▶ Stored under meta-<bsp_name>/conf/machine/*.conf
▶ The file name corresponds to the value set in the MACHINE variable
meta-ti/conf/machine/beaglebone.conf
MACHINE = "beaglebone"
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
▶ A machine describes your hardware
▶ Stored under meta-<bsp_name>/conf/machine/*.conf
▶ The file name corresponds to the value set in the MACHINE variable
meta-ti/conf/machine/beaglebone.conf
MACHINE = "beaglebone"
▶ Contains configuration variables related to the architecture, to machine’s features
and to customize the kernel image or the filesystems used.
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
▶ A machine describes your hardware
▶ Stored under meta-<bsp_name>/conf/machine/*.conf
▶ The file name corresponds to the value set in the MACHINE variable
meta-ti/conf/machine/beaglebone.conf
MACHINE = "beaglebone"
▶ Contains configuration variables related to the architecture, to machine’s features
and to customize the kernel image or the filesystems used.
TARGET_ARCH : The architecture of the device being built
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
▶ A machine describes your hardware
▶ Stored under meta-<bsp_name>/conf/machine/*.conf
▶ The file name corresponds to the value set in the MACHINE variable
meta-ti/conf/machine/beaglebone.conf
MACHINE = "beaglebone"
▶ Contains configuration variables related to the architecture, to machine’s features
and to customize the kernel image or the filesystems used.
TARGET_ARCH : The architecture of the device being built
PREFERRED_PROVIDER_virtual/kernel : The kernel recipe to use
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
▶ A machine describes your hardware
▶ Stored under meta-<bsp_name>/conf/machine/*.conf
▶ The file name corresponds to the value set in the MACHINE variable
meta-ti/conf/machine/beaglebone.conf
MACHINE = "beaglebone"
▶ Contains configuration variables related to the architecture, to machine’s features
and to customize the kernel image or the filesystems used.
TARGET_ARCH : The architecture of the device being built
PREFERRED_PROVIDER_virtual/kernel : The kernel recipe to use
SERIAL_CONSOLE : Speed and device for the serial console to attach. Passed
to the kernel as the console parameter, e.g. 115200 ttyS0
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
▶ A machine describes your hardware
▶ Stored under meta-<bsp_name>/conf/machine/*.conf
▶ The file name corresponds to the value set in the MACHINE variable
meta-ti/conf/machine/beaglebone.conf
MACHINE = "beaglebone"
▶ Contains configuration variables related to the architecture, to machine’s features
and to customize the kernel image or the filesystems used.
TARGET_ARCH : The architecture of the device being built
PREFERRED_PROVIDER_virtual/kernel : The kernel recipe to use
SERIAL_CONSOLE : Speed and device for the serial console to attach. Passed
to the kernel as the console parameter, e.g. 115200 ttyS0
KERNEL_IMAGETYPE : The type of kernel image to build, e.g. zImage
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
▶ A machine describes your hardware
▶ Stored under meta-<bsp_name>/conf/machine/*.conf
▶ The file name corresponds to the value set in the MACHINE variable
meta-ti/conf/machine/beaglebone.conf
MACHINE = "beaglebone"
▶ Contains configuration variables related to the architecture, to machine’s features
and to customize the kernel image or the filesystems used.
TARGET_ARCH : The architecture of the device being built
PREFERRED_PROVIDER_virtual/kernel : The kernel recipe to use
SERIAL_CONSOLE : Speed and device for the serial console to attach. Passed
to the kernel as the console parameter, e.g. 115200 ttyS0
KERNEL_IMAGETYPE : The type of kernel image to build, e.g. zImage
✓ Describe your machine in a README file
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
Workflow - 8. Create a machine
conf/machine/fe-machine.conf
require conf/machine/include/soc-family.inc
require conf/machine/include/tune-cortexa5.inc
TARGET_ARCH = "arm"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-at91"
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-at91"
KERNEL_IMAGETYPE = "zImage"
KERNEL_DEVICETREE = "at91-sama5d3_xplained.dtb"
SERIAL_CONSOLE ?= "115200 ttyS0"
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 32/35
Conclusion
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 33/35
Embedded Recipes Conference - 2017
Thank you for listening!
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 34/35
Questions?
Mylène Josserand
mylene@free-electrons.com
Slides under CC-BY-SA 3.0
http://free-electrons.com/pub/conferences/2017/embedded-recipes/josserand-introduction-to-yocto-
project/
Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 35/35

More Related Content

What's hot

Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
mukul bhardwaj
 
Yocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration InitiativeYocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration Initiative
Marcelo Sanz
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
 
Linux kernel
Linux kernelLinux kernel
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
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
Yen-Chin Lee
 
Unix
UnixUnix
Unix
Erm78
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
Macpaul Lin
 
Page cache in Linux kernel
Page cache in Linux kernelPage cache in Linux kernel
Page cache in Linux kernel
Adrian Huang
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
RuggedBoardGroup
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
shimosawa
 
Yocto project
Yocto projectYocto project
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
linuxlab_conf
 
Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
Emertxe Information Technologies Pvt Ltd
 
tmux
tmuxtmux
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Project
rossburton
 
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
linuxlab_conf
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
Yi-Hsiu Hsu
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
guest547d74
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development Training
Stephan Cadene
 

What's hot (20)

Basic Linux Internals
Basic Linux InternalsBasic Linux Internals
Basic Linux Internals
 
Yocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration InitiativeYocto Project Open Source Build System and Collaboration Initiative
Yocto Project Open Source Build System and Collaboration Initiative
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
Linux Internals - Part I
 
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
 
Unix
UnixUnix
Unix
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
 
Page cache in Linux kernel
Page cache in Linux kernelPage cache in Linux kernel
Page cache in Linux kernel
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
Yocto project
Yocto projectYocto project
Yocto project
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
 
tmux
tmuxtmux
tmux
 
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Project
 
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
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development Training
 

Similar to Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène Josserand

Android slides
Android slidesAndroid slides
Android slides
Victor Solis
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
Jaime Barragan
 
Getting Started with Buildroot
Getting Started with BuildrootGetting Started with Buildroot
Getting Started with Buildroot
Trevor Woerner
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded training
H Ming
 
Kernel Recipes 2014 - Supporting a new ARM platform: the Allwinner example
Kernel Recipes 2014 - Supporting a new ARM platform: the Allwinner exampleKernel Recipes 2014 - Supporting a new ARM platform: the Allwinner example
Kernel Recipes 2014 - Supporting a new ARM platform: the Allwinner example
Anne Nicolas
 
Kernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootKernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using Buildroot
Anne Nicolas
 
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
Mender.io
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primer
Drew Fustini
 
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
Dominopoint - Italian Lotus User Group
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
Ulrich Krause
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
Mender.io
 
Introduction to FOSS world
Introduction to FOSS worldIntroduction to FOSS world
Introduction to FOSS world
Narendra Sisodiya
 
BITS: Introduction to linux, distributions and installation
BITS: Introduction to linux, distributions and installationBITS: Introduction to linux, distributions and installation
BITS: Introduction to linux, distributions and installation
BITS
 
[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework
ICS
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020
Lorenzo Miniero
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
Mender.io
 
DEVASC_Module_1.pdf
DEVASC_Module_1.pdfDEVASC_Module_1.pdf
DEVASC_Module_1.pdf
MorooCoffee
 
Universal Userland
Universal UserlandUniversal Userland
Universal Userland
Sean Chittenden
 
Vimeo and Open Source (SMPTE Forum 2015)
Vimeo and Open Source (SMPTE Forum 2015)Vimeo and Open Source (SMPTE Forum 2015)
Vimeo and Open Source (SMPTE Forum 2015)
Derek Buitenhuis
 
Forget about-e committees
Forget about-e committeesForget about-e committees
Forget about-e committees
Harish Pillay
 

Similar to Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène Josserand (20)

Android slides
Android slidesAndroid slides
Android slides
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
 
Getting Started with Buildroot
Getting Started with BuildrootGetting Started with Buildroot
Getting Started with Buildroot
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded training
 
Kernel Recipes 2014 - Supporting a new ARM platform: the Allwinner example
Kernel Recipes 2014 - Supporting a new ARM platform: the Allwinner exampleKernel Recipes 2014 - Supporting a new ARM platform: the Allwinner example
Kernel Recipes 2014 - Supporting a new ARM platform: the Allwinner example
 
Kernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootKernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using Buildroot
 
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
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primer
 
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
The Latest and Greatest from OpenNTF and the IBM Social Business Toolkit, #dd13
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
 
Introduction to FOSS world
Introduction to FOSS worldIntroduction to FOSS world
Introduction to FOSS world
 
BITS: Introduction to linux, distributions and installation
BITS: Introduction to linux, distributions and installationBITS: Introduction to linux, distributions and installation
BITS: Introduction to linux, distributions and installation
 
[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework[Webinar] An Introduction to the Yocto Embedded Framework
[Webinar] An Introduction to the Yocto Embedded Framework
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
 
DEVASC_Module_1.pdf
DEVASC_Module_1.pdfDEVASC_Module_1.pdf
DEVASC_Module_1.pdf
 
Universal Userland
Universal UserlandUniversal Userland
Universal Userland
 
Vimeo and Open Source (SMPTE Forum 2015)
Vimeo and Open Source (SMPTE Forum 2015)Vimeo and Open Source (SMPTE Forum 2015)
Vimeo and Open Source (SMPTE Forum 2015)
 
Forget about-e committees
Forget about-e committeesForget about-e committees
Forget about-e committees
 

More from Anne Nicolas

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
Anne Nicolas
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Anne Nicolas
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Anne Nicolas
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
Anne Nicolas
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Anne Nicolas
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Anne Nicolas
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Anne Nicolas
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Anne Nicolas
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Anne Nicolas
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
Anne Nicolas
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Anne Nicolas
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Anne Nicolas
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
Anne Nicolas
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
Anne Nicolas
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
Anne Nicolas
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
Anne Nicolas
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Anne Nicolas
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Anne Nicolas
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
Anne Nicolas
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Anne Nicolas
 

More from Anne Nicolas (20)

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
 

Recently uploaded

Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 

Recently uploaded (20)

Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 

Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène Josserand

  • 1. Embedded Recipes Conference - 2017 Introduction to the Yocto Project / OpenEmbedded-core Mylène Josserand Free Electrons mylene@free-electrons.com Embedded Linux Experts Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 1/35
  • 2. Mylène Josserand ▶ Embedded Linux engineer at Free Electrons since 2016 ▶ Embedded Linux expertise ▶ Development, consulting and training around the Yocto Project ▶ One of the authors of Free Electrons’ Yocto Project / OpenEmbedded training materials. ▶ Kernel contributor: audio driver, touchscreen, RTC and more to come! Embedded Linux Experts Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 2/35
  • 3. Introduction ▶ In this talk, we will: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
  • 4. Introduction ▶ In this talk, we will: ▶ Understand why we should use a build system Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
  • 5. Introduction ▶ In this talk, we will: ▶ Understand why we should use a build system ▶ How the Yocto Project / OpenEmbedded core are structured Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
  • 6. Introduction ▶ In this talk, we will: ▶ Understand why we should use a build system ▶ How the Yocto Project / OpenEmbedded core are structured ▶ How we can use it Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
  • 7. Introduction ▶ In this talk, we will: ▶ Understand why we should use a build system ▶ How the Yocto Project / OpenEmbedded core are structured ▶ How we can use it ▶ How we can update it to fit our needs Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
  • 8. Introduction ▶ In this talk, we will: ▶ Understand why we should use a build system ▶ How the Yocto Project / OpenEmbedded core are structured ▶ How we can use it ▶ How we can update it to fit our needs ▶ Give some good practices to start using the Yocto Project correctly Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
  • 9. Introduction ▶ In this talk, we will: ▶ Understand why we should use a build system ▶ How the Yocto Project / OpenEmbedded core are structured ▶ How we can use it ▶ How we can update it to fit our needs ▶ Give some good practices to start using the Yocto Project correctly ▶ Allows to customize many things: it is easy to do things the wrong way Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
  • 10. Introduction ▶ In this talk, we will: ▶ Understand why we should use a build system ▶ How the Yocto Project / OpenEmbedded core are structured ▶ How we can use it ▶ How we can update it to fit our needs ▶ Give some good practices to start using the Yocto Project correctly ▶ Allows to customize many things: it is easy to do things the wrong way ▶ When you see a ✓, it means it is a good practice! Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 3/35
  • 11. Why use a build system? Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
  • 12. Why use a build system? ▶ In the Embedded world, we have many constraints Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
  • 13. Why use a build system? ▶ In the Embedded world, we have many constraints ▶ Nice to reduce the system to a minimal one + add our custom application Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
  • 14. Why use a build system? ▶ In the Embedded world, we have many constraints ▶ Nice to reduce the system to a minimal one + add our custom application ▶ A build system will automate the creation of the system in a reproducible way Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
  • 15. Why use a build system? ▶ In the Embedded world, we have many constraints ▶ Nice to reduce the system to a minimal one + add our custom application ▶ A build system will automate the creation of the system in a reproducible way ▶ Integration means packaging applications to create a final image Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 4/35
  • 16. System integration: several possibilities ▶ Building everything manually: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 17. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 18. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 19. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 20. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 21. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 22. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size) Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 23. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size)⊗ Hard to rebuild from source Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 24. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size)⊗ Hard to rebuild from source⊗ Native-compilation Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 25. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size)⊗ Hard to rebuild from source⊗ Native-compilation⊗ Not available for all architectures Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 26. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size)⊗ Hard to rebuild from source⊗ Native-compilation⊗ Not available for all architectures ▶ Build systems (Buildroot, the Yocto Project, etc): Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 27. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size)⊗ Hard to rebuild from source⊗ Native-compilation⊗ Not available for all architectures ▶ Build systems (Buildroot, the Yocto Project, etc): ⊗ Not as easy as a binary distribution Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 28. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size)⊗ Hard to rebuild from source⊗ Native-compilation⊗ Not available for all architectures ▶ Build systems (Buildroot, the Yocto Project, etc): ⊗ Not as easy as a binary distribution⊕ Nearly full flexibility Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 29. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size)⊗ Hard to rebuild from source⊗ Native-compilation⊗ Not available for all architectures ▶ Build systems (Buildroot, the Yocto Project, etc): ⊗ Not as easy as a binary distribution⊕ Nearly full flexibility⊕ Built from source: customization and optimization are easy Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 30. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size)⊗ Hard to rebuild from source⊗ Native-compilation⊗ Not available for all architectures ▶ Build systems (Buildroot, the Yocto Project, etc): ⊗ Not as easy as a binary distribution⊕ Nearly full flexibility⊕ Built from source: customization and optimization are easy⊕ Fully reproducible Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 31. System integration: several possibilities ▶ Building everything manually: ⊕ Full flexibility⊗ Dependency hell⊗ Lack of reproducibility ▶ Binary distribution (Debian, Ubuntu, Fedora, etc): ⊕ Easy to create and extend⊗ Hard to customize and optimize (boot time, size)⊗ Hard to rebuild from source⊗ Native-compilation⊗ Not available for all architectures ▶ Build systems (Buildroot, the Yocto Project, etc): ⊗ Not as easy as a binary distribution⊕ Nearly full flexibility⊕ Built from source: customization and optimization are easy⊕ Fully reproducible⊕ Cross-compilation Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 5/35
  • 32. Representation in the Yocto Project Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
  • 33. Representation in the Yocto Project Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
  • 34. Representation in the Yocto Project Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
  • 35. Representation in the Yocto Project Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
  • 36. Representation in the Yocto Project Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
  • 37. Representation in the Yocto Project ▶ Common tasks defined in OpenEmbedded core Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
  • 38. Representation in the Yocto Project ▶ Common tasks defined in OpenEmbedded core ▶ Many recipes availables for many applications: organized in layers Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
  • 39. Representation in the Yocto Project ▶ Common tasks defined in OpenEmbedded core ▶ Many recipes availables for many applications: organized in layers ▶ Allow to build custom embedded Linux-based systems Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
  • 40. Representation in the Yocto Project ▶ Common tasks defined in OpenEmbedded core ▶ Many recipes availables for many applications: organized in layers ▶ Allow to build custom embedded Linux-based systems ⇒ This is the aim of the Yocto Project Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 6/35
  • 41. OpenEmbedded core & Poky Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 42. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 43. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 44. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes ▶ It is the core of all the magic Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 45. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes ▶ It is the core of all the magic ▶ It supports the ARM, MIPS (32 and 64 bits), PowerPC and x86 (32 and 64 bits) architectures + QEMU Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 46. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes ▶ It is the core of all the magic ▶ It supports the ARM, MIPS (32 and 64 bits), PowerPC and x86 (32 and 64 bits) architectures + QEMU Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 47. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes ▶ It is the core of all the magic ▶ It supports the ARM, MIPS (32 and 64 bits), PowerPC and x86 (32 and 64 bits) architectures + QEMU ▶ Reference distribution of the Yocto Project Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 48. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes ▶ It is the core of all the magic ▶ It supports the ARM, MIPS (32 and 64 bits), PowerPC and x86 (32 and 64 bits) architectures + QEMU ▶ Reference distribution of the Yocto Project ▶ Contains everything you need to start a project: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 49. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes ▶ It is the core of all the magic ▶ It supports the ARM, MIPS (32 and 64 bits), PowerPC and x86 (32 and 64 bits) architectures + QEMU ▶ Reference distribution of the Yocto Project ▶ Contains everything you need to start a project: ▶ OpenEmbedded-core Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 50. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes ▶ It is the core of all the magic ▶ It supports the ARM, MIPS (32 and 64 bits), PowerPC and x86 (32 and 64 bits) architectures + QEMU ▶ Reference distribution of the Yocto Project ▶ Contains everything you need to start a project: ▶ OpenEmbedded-core ▶ Bitbake Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 51. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes ▶ It is the core of all the magic ▶ It supports the ARM, MIPS (32 and 64 bits), PowerPC and x86 (32 and 64 bits) architectures + QEMU ▶ Reference distribution of the Yocto Project ▶ Contains everything you need to start a project: ▶ OpenEmbedded-core ▶ Bitbake ▶ Additional layers Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 52. OpenEmbedded core & Poky ▶ Co-maintained by the Yocto Project and OpenEmbedded Project ▶ Set of base layer with recipes and classes ▶ It is the core of all the magic ▶ It supports the ARM, MIPS (32 and 64 bits), PowerPC and x86 (32 and 64 bits) architectures + QEMU ▶ Reference distribution of the Yocto Project ▶ Contains everything you need to start a project: ▶ OpenEmbedded-core ▶ Bitbake ▶ Additional layers ▶ Also contains some useful tools to ease recipes and layers’ creation Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 7/35
  • 53. The Yocto Project / OpenEmbedded Core / Poky Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 8/35
  • 54. Workflow - General Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 9/35
  • 55. Workflow - General Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 9/35
  • 56. Workflow - General Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 9/35
  • 57. Workflow - Users/Developers actions Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 10/35
  • 58. Workflow - 1. Download Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
  • 59. Workflow - 1. Download ▶ Find which version you want to use: Figure: https://wiki.yoctoproject.org/wiki/Releases Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
  • 60. Workflow - 1. Download ▶ Find which version you want to use: Figure: https://wiki.yoctoproject.org/wiki/Releases ▶ Support level: Development, Stable, Community Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
  • 61. Workflow - 1. Download ▶ Find which version you want to use: Figure: https://wiki.yoctoproject.org/wiki/Releases ▶ Support level: Development, Stable, Community ▶ A codename corresponds to a Poky and Bitbake versions Pyro = Yocto Project v2.3 → Poky v17.0 & Bitbake v1.34 Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
  • 62. Workflow - 1. Download ▶ Find which version you want to use: Figure: https://wiki.yoctoproject.org/wiki/Releases ▶ Support level: Development, Stable, Community ▶ A codename corresponds to a Poky and Bitbake versions Pyro = Yocto Project v2.3 → Poky v17.0 & Bitbake v1.34 ▶ How to download: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
  • 63. Workflow - 1. Download ▶ Find which version you want to use: Figure: https://wiki.yoctoproject.org/wiki/Releases ▶ Support level: Development, Stable, Community ▶ A codename corresponds to a Poky and Bitbake versions Pyro = Yocto Project v2.3 → Poky v17.0 & Bitbake v1.34 ▶ How to download: git clone -b pyro git://git.yoctoproject.org/poky.git Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 11/35
  • 64. Workflow - 1. Download ▶ Layers are sets of recipes, matching a common purpose. To simplify things, they are just folders Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
  • 65. Workflow - 1. Download ▶ Layers are sets of recipes, matching a common purpose. To simplify things, they are just folders ▶ Look at existing layers Figure: http://layers.openembedded.org/layerindex/ Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
  • 66. Workflow - 1. Download ▶ Layers are sets of recipes, matching a common purpose. To simplify things, they are just folders ▶ Look at existing layers Figure: http://layers.openembedded.org/layerindex/ ▶ Download all other layers on same branch than Poky: Pyro Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
  • 67. Workflow - 1. Download ▶ Layers are sets of recipes, matching a common purpose. To simplify things, they are just folders ▶ Look at existing layers Figure: http://layers.openembedded.org/layerindex/ ▶ Download all other layers on same branch than Poky: Pyro ✓ Use existing layers before creating a new one ⇒ saves you time Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
  • 68. Workflow - 1. Download ▶ Layers are sets of recipes, matching a common purpose. To simplify things, they are just folders ▶ Look at existing layers Figure: http://layers.openembedded.org/layerindex/ ▶ Download all other layers on same branch than Poky: Pyro ✓ Use existing layers before creating a new one ⇒ saves you time ✓ DO NOT EDIT POKY/UPSTREAM LAYERS ⇒ complicates updates Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 12/35
  • 69. Workflow - 2. Configure the build Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
  • 70. Workflow - 2. Configure the build ▶ A script with all variables needed by Bitbake must be sourced: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
  • 71. Workflow - 2. Configure the build ▶ A script with all variables needed by Bitbake must be sourced: source oe-init-build-env Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
  • 72. Workflow - 2. Configure the build ▶ A script with all variables needed by Bitbake must be sourced: source oe-init-build-env ▶ Will move you in a build folder Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
  • 73. Workflow - 2. Configure the build ▶ A script with all variables needed by Bitbake must be sourced: source oe-init-build-env ▶ Will move you in a build folder ▶ Now, can run any commands Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
  • 74. Workflow - 2. Configure the build ▶ A script with all variables needed by Bitbake must be sourced: source oe-init-build-env ▶ Will move you in a build folder ▶ Now, can run any commands ▶ All the local configurations are in the conf folder Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
  • 75. Workflow - 2. Configure the build ▶ A script with all variables needed by Bitbake must be sourced: source oe-init-build-env ▶ Will move you in a build folder ▶ Now, can run any commands ▶ All the local configurations are in the conf folder build/ |-- conf |-- bblayers.conf |-- local.conf Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
  • 76. Workflow - 2. Configure the build ▶ A script with all variables needed by Bitbake must be sourced: source oe-init-build-env ▶ Will move you in a build folder ▶ Now, can run any commands ▶ All the local configurations are in the conf folder build/ |-- conf |-- bblayers.conf |-- local.conf ▶ Edit your bblayers.conf with possible additional layers: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
  • 77. Workflow - 2. Configure the build ▶ A script with all variables needed by Bitbake must be sourced: source oe-init-build-env ▶ Will move you in a build folder ▶ Now, can run any commands ▶ All the local configurations are in the conf folder build/ |-- conf |-- bblayers.conf |-- local.conf ▶ Edit your bblayers.conf with possible additional layers: BBLAYERS ?= " /home/mylene/yocto/poky/meta /home/mylene/yocto/poky/meta-poky /home/mylene/yocto/poky/meta-yocto-bsp /home/mylene/yocto/meta-freescale /home/mylene/yocto/meta-qt5 " Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 13/35
  • 78. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 79. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 80. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders ▶ poky: beaglebone, x86, x86-64 Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 81. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders ▶ poky: beaglebone, x86, x86-64 ▶ meta-ti: beagleboard, pandaboard, ... Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 82. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders ▶ poky: beaglebone, x86, x86-64 ▶ meta-ti: beagleboard, pandaboard, ... ▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ... Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 83. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders ▶ poky: beaglebone, x86, x86-64 ▶ meta-ti: beagleboard, pandaboard, ... ▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ... ▶ meta-atmel: at91*, sama5d*, ... Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 84. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders ▶ poky: beaglebone, x86, x86-64 ▶ meta-ti: beagleboard, pandaboard, ... ▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ... ▶ meta-atmel: at91*, sama5d*, ... ▶ DISTRO: Represents the top-level configuration that will apply to every build. It will include tools needed to use your hardware: compiler, libC, etc + some specific variables Look at conf/distro/ folders Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 85. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders ▶ poky: beaglebone, x86, x86-64 ▶ meta-ti: beagleboard, pandaboard, ... ▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ... ▶ meta-atmel: at91*, sama5d*, ... ▶ DISTRO: Represents the top-level configuration that will apply to every build. It will include tools needed to use your hardware: compiler, libC, etc + some specific variables Look at conf/distro/ folders ▶ poky: poky, poky-tiny, ... Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 86. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders ▶ poky: beaglebone, x86, x86-64 ▶ meta-ti: beagleboard, pandaboard, ... ▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ... ▶ meta-atmel: at91*, sama5d*, ... ▶ DISTRO: Represents the top-level configuration that will apply to every build. It will include tools needed to use your hardware: compiler, libC, etc + some specific variables Look at conf/distro/ folders ▶ poky: poky, poky-tiny, ... ▶ meta-angstrom: angstrom Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 87. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders ▶ poky: beaglebone, x86, x86-64 ▶ meta-ti: beagleboard, pandaboard, ... ▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ... ▶ meta-atmel: at91*, sama5d*, ... ▶ DISTRO: Represents the top-level configuration that will apply to every build. It will include tools needed to use your hardware: compiler, libC, etc + some specific variables Look at conf/distro/ folders ▶ poky: poky, poky-tiny, ... ▶ meta-angstrom: angstrom ▶ Noticed that local.conf ⇒ only for the local workstation. Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 88. Workflow - 2. Configure the build ▶ Edit local.conf with your MACHINE and your DISTRO ▶ MACHINE: Describes your hardware. Can find it under specific layers: BSP layers. Look at conf/machine/ folders ▶ poky: beaglebone, x86, x86-64 ▶ meta-ti: beagleboard, pandaboard, ... ▶ meta-fsl-arm: imx23, imx28, imx6, imx7, ... ▶ meta-atmel: at91*, sama5d*, ... ▶ DISTRO: Represents the top-level configuration that will apply to every build. It will include tools needed to use your hardware: compiler, libC, etc + some specific variables Look at conf/distro/ folders ▶ poky: poky, poky-tiny, ... ▶ meta-angstrom: angstrom ▶ Noticed that local.conf ⇒ only for the local workstation. ✓ Avoid changes directly in local.conf (or only for test purposes, except for some variables such as MACHINE and DISTRO) Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 14/35
  • 89. Workflow - 3. Build an image Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
  • 90. Workflow - 3. Build an image ▶ What is an IMAGE? ⇒ Represents your root filesystem: all your applications, libraries, configuration files, ... Will find it under recipes-*/images/ Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
  • 91. Workflow - 3. Build an image ▶ What is an IMAGE? ⇒ Represents your root filesystem: all your applications, libraries, configuration files, ... Will find it under recipes-*/images/ ▶ Common images already exist in Poky: core-image-minimal, core-image-base, core-image-x11, ... Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
  • 92. Workflow - 3. Build an image ▶ What is an IMAGE? ⇒ Represents your root filesystem: all your applications, libraries, configuration files, ... Will find it under recipes-*/images/ ▶ Common images already exist in Poky: core-image-minimal, core-image-base, core-image-x11, ... ▶ Build an existing image: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
  • 93. Workflow - 3. Build an image ▶ What is an IMAGE? ⇒ Represents your root filesystem: all your applications, libraries, configuration files, ... Will find it under recipes-*/images/ ▶ Common images already exist in Poky: core-image-minimal, core-image-base, core-image-x11, ... ▶ Build an existing image: bitbake core-image-minimal Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 15/35
  • 94. MACHINE/DISTRO/IMAGE: a little reminder Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
  • 95. MACHINE/DISTRO/IMAGE: a little reminder ▶ Machine: It represents your hardware conf/machine/ Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
  • 96. MACHINE/DISTRO/IMAGE: a little reminder ▶ Machine: It represents your hardware conf/machine/ Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
  • 97. MACHINE/DISTRO/IMAGE: a little reminder ▶ Machine: It represents your hardware conf/machine/ ▶ Distro: Represents the top-level configuration that will apply on every build conf/distro/ Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
  • 98. MACHINE/DISTRO/IMAGE: a little reminder ▶ Machine: It represents your hardware conf/machine/ ▶ Distro: Represents the top-level configuration that will apply on every build conf/distro/ Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
  • 99. MACHINE/DISTRO/IMAGE: a little reminder ▶ Machine: It represents your hardware conf/machine/ ▶ Distro: Represents the top-level configuration that will apply on every build conf/distro/ ▶ Image: It represents your root filesystem itself: all your applications, libraries, configuration’s files, etc recipes-core/images Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
  • 100. MACHINE/DISTRO/IMAGE: a little reminder ▶ Machine: It represents your hardware conf/machine/ ▶ Distro: Represents the top-level configuration that will apply on every build conf/distro/ ▶ Image: It represents your root filesystem itself: all your applications, libraries, configuration’s files, etc recipes-core/images Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 16/35
  • 101. Workflow - Developer Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 17/35
  • 102. Workflow - 4. Create a layer Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
  • 103. Workflow - 4. Create a layer ▶ You may have custom hardware, need to update recipes from upstream layers, integrate your own application, etc Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
  • 104. Workflow - 4. Create a layer ▶ You may have custom hardware, need to update recipes from upstream layers, integrate your own application, etc ▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
  • 105. Workflow - 4. Create a layer ▶ You may have custom hardware, need to update recipes from upstream layers, integrate your own application, etc ▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS ▶ To be able to do that, we will create our own layer that will host all our modifications/applications Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
  • 106. Workflow - 4. Create a layer ▶ You may have custom hardware, need to update recipes from upstream layers, integrate your own application, etc ▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS ▶ To be able to do that, we will create our own layer that will host all our modifications/applications ▶ Poky provides a tool to create layers: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
  • 107. Workflow - 4. Create a layer ▶ You may have custom hardware, need to update recipes from upstream layers, integrate your own application, etc ▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS ▶ To be able to do that, we will create our own layer that will host all our modifications/applications ▶ Poky provides a tool to create layers: yocto-layer create <layer_name> -o <dest_dir> Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
  • 108. Workflow - 4. Create a layer ▶ You may have custom hardware, need to update recipes from upstream layers, integrate your own application, etc ▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS ▶ To be able to do that, we will create our own layer that will host all our modifications/applications ▶ Poky provides a tool to create layers: yocto-layer create <layer_name> -o <dest_dir> ✓ The layer’s name must be meta-* (done automatically using yocto-layer tool) Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
  • 109. Workflow - 4. Create a layer ▶ You may have custom hardware, need to update recipes from upstream layers, integrate your own application, etc ▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS ▶ To be able to do that, we will create our own layer that will host all our modifications/applications ▶ Poky provides a tool to create layers: yocto-layer create <layer_name> -o <dest_dir> ✓ The layer’s name must be meta-* (done automatically using yocto-layer tool) ✓ Avoid uppercase and funny/long names Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
  • 110. Workflow - 4. Create a layer ▶ You may have custom hardware, need to update recipes from upstream layers, integrate your own application, etc ▶ Already said before: DO NOT EDIT POKY/UPSTREAM LAYERS ▶ To be able to do that, we will create our own layer that will host all our modifications/applications ▶ Poky provides a tool to create layers: yocto-layer create <layer_name> -o <dest_dir> ✓ The layer’s name must be meta-* (done automatically using yocto-layer tool) ✓ Avoid uppercase and funny/long names ✓ If you have different projects with common parts, try to create two layers ⇒ Can re-use some parts Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 18/35
  • 111. Workflow - 5. Create a recipe Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
  • 112. Workflow - 5. Create a recipe ▶ A recipe is a file describing tasks for an application to: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
  • 113. Workflow - 5. Create a recipe ▶ A recipe is a file describing tasks for an application to: ▶ retrieve its sources Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
  • 114. Workflow - 5. Create a recipe ▶ A recipe is a file describing tasks for an application to: ▶ retrieve its sources ▶ configure it Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
  • 115. Workflow - 5. Create a recipe ▶ A recipe is a file describing tasks for an application to: ▶ retrieve its sources ▶ configure it ▶ compile it Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
  • 116. Workflow - 5. Create a recipe ▶ A recipe is a file describing tasks for an application to: ▶ retrieve its sources ▶ configure it ▶ compile it ▶ install it Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
  • 117. Workflow - 5. Create a recipe ▶ A recipe is a file describing tasks for an application to: ▶ retrieve its sources ▶ configure it ▶ compile it ▶ install it ▶ It handles all the dependencies for you. Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
  • 118. Workflow - 5. Create a recipe ▶ A recipe is a file describing tasks for an application to: ▶ retrieve its sources ▶ configure it ▶ compile it ▶ install it ▶ It handles all the dependencies for you. ▶ Many common tasks are already defined by OpenEmbedded-core Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
  • 119. Workflow - 5. Create a recipe ▶ A recipe is a file describing tasks for an application to: ▶ retrieve its sources ▶ configure it ▶ compile it ▶ install it ▶ It handles all the dependencies for you. ▶ Many common tasks are already defined by OpenEmbedded-core ▶ Organized in folders with the same purpose (recipes-core, recipes-bsp, recipes-kernel, recipes-devtool, recipes-support, ...) and a sub-folder with the application’s name Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 19/35
  • 120. Workflow - 5. Create a recipe ▶ To create a recipe, you have to create a .bb file. It is the format that bitbake understands Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
  • 121. Workflow - 5. Create a recipe ▶ To create a recipe, you have to create a .bb file. It is the format that bitbake understands ▶ The format of a recipe file name is <application-name>_<version>.bb Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
  • 122. Workflow - 5. Create a recipe ▶ To create a recipe, you have to create a .bb file. It is the format that bitbake understands ▶ The format of a recipe file name is <application-name>_<version>.bb ▶ A recipe can be divided in three parts: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
  • 123. Workflow - 5. Create a recipe ▶ To create a recipe, you have to create a .bb file. It is the format that bitbake understands ▶ The format of a recipe file name is <application-name>_<version>.bb ▶ A recipe can be divided in three parts: ▶ The header: what/who. Description of the application Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
  • 124. Workflow - 5. Create a recipe ▶ To create a recipe, you have to create a .bb file. It is the format that bitbake understands ▶ The format of a recipe file name is <application-name>_<version>.bb ▶ A recipe can be divided in three parts: ▶ The header: what/who. Description of the application ▶ The sources: where. Can be tarballs, remote repository, ... Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
  • 125. Workflow - 5. Create a recipe ▶ To create a recipe, you have to create a .bb file. It is the format that bitbake understands ▶ The format of a recipe file name is <application-name>_<version>.bb ▶ A recipe can be divided in three parts: ▶ The header: what/who. Description of the application ▶ The sources: where. Can be tarballs, remote repository, ... ▶ The tasks: how. How to proceed with the application’s sources Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
  • 126. Workflow - 5. Create a recipe ▶ To create a recipe, you have to create a .bb file. It is the format that bitbake understands ▶ The format of a recipe file name is <application-name>_<version>.bb ▶ A recipe can be divided in three parts: ▶ The header: what/who. Description of the application ▶ The sources: where. Can be tarballs, remote repository, ... ▶ The tasks: how. How to proceed with the application’s sources ▶ Classes are available for tasks commonly used: kernel, CMake, autotools, ... Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 20/35
  • 127. Workflow - 5. Create a recipe recipes-support/nmon/nmon_13g.bb SUMMARY = "nmon performance monitor" HOMEPAGE = "http://nmon.sf.net" SECTION = "console/utils" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a" DEPENDS = "ncurses" SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon13g.c;name=lmon ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc " SRC_URI[lmon.md5sum] = "b1b8e6c0123ad232394991f2d4f40494" SRC_URI[lmon.sha256sum] = "456ab2a342b31d1a352d0d940af5962fa65a12ae8757ff73e6e73210832ae8b5" SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a" SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278" CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM" LDFLAGS += "-ltinfo -lncursesw" do_compile() { ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/lmon13g.c -o nmon } do_install() { install -d ${D}${bindir} install -m 0755 nmon ${D}${bindir} } Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 21/35
  • 128. Workflow - 5. Create a recipe recipes-support/nmon/nmon_13g.bb | SUMMARY = "nmon performance monitor" | HOMEPAGE = "http://nmon.sf.net" | SECTION = "console/utils" "Header" | LICENSE = "GPLv3" | LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a" | DEPENDS = "ncurses" | SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon13g.c;name=lmon | ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc | " | SRC_URI[lmon.md5sum] = "b1b8e6c0123ad232394991f2d4f40494" "Source" | SRC_URI[lmon.sha256sum] = "456ab2a342b31d1a352d0d940af5962fa65a12ae8757ff73e6e73210832ae8b5" | SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a" | SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278" | CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM" | LDFLAGS += "-ltinfo -lncursesw" | | do_compile() { | ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/lmon13g.c -o nmon "Tasks" | } | | do_install() { | install -d ${D}${bindir} | install -m 0755 nmon ${D}${bindir} | } Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 22/35
  • 129. Workflow - 5. Create a recipe recipes-example/helloworld/helloworld_1.0.bb DESCRIPTION = "Print a friendly, customizable greeting" HOMEPAGE = "https://www.gnu.org/software/hello/" PRIORITY = "optional" SECTION = "examples" LICENSE = "GPLv3" SRC_URI = "${GNU_MIRROR}/hello/hello-${PV}.tar.gz" SRC_URI[md5sum] = "67607d2616a0faaf5bc94c59dca7c3cb" SRC_URI[sha256sum] = "ecbb7a2214196c57ff9340aa71458e1559abd38f6d8d169666846935df191ea7" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" inherit autotools Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 23/35
  • 130. Workflow - 5. Create a recipe recipes-example/helloworld/helloworld_1.0.bb | DESCRIPTION = "Print a friendly, customizable greeting" | HOMEPAGE = "https://www.gnu.org/software/hello/" "Header" | PRIORITY = "optional" | SECTION = "examples" | LICENSE = "GPLv3" | SRC_URI = "${GNU_MIRROR}/hello/hello-${PV}.tar.gz" "Source" | SRC_URI[md5sum] = "67607d2616a0faaf5bc94c59dca7c3cb" | SRC_URI[sha256sum] = "ecbb7a2214196c57ff9340aa71458e1559abd38f6d8d169666846935df191ea7" | LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" "Tasks" | inherit autotools Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 24/35
  • 131. Workflow - 5. Create a recipe ✓ Always use remote repositories to host your application sources ⇒ Makes development quicker + keep history Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
  • 132. Workflow - 5. Create a recipe ✓ Always use remote repositories to host your application sources ⇒ Makes development quicker + keep history ✓ Do not put application sources in your layer directly! ⇒ Application development ̸= Application Integration Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
  • 133. Workflow - 5. Create a recipe ✓ Always use remote repositories to host your application sources ⇒ Makes development quicker + keep history ✓ Do not put application sources in your layer directly! ⇒ Application development ̸= Application Integration ✓ Keep the same folder organization: recipes-core/recipes-bsp/recipes-devtools/... ⇒ Find recipes quicker Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
  • 134. Workflow - 5. Create a recipe ✓ Always use remote repositories to host your application sources ⇒ Makes development quicker + keep history ✓ Do not put application sources in your layer directly! ⇒ Application development ̸= Application Integration ✓ Keep the same folder organization: recipes-core/recipes-bsp/recipes-devtools/... ⇒ Find recipes quicker ✓ Keep the headers / sources / tasks organization in the recipe ⇒ All the recipes have the same content organization Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
  • 135. Workflow - 5. Create a recipe ✓ Always use remote repositories to host your application sources ⇒ Makes development quicker + keep history ✓ Do not put application sources in your layer directly! ⇒ Application development ̸= Application Integration ✓ Keep the same folder organization: recipes-core/recipes-bsp/recipes-devtools/... ⇒ Find recipes quicker ✓ Keep the headers / sources / tasks organization in the recipe ⇒ All the recipes have the same content organization ✓ Use/Create include files when possible ⇒ Can extend other versions easily Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
  • 136. Workflow - 5. Create a recipe ✓ Always use remote repositories to host your application sources ⇒ Makes development quicker + keep history ✓ Do not put application sources in your layer directly! ⇒ Application development ̸= Application Integration ✓ Keep the same folder organization: recipes-core/recipes-bsp/recipes-devtools/... ⇒ Find recipes quicker ✓ Keep the headers / sources / tasks organization in the recipe ⇒ All the recipes have the same content organization ✓ Use/Create include files when possible ⇒ Can extend other versions easily ✓ Know how to compile the application manually before integrating it in a recipe ⇒ Saves you time Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 25/35
  • 137. Workflow - 6. Extend a recipe Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
  • 138. Workflow - 6. Extend a recipe ▶ It is a good practice not to modify recipes available in Poky. Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
  • 139. Workflow - 6. Extend a recipe ▶ It is a good practice not to modify recipes available in Poky. ▶ But it is sometimes useful to modify an existing recipe Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
  • 140. Workflow - 6. Extend a recipe ▶ It is a good practice not to modify recipes available in Poky. ▶ But it is sometimes useful to modify an existing recipe ▶ The BitBake build engine allows to modify a recipe by extending it Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
  • 141. Workflow - 6. Extend a recipe ▶ It is a good practice not to modify recipes available in Poky. ▶ But it is sometimes useful to modify an existing recipe ▶ The BitBake build engine allows to modify a recipe by extending it ▶ The recipe extensions end in .bbappend Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
  • 142. Workflow - 6. Extend a recipe ▶ It is a good practice not to modify recipes available in Poky. ▶ But it is sometimes useful to modify an existing recipe ▶ The BitBake build engine allows to modify a recipe by extending it ▶ The recipe extensions end in .bbappend ▶ Appended files must have the same root name as the recipe they extend example_0.1.bbappend applies to example_0.1.bb ⇒ version specific Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
  • 143. Workflow - 6. Extend a recipe ▶ It is a good practice not to modify recipes available in Poky. ▶ But it is sometimes useful to modify an existing recipe ▶ The BitBake build engine allows to modify a recipe by extending it ▶ The recipe extensions end in .bbappend ▶ Appended files must have the same root name as the recipe they extend example_0.1.bbappend applies to example_0.1.bb ⇒ version specific ▶ If adding new files, you must prepend the FILESEXTRAPATHS variable with the path to files’ directory. Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 26/35
  • 144. Workflow - 6. Extend a recipe recipes-support/nmon/nmon_13g.bbappend FILESEXTRAPATHS_prepend := "${THISDIR}/files:" SRC_URI += "file://custom-modification-0.patch file://custom-modification-1.patch " do_install_append() { # Do something } . |--- conf | |-- layer.conf |--- recipes-support |--- nmon |-- files | |-- custom-modification-0.patch | |-- custom-modification-1.patch |-- nmon_13g.bbappend Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 27/35
  • 145. Workflow - 7. Create an image Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
  • 146. Workflow - 7. Create an image ▶ An image is the top level recipe and is used alongside the machine definition Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
  • 147. Workflow - 7. Create an image ▶ An image is the top level recipe and is used alongside the machine definition ▶ Whereas the machine describes the hardware used and its capabilities, the image is architecture agnostic and defines how the root filesystem is built, with what packages Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
  • 148. Workflow - 7. Create an image ▶ An image is the top level recipe and is used alongside the machine definition ▶ Whereas the machine describes the hardware used and its capabilities, the image is architecture agnostic and defines how the root filesystem is built, with what packages ▶ By default, several images are provided in Poky: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
  • 149. Workflow - 7. Create an image ▶ An image is the top level recipe and is used alongside the machine definition ▶ Whereas the machine describes the hardware used and its capabilities, the image is architecture agnostic and defines how the root filesystem is built, with what packages ▶ By default, several images are provided in Poky: ▶ meta*/recipes*/images/*.bb Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
  • 150. Workflow - 7. Create an image ▶ An image is the top level recipe and is used alongside the machine definition ▶ Whereas the machine describes the hardware used and its capabilities, the image is architecture agnostic and defines how the root filesystem is built, with what packages ▶ By default, several images are provided in Poky: ▶ meta*/recipes*/images/*.bb ▶ An image is no more than a recipe Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
  • 151. Workflow - 7. Create an image ▶ An image is the top level recipe and is used alongside the machine definition ▶ Whereas the machine describes the hardware used and its capabilities, the image is architecture agnostic and defines how the root filesystem is built, with what packages ▶ By default, several images are provided in Poky: ▶ meta*/recipes*/images/*.bb ▶ An image is no more than a recipe ▶ To create an image, simply create a .bb in an images folder Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
  • 152. Workflow - 7. Create an image ▶ An image is the top level recipe and is used alongside the machine definition ▶ Whereas the machine describes the hardware used and its capabilities, the image is architecture agnostic and defines how the root filesystem is built, with what packages ▶ By default, several images are provided in Poky: ▶ meta*/recipes*/images/*.bb ▶ An image is no more than a recipe ▶ To create an image, simply create a .bb in an images folder mkdir -p recipes-core/images/ touch recipes-core/images/core-image-fe.bb Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 28/35
  • 153. Workflow - 7. Create an image Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
  • 154. Workflow - 7. Create an image ▶ Some special configuration variables are used to describe an image: Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
  • 155. Workflow - 7. Create an image ▶ Some special configuration variables are used to describe an image: IMAGE_INSTALL List of packages to install in the generated image Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
  • 156. Workflow - 7. Create an image ▶ Some special configuration variables are used to describe an image: IMAGE_INSTALL List of packages to install in the generated image IMAGE_FSTYPES List of formats the OpenEmbedded build system will use to create images Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
  • 157. Workflow - 7. Create an image ▶ Some special configuration variables are used to describe an image: IMAGE_INSTALL List of packages to install in the generated image IMAGE_FSTYPES List of formats the OpenEmbedded build system will use to create images ✓ Create a minimal image to include it in others ⇒ Allows to have a minimal rootfs Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
  • 158. Workflow - 7. Create an image ▶ Some special configuration variables are used to describe an image: IMAGE_INSTALL List of packages to install in the generated image IMAGE_FSTYPES List of formats the OpenEmbedded build system will use to create images ✓ Create a minimal image to include it in others ⇒ Allows to have a minimal rootfs ✓ Create different images according to your needs: image-minimal, image-dev, image-x11, image-qt5, etc ⇒ Install only what you really need for your board. Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 29/35
  • 159. Workflow - 7. Create an image recipes-core/images/core-image-fe.bb inherit core-image DESCRIPTION = "A small image to boot a device, created for Embedded Recipes" LICENSE = "MIT" IMAGE_FSTYPES = "tar.bz2 ext4" IMAGE_INSTALL = "packagegroup-core-boot nmon helloworld " Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 30/35
  • 160. Workflow - 8. Create a machine Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 161. Workflow - 8. Create a machine ▶ A machine describes your hardware Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 162. Workflow - 8. Create a machine ▶ A machine describes your hardware ▶ Stored under meta-<bsp_name>/conf/machine/*.conf Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 163. Workflow - 8. Create a machine ▶ A machine describes your hardware ▶ Stored under meta-<bsp_name>/conf/machine/*.conf ▶ The file name corresponds to the value set in the MACHINE variable meta-ti/conf/machine/beaglebone.conf MACHINE = "beaglebone" Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 164. Workflow - 8. Create a machine ▶ A machine describes your hardware ▶ Stored under meta-<bsp_name>/conf/machine/*.conf ▶ The file name corresponds to the value set in the MACHINE variable meta-ti/conf/machine/beaglebone.conf MACHINE = "beaglebone" ▶ Contains configuration variables related to the architecture, to machine’s features and to customize the kernel image or the filesystems used. Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 165. Workflow - 8. Create a machine ▶ A machine describes your hardware ▶ Stored under meta-<bsp_name>/conf/machine/*.conf ▶ The file name corresponds to the value set in the MACHINE variable meta-ti/conf/machine/beaglebone.conf MACHINE = "beaglebone" ▶ Contains configuration variables related to the architecture, to machine’s features and to customize the kernel image or the filesystems used. TARGET_ARCH : The architecture of the device being built Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 166. Workflow - 8. Create a machine ▶ A machine describes your hardware ▶ Stored under meta-<bsp_name>/conf/machine/*.conf ▶ The file name corresponds to the value set in the MACHINE variable meta-ti/conf/machine/beaglebone.conf MACHINE = "beaglebone" ▶ Contains configuration variables related to the architecture, to machine’s features and to customize the kernel image or the filesystems used. TARGET_ARCH : The architecture of the device being built PREFERRED_PROVIDER_virtual/kernel : The kernel recipe to use Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 167. Workflow - 8. Create a machine ▶ A machine describes your hardware ▶ Stored under meta-<bsp_name>/conf/machine/*.conf ▶ The file name corresponds to the value set in the MACHINE variable meta-ti/conf/machine/beaglebone.conf MACHINE = "beaglebone" ▶ Contains configuration variables related to the architecture, to machine’s features and to customize the kernel image or the filesystems used. TARGET_ARCH : The architecture of the device being built PREFERRED_PROVIDER_virtual/kernel : The kernel recipe to use SERIAL_CONSOLE : Speed and device for the serial console to attach. Passed to the kernel as the console parameter, e.g. 115200 ttyS0 Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 168. Workflow - 8. Create a machine ▶ A machine describes your hardware ▶ Stored under meta-<bsp_name>/conf/machine/*.conf ▶ The file name corresponds to the value set in the MACHINE variable meta-ti/conf/machine/beaglebone.conf MACHINE = "beaglebone" ▶ Contains configuration variables related to the architecture, to machine’s features and to customize the kernel image or the filesystems used. TARGET_ARCH : The architecture of the device being built PREFERRED_PROVIDER_virtual/kernel : The kernel recipe to use SERIAL_CONSOLE : Speed and device for the serial console to attach. Passed to the kernel as the console parameter, e.g. 115200 ttyS0 KERNEL_IMAGETYPE : The type of kernel image to build, e.g. zImage Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 169. Workflow - 8. Create a machine ▶ A machine describes your hardware ▶ Stored under meta-<bsp_name>/conf/machine/*.conf ▶ The file name corresponds to the value set in the MACHINE variable meta-ti/conf/machine/beaglebone.conf MACHINE = "beaglebone" ▶ Contains configuration variables related to the architecture, to machine’s features and to customize the kernel image or the filesystems used. TARGET_ARCH : The architecture of the device being built PREFERRED_PROVIDER_virtual/kernel : The kernel recipe to use SERIAL_CONSOLE : Speed and device for the serial console to attach. Passed to the kernel as the console parameter, e.g. 115200 ttyS0 KERNEL_IMAGETYPE : The type of kernel image to build, e.g. zImage ✓ Describe your machine in a README file Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 31/35
  • 170. Workflow - 8. Create a machine conf/machine/fe-machine.conf require conf/machine/include/soc-family.inc require conf/machine/include/tune-cortexa5.inc TARGET_ARCH = "arm" PREFERRED_PROVIDER_virtual/kernel ?= "linux-at91" PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-at91" KERNEL_IMAGETYPE = "zImage" KERNEL_DEVICETREE = "at91-sama5d3_xplained.dtb" SERIAL_CONSOLE ?= "115200 ttyS0" Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 32/35
  • 171. Conclusion Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 33/35
  • 172. Embedded Recipes Conference - 2017 Thank you for listening! Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 34/35
  • 173. Questions? Mylène Josserand mylene@free-electrons.com Slides under CC-BY-SA 3.0 http://free-electrons.com/pub/conferences/2017/embedded-recipes/josserand-introduction-to-yocto- project/ Free Electrons - Embedded Linux, kernel, drivers - Development, consulting, training and support. http://free-electrons.com 35/35