Y1Yocto Project Development
Building a Linux Embedded image using Yocto
Objectives
|
|||||||||||||||
- Good C programming skills
- Knowledge of Linux Embedded systems (see our D1 - Embedded Linux with Buildroot and Yocto course)
- Preferably knowledge of Linux user programming (see our D0 - Linux user mode programming course)
- You may be interested also by the Yocto project expert (Y2 - Yocto Project Expert course) course or the combined (Y12 - Comprehensive Yocto Project Usage course)
- Printed course material (in English)
- One Linux PC for two trainees.
- One target platform for two trainees
- Any embedded systems engineer or technician with the above prerequisites.
- Prerequisites are checked before the training.
- Progress is assessed by the trainer through the practical exercises, and by quizzes for sections without exercises.
- Each trainee receives a completion certificate.
- If a prerequisite gap appears, alternative or additional training is offered.
Course Outline
- Overview of Yocto
- History
- Yocto, Open Embedded and Poky
- Purpose of the Yocto project
- The main projects
- Yocto architecture
- Overview
- Recipes and classes
- Tasks
| Exercise: | Setting up the labs environment | |
- Build system objectives
- Building deployable images
| Exercise: | Building a root file system using Yocto | |
- Build system architecture
- Layers and layer priorities
- Directory layout
- Configuration files
- Local
- Machine
- Distro
- The bitbake tool
- Common options
- Using Yocto
- The bitbake tool
- Common options
- Base commands
- Building a package
- Building an image (root file system + u-boot + kernel)
| Exercise: | Use bitbake commands to build packages and images | |
- Miscellaneous tools around Yocto
- Yocto Application Development Toolkit (ADT)
- Toaster
| Exercise: | Deploy the generated image | |
- Recipe architecture
- Tasks
- Task dependencies
- Recipe dependencies
- The bitbake language
- Standard variables and functions
- Classes and recipes
- The base Yocto classes
- Main bitbake commands
| Exercise: | Examine and understand real-life configuration files | |
- Various kind of recipes and classes
- bare program
- Makefile-based package
- autotools-based package
- u-boot
- kernel
- out-of-tree module
- Recipe creation strategies
- From scratch
- Using devtool
- Using recipetool
- From an existing, similar, recipe
| Exercise: | Writing a recipe for a local user-maintained package | |
| Exercise: | Writing a recipe for a local out-of-tree module | |
- Debugging recipes
- Debugging recipe selection
- Debugging dependencies
- debugging tasks
| Exercise: | Writing and debugging a recipe for an autotools, git-maintained, package | |
- Defining packaging
- Package splitting
| Exercise: | Writing and debugging a recipe for an autotools library package | |
- Automatically starting a program (class update-rc.d)
| Exercise: | Starting an ssh daemon on the target | |
- Customizing an existing package recipe (.bbappend)
- Recipe dependencies
- Creating and adding patches
- Creating a patch for a community-provided component
- Creating a patch for an user-maintained component
| Exercise: | Adding patches and dependencies to a community package | |
- Defining new tasks
- Task declaration
- Coding tasks
| Exercise: | Adding a rootfsinstall task to directly copy the output of an user package in the rootfs image | |
- Using devtool to create a package and its recipe
- Using devtool to modify an existing package and recipe
- Using devtool to update a recipe to build a new version of a package
| Exercise: | Create, test and modify a recipe for an existing package using devtool | |
- Creating classes
- Creating new, independent, classes
- Inheriting from an existing class
| Exercise: | Create a class to generalize the “rootfsinstall” task | |
| Exercise: | Create a class to build firmware packages (for example using an MCU toolchain) | |
- Building a root file system with Yocto
- Creating a custom root file system
- Writing an image recipe
- Selecting the packages to build
- Selecting the file system types
- The various kinds of images
- Inheriting and customizing images
- Customizing system configuration files (network, mount points, …)
| Exercise: | Writing and building an image recipe | |
| Exercise: | Creating a JFFS2, UBIFS or EXT2 image with Yocto | |
- Package management
- rpm
- opkg
| Exercise: | Create an image with package support for OTA deployment | |
| Exercise: | Test OTA update on the generated image | |
- Introduction to python
- Using python in Yocto
- The main bitbake classes
- Defining variable values in Python
- Writing tasks in Python
| Exercise: | Writing a task and customizing a recipe in Python | |
More
To book a training session or for more information, please contact us on info@ac6-training.com.
Registrations are accepted till one week before the start date for scheduled classes. For late registrations, please consult us.
You can also fill and send us the registration form
This course can be provided either remotely, in our Paris training center or worldwide on your premises.
Scheduled classes are confirmed as soon as there is two confirmed bookings. Bookings are accepted until 1 week before the course start.
Last update of course schedule: 27 June 2026
Booking one of our trainings is subject to our General Terms of Sales
Related Courses
D0
Linux user mode programming
D1
Embedded Linux with Buildroot and Yocto
D1S
Embedded Linux with Ac6 System Workbench
D1Y
Embedded Linux with Yocto
D2
Le shell Linux
D3
Linux Drivers
D4
Real-time Linux
D5
Embedded GUI
D7
Power Management in Linux Drivers
D8
USB Linux Drivers
Q1
Embedded GUIs with Qt
Y12
Comprehensive Yocto Project Usage
Y2
Yocto Project Expert