SlideShare a Scribd company logo
Software Embedded
Applicazioni e Strumenti Software
Soluzioni integrate
Introduction to Yocto Project
Stefano Cordibella 1
About Me
‱ EDALab s.r.l.
– 15+ collaborators
– active from 2007 in Verona
– main areas:
‱ embedded solutions
‱ wireless sensor network
‱ HMI on touchscreen
Stefano Cordibella 2
Agenda
‱ Introduction:
– Embedded Linux
– Yocto Project
‱ Openembedded Core:
– directory structure
– layer structure
‱ Bitbake
‱ Qt5 in Yocto Project
Stefano Cordibella 3
Embedded Linux
Operating systems based on Linux
Kernel used in embedded systems.
Pros:
‱ complete system
‱ high customization
Cons:
‱ need to manage heterogeneous software
‱ many different tools to automate processes
‱ update and maintain the whole system
Stefano Cordibella 4
Yocto Project
Suite of tools and metadata to build and
manage your own linux distribution.
‱ it is NOT a linux distro
‱ it is a set of open source tools
Advantages:
‱ high level software management
‱ hardware producer involved into the project
‱ you can spend more time on your product
Stefano Cordibella 5
Yocto Project
Main components:
‱ Yocto Project: umbrella project that
maintains tools for embedded linux
‱ Poky: Yocto Projects reference distro
‱ Bitbake: build engine, metadata
interpreter
‱ Openembedded Core: metadata
collection
‱ 3rd parties metadata: for specific
machine or software libraries
Stefano Cordibella 6
Openembedded Core
7Stefano Cordibella
Openembedded Core
‱ Organize the metadata in files called recipes.
‱ Recipes are grouped in a modular structure called
layers.
‱ Contains about 1000 recipes for applications and
libraries.
Quick start:
1. download the Yocto Project code
2. run the setup script
3. select a target machine
4. run bitbake on the selected image.
Stefano Cordibella 8
Openembedded Core
Poky directory structure:
‱ bitbake: build engine code and
binary,
‱ meta-* : layer directory
A layer could be:
‱ part of the oe core
– meta-yocto-bsp
‱ provided by a 3rd parties
– meta-freescale, meta-qt5
‱ created by the user
– meta-edalab
Stefano Cordibella 9
Openembedded Core
Layer entities:
‱ Recipe: rules to create a software package
‱ Package Group: set of packages
‱ Image: data to create a root filesystem
‱ Machine: definitions about the target platform
‱ Distro: package version and feature definitions
Stefano Cordibella 10
Recipes
‱ Rules to create a binary or a software library.
‱ Grouped in functional group named recipes-*.
Stefano Cordibella 11
Recipes
‱ Recipes are divided in logical block called tasks:
– do_fecth: to download source code
– do_patch, do_configure, do_compile: to build
software
– do_install, do_package: create package and
deploy
‱ Tasks can be extended or overwritten
‱ Recipes can inherit from predefined build system:
– autotools, cmake, qmake
Stefano Cordibella 12
Recipes
Stefano Cordibella 13
Recipes
Stefano Cordibella 14
Package Groups
‱ Set of recipes that can be managed like one entity.
Stefano Cordibella 15
Images
‱ List of software to install.
‱ Features:
– splash,
– readonly rootfs,
– debug tools,
– 

‱ File system type:
– ext3,
– jffs2,
– 

‱ Post process actions.
Stefano Cordibella 16
Images
Stefano Cordibella 17
Distro
‱ Feature enable for the distro.
‱ Specify package version number.
‱ Disambiguate packages.
Stefano Cordibella 18
Machine
‱ Specify target architecture.
‱ Feature supported by the hardware.
‱ Memory region for bootloader, kernel.
Stefano Cordibella 19
Bitbake
20Stefano Cordibella
Bitbake
‱ Execute the tasks on a recipe or an image.
‱ If a recipe has dependency it execute the
dependency first creating the dependency graph.
‱ Execute tasks in parallel.
Examples:
Execute all the tasks for the specified <recipe>, that could be
an image.
Stefano Cordibella 21
Bitbake
Execute the single task <nometask> for the recipe <recipe>
and terminate.
Perform the clean task on the recipe.
Show all the tasks for the recipe.
Stefano Cordibella 22
Bitbake
Open the development shell on the source code for the
recipe after the do_patch task.
The developer can make local changes on the sources and
create patches for oe.
Stefano Cordibella 23
Qt5 in Yocto Project
24Stefano Cordibella
Qt5 in Yocto Project
Layer created to integrate qt5 framework in YP.
Stefano Cordibella 25
‱ classes: definitions for qmake5 and
cmake_qmake
‱ recipes-qt:
– how to compile the qt5 framework
– recipes for the meta toolchain
– application examples
Demo Time
26Stefano Cordibella
Thank you for your attention
Any question?
Stefano Cordibella 27

More Related Content

PPTX
PDF
Splash screen for Embedded Linux 101: How to customize your boot sequence
PDF
Yocto Project : Custom Embedded Linux Distribution
PDF
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
PDF
Introduction to yocto
PPTX
U-Boot Porting on New Hardware
ODP
ansible why ?
PDF
Formation autour de git et git lab
Splash screen for Embedded Linux 101: How to customize your boot sequence
Yocto Project : Custom Embedded Linux Distribution
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Introduction to yocto
U-Boot Porting on New Hardware
ansible why ?
Formation autour de git et git lab

What's hot (20)

PDF
Embedded Linux BSP Training (Intro)
PDF
Low Level View of Android System Architecture
PDF
Run Qt on Linux embedded systems using Yocto
PDF
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
PDF
Booting Android: bootloaders, fastboot and boot images
PDF
Understanding the Android System Server
PDF
Xen in Safety-Critical Systems - Critical Summit 2022
PDF
The ultimate guide to software updates on embedded linux devices
PDF
Git - An Introduction
PDF
Namespaces and cgroups - the basis of Linux containers
PDF
PDF
Android Internals
PDF
ODP
Introduction to Version Control
PDF
Course 102: Lecture 26: FileSystems in Linux (Part 1)
PPT
Linux presentation
PDF
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
PPSX
User Administration in Linux
PDF
Building your own embedded system with Yocto
PDF
Review of QNX
Embedded Linux BSP Training (Intro)
Low Level View of Android System Architecture
Run Qt on Linux embedded systems using Yocto
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Booting Android: bootloaders, fastboot and boot images
Understanding the Android System Server
Xen in Safety-Critical Systems - Critical Summit 2022
The ultimate guide to software updates on embedded linux devices
Git - An Introduction
Namespaces and cgroups - the basis of Linux containers
Android Internals
Introduction to Version Control
Course 102: Lecture 26: FileSystems in Linux (Part 1)
Linux presentation
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
User Administration in Linux
Building your own embedded system with Yocto
Review of QNX
Ad

Similar to Stefano Cordibella - An introduction to Yocto Project (20)

PDF
Yocto - Embedded Linux Distribution Maker
PDF
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
PDF
Yocto Project Kernel Lab, Hands-On
PDF
Yocto Project Kernel Lab hands-on
PPTX
Yocto_DevDay_Advanced_Class_Portland_2018.pptx
PDF
Building Emmbedded Linux with Yocto project
PPTX
Yocto Project introduction
PPT
OpenEmbedded & BitBake - Denx
ODP
Os Grossupdated
PDF
Embedded Linux Build Systems - Texas Linux Fest 2018
PDF
Generating a Reproducible and Maintainable Embedded Linux Environment with Po...
PDF
IoT: Contrasting Yocto/Buildroot to binary OSes
PDF
The Yocto Project
PDF
Autobuilder2 Yocto Project Summit Lyon 2019
PDF
iot_9Yocto Project getting started,,.pdf
PDF
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
PDF
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
PDF
Buildroot easy embedded system
PPTX
Webinar: STM32WB - microcontrolador dual-core certificado BLE 5.0
PPTX
Makefile+VersionControl
Yocto - Embedded Linux Distribution Maker
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
Yocto Project Kernel Lab, Hands-On
Yocto Project Kernel Lab hands-on
Yocto_DevDay_Advanced_Class_Portland_2018.pptx
Building Emmbedded Linux with Yocto project
Yocto Project introduction
OpenEmbedded & BitBake - Denx
Os Grossupdated
Embedded Linux Build Systems - Texas Linux Fest 2018
Generating a Reproducible and Maintainable Embedded Linux Environment with Po...
IoT: Contrasting Yocto/Buildroot to binary OSes
The Yocto Project
Autobuilder2 Yocto Project Summit Lyon 2019
iot_9Yocto Project getting started,,.pdf
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B Kute
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Buildroot easy embedded system
Webinar: STM32WB - microcontrolador dual-core certificado BLE 5.0
Makefile+VersionControl
Ad

More from linuxlab_conf (18)

PDF
Jonathan Corbet - Keynote: The Kernel Report
PDF
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
PDF
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
PDF
Jagan Teki - U-boot from scratch
PDF
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
PDF
Andrea Righi - Spying on the Linux kernel for fun and profit
PDF
Jacopo Mondi - Complex cameras are complex
PDF
Alessio Lama - Development and testing of a safety network protocol
PDF
Emanuele Faranda - Creating network overlays with IoT devices using N2N
PDF
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
PDF
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
PDF
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
PDF
Mirko Damiani - An Embedded soft real time distributed system in Go
PDF
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
PDF
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
PDF
Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...
PDF
Davide Berardi - Linux hardening and security measures against Memory corruption
PDF
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
Jonathan Corbet - Keynote: The Kernel Report
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
Jagan Teki - U-boot from scratch
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Andrea Righi - Spying on the Linux kernel for fun and profit
Jacopo Mondi - Complex cameras are complex
Alessio Lama - Development and testing of a safety network protocol
Emanuele Faranda - Creating network overlays with IoT devices using N2N
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
Mirko Damiani - An Embedded soft real time distributed system in Go
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Luca Cipriani - Control your Embedded Linux remotely by using MQTT and a web ...
Davide Berardi - Linux hardening and security measures against Memory corruption
Luca Abeni - Real-Time Virtual Machines with Linux and kvm

Recently uploaded (20)

PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPT
Introduction Database Management System for Course Database
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Complete React Javascript Course Syllabus.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
System and Network Administraation Chapter 3
PPTX
ai tools demonstartion for schools and inter college
PDF
System and Network Administration Chapter 2
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
history of c programming in notes for students .pptx
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Materi-Enum-and-Record-Data-Type (1).pptx
Upgrade and Innovation Strategies for SAP ERP Customers
Introduction Database Management System for Course Database
L1 - Introduction to python Backend.pptx
Online Work Permit System for Fast Permit Processing
Complete React Javascript Course Syllabus.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administraation Chapter 3
ai tools demonstartion for schools and inter college
System and Network Administration Chapter 2
VVF-Customer-Presentation2025-Ver1.9.pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
history of c programming in notes for students .pptx
ISO 45001 Occupational Health and Safety Management System
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PTS Company Brochure 2025 (1).pdf.......
Odoo POS Development Services by CandidRoot Solutions
Materi-Enum-and-Record-Data-Type (1).pptx

Stefano Cordibella - An introduction to Yocto Project

  • 1. Software Embedded Applicazioni e Strumenti Software Soluzioni integrate Introduction to Yocto Project Stefano Cordibella 1
  • 2. About Me ‱ EDALab s.r.l. – 15+ collaborators – active from 2007 in Verona – main areas: ‱ embedded solutions ‱ wireless sensor network ‱ HMI on touchscreen Stefano Cordibella 2
  • 3. Agenda ‱ Introduction: – Embedded Linux – Yocto Project ‱ Openembedded Core: – directory structure – layer structure ‱ Bitbake ‱ Qt5 in Yocto Project Stefano Cordibella 3
  • 4. Embedded Linux Operating systems based on Linux Kernel used in embedded systems. Pros: ‱ complete system ‱ high customization Cons: ‱ need to manage heterogeneous software ‱ many different tools to automate processes ‱ update and maintain the whole system Stefano Cordibella 4
  • 5. Yocto Project Suite of tools and metadata to build and manage your own linux distribution. ‱ it is NOT a linux distro ‱ it is a set of open source tools Advantages: ‱ high level software management ‱ hardware producer involved into the project ‱ you can spend more time on your product Stefano Cordibella 5
  • 6. Yocto Project Main components: ‱ Yocto Project: umbrella project that maintains tools for embedded linux ‱ Poky: Yocto Projects reference distro ‱ Bitbake: build engine, metadata interpreter ‱ Openembedded Core: metadata collection ‱ 3rd parties metadata: for specific machine or software libraries Stefano Cordibella 6
  • 8. Openembedded Core ‱ Organize the metadata in files called recipes. ‱ Recipes are grouped in a modular structure called layers. ‱ Contains about 1000 recipes for applications and libraries. Quick start: 1. download the Yocto Project code 2. run the setup script 3. select a target machine 4. run bitbake on the selected image. Stefano Cordibella 8
  • 9. Openembedded Core Poky directory structure: ‱ bitbake: build engine code and binary, ‱ meta-* : layer directory A layer could be: ‱ part of the oe core – meta-yocto-bsp ‱ provided by a 3rd parties – meta-freescale, meta-qt5 ‱ created by the user – meta-edalab Stefano Cordibella 9
  • 10. Openembedded Core Layer entities: ‱ Recipe: rules to create a software package ‱ Package Group: set of packages ‱ Image: data to create a root filesystem ‱ Machine: definitions about the target platform ‱ Distro: package version and feature definitions Stefano Cordibella 10
  • 11. Recipes ‱ Rules to create a binary or a software library. ‱ Grouped in functional group named recipes-*. Stefano Cordibella 11
  • 12. Recipes ‱ Recipes are divided in logical block called tasks: – do_fecth: to download source code – do_patch, do_configure, do_compile: to build software – do_install, do_package: create package and deploy ‱ Tasks can be extended or overwritten ‱ Recipes can inherit from predefined build system: – autotools, cmake, qmake Stefano Cordibella 12
  • 15. Package Groups ‱ Set of recipes that can be managed like one entity. Stefano Cordibella 15
  • 16. Images ‱ List of software to install. ‱ Features: – splash, – readonly rootfs, – debug tools, – 
 ‱ File system type: – ext3, – jffs2, – 
 ‱ Post process actions. Stefano Cordibella 16
  • 18. Distro ‱ Feature enable for the distro. ‱ Specify package version number. ‱ Disambiguate packages. Stefano Cordibella 18
  • 19. Machine ‱ Specify target architecture. ‱ Feature supported by the hardware. ‱ Memory region for bootloader, kernel. Stefano Cordibella 19
  • 21. Bitbake ‱ Execute the tasks on a recipe or an image. ‱ If a recipe has dependency it execute the dependency first creating the dependency graph. ‱ Execute tasks in parallel. Examples: Execute all the tasks for the specified <recipe>, that could be an image. Stefano Cordibella 21
  • 22. Bitbake Execute the single task <nometask> for the recipe <recipe> and terminate. Perform the clean task on the recipe. Show all the tasks for the recipe. Stefano Cordibella 22
  • 23. Bitbake Open the development shell on the source code for the recipe after the do_patch task. The developer can make local changes on the sources and create patches for oe. Stefano Cordibella 23
  • 24. Qt5 in Yocto Project 24Stefano Cordibella
  • 25. Qt5 in Yocto Project Layer created to integrate qt5 framework in YP. Stefano Cordibella 25 ‱ classes: definitions for qmake5 and cmake_qmake ‱ recipes-qt: – how to compile the qt5 framework – recipes for the meta toolchain – application examples
  • 27. Thank you for your attention Any question? Stefano Cordibella 27