SlideShare une entreprise Scribd logo
1  sur  173
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linuxsureskal
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introductionYi-Hsiu Hsu
 
Kernel Module Programming
Kernel Module ProgrammingKernel Module Programming
Kernel Module ProgrammingSaurabh Bangad
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Thomas Petazzoni
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal BootloaderSatpal Parmar
 
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Projectrossburton
 
COSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem portingCOSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem portingEric Lin
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoCMacpaul Lin
 
Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)Tushar B Kute
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot) Omkar Rane
 
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Pierre-jean Texier
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
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 NLKBshimosawa
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded trainingH Ming
 

Tendances (20)

Embedded Operating System - Linux
Embedded Operating System - LinuxEmbedded Operating System - Linux
Embedded Operating System - Linux
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
BusyBox for Embedded Linux
BusyBox for Embedded LinuxBusyBox for Embedded Linux
BusyBox for Embedded Linux
 
U-Boot - An universal bootloader
U-Boot - An universal bootloader U-Boot - An universal bootloader
U-Boot - An universal bootloader
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
Kernel Module Programming
Kernel Module ProgrammingKernel Module Programming
Kernel Module Programming
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
 
Programming guide for linux usb device drivers
Programming guide for linux usb device driversProgramming guide for linux usb device drivers
Programming guide for linux usb device drivers
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
 
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Project
 
COSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem portingCOSCUP 2020 RISC-V 32 bit linux highmem porting
COSCUP 2020 RISC-V 32 bit linux highmem porting
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
 
Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)Part 01 Linux Kernel Compilation (Ubuntu)
Part 01 Linux Kernel Compilation (Ubuntu)
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
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
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded training
 

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

Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingStephan Cadene
 
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 BuildrootTrevor Woerner
 
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 exampleAnne 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 BuildrootAnne 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 2018Mender.io
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primerDrew 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, #dd13Dominopoint - Italian Lotus User Group
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntfUlrich Krause
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems Mender.io
 
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 installationBITS
 
[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 FrameworkICS
 
Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Janus Workshop @ ClueCon 2020
Janus Workshop @ ClueCon 2020Lorenzo Miniero
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianMender.io
 
DEVASC_Module_1.pdf
DEVASC_Module_1.pdfDEVASC_Module_1.pdf
DEVASC_Module_1.pdfMorooCoffee
 
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 committeesHarish Pillay
 

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

Android slides
Android slidesAndroid slides
Android slides
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development Training
 
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
 
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
 

Plus de 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 firstAnne 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-NMIAnne 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 kernelAnne Nicolas
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyAnne 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 futureAnne 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 dataAnne 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 BareboxAnne 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 specialAnne 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 SiliconAnne 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) pictureAnne 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 wayAnne 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 matchmakerAnne Nicolas
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationAnne 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 debuggingAnne 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 multimediaAnne 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 startedAnne Nicolas
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPAnne 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
 

Plus de 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)
 

Dernier

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Dernier (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

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