All you need to know to use Open Embedded and the Yocto Project to build your custom embedded Linux images.
Overview
Everything you need to know to build your custom Linux system images for your own hardware. Learn how to create your own layers to reuse and override hardware vendor and community provided layers, just providing what is specific to your project.
In case you wish to support images for different targets, the Yocto Project will enable you to cleanly separate your hardware customizations, your distribution policies and the sets of applications you want to use.
The Yocto project also offers binary reproducibility, vulnerability analysis and Software Bill of Materials, and will also help you to develop your own recipes and debug the system.
Using progressive but challenging practical labs and varied techniques to make the learning always stimulating and fun, and above all to make it stick. At least 75% of the time is dedicated to practical activities.
Description
Delivery | In-person (all continents) or online, public or private session |
Language | English or French |
Mix | 25% theory – 75% practical activities |
Duration | 4 days (in-person), 24 hours (online) |
Hardware | BeaglePlay board with TI Sitara AM625 SoC (ARM64) |
Yocto Project version | 5.0 (Scarthgap LTS) used in practical labs |
Prerequisites | Familiarity with the Linux command line – understanding low-level details about Embedded Linux will help but isn’t a strict requirement. |
Upcoming sessions (in-person and online)
Trainer | Dates | Cost |
Michael Opdenacker | Mar. 25-28, 2025, Avignon, France 32 hours – 9:00 to 18:00 UTC +1 Seats left – Register | 2,490 EUR or 2,590 USD + 20% V.A.T. |
Michael Opdenacker | Apr. 14-16, 21-23, Online 15:00 to 19:00 UTC+1 Seats left – Register | 1,990 EUR or 2,090 USD + 20% V.A.T. |
Also available on-line or through private sessions worldwide. Ask us for a quote.
Agenda
Part 1: Introduction, Concepts, Standard Usage
- Demo: Build a embedded Linux image for a different board and boot it.
- General introduction to embedded Linux and build systems.
- History of OpenEmbedded and the Yocto Project.
Roles of the various components: OpenEmbedded, Poky, Yocto. - Project goals, release cycles, governance, features, example projects.
- Terminology: recipes, layers, images, machines, distributions, packages, metadata.
- Setting up the environment. Supported host distributions, required tools.
- BitBake build orchestrator: usage and features.
- Build and boot your first image based on the Poky reference distribution.
- Exploring logs and build outputs.
- Variables, syntax, scope and overrides.
Part 2: Working with Recipes and Layers
- Structure of recipes. Tasks, dependencies. Source fetching and other important tasks. Extending and overriding existing recipes.
- Classes: “recipe” and “global” classes.
- Various types of Yocto layers. Using multiple layers and creating new ones.
- BSP layers and machine definitions. Building the bootloader and kernel. Bootloader, kernel and device tree customization.
- Distro layers. Toolchain definition.
- Defining images. Package features.
- Defining packages in recipes. Runtime and build time dependencies.
Part 3: Advanced Yocto Usage and Deployment
- Optimizing builds: shared state cache, hash equivalence, limiting disk and CPU usage.
- Generating and executing a Yocto Software Development Kit (SDK).
- Using devtool to create, modify and test recipes.
- Package sanity and image testing.
- Generating and publishing package feeds. Adding and updating software at run time.
- License compliance and Software Bill or Materials.
- Checking for vulnerabilities.
- Binary reproducibility
- Layer management software (Kas, Repo).
- Best practices for maintaining a project using Yocto.
- Further Yocto Project resources.
Part 4: Challenges
- Fix a broken system with multiple types of bugs.
- Build and boot a system with support for A/B updates.
- Optimize the boot time of a Yocto built embedded system.
What’s special in our courses?
Majority of practical activities, representing at least 75% of learning time.
Short lectures only: sequences of theory never exceed 30 minutes, and are interleaved with quick or longer practice. Too long series of lectures are hard to digest, especially in an online setting.
Technical and teaching experience: courses taught by an industry veteran with more than 20 years of experience in embedded Linux and 30 years using and advocating for Free and Open Source Software.
See also: Why choose Root Commit courses?
FAQ
Q: Will I get solutions to the practical labs?
A: Yes, solutions for the files to create or modify are shared at the end of each lab.
Q: In-house sessions: can practical labs be run on the CPU that my project uses?
A: The Linux kernel and the Yocto Project try to offer the same mechanisms for all types of hardware, so most of what you learn on another platform should apply on other ones as well. However, bootloader and kernel settings can be platform specific, so it can help participants to gain practical experience on the hardware platform they will work on. So, porting our practical labs to different hardware should be possible, if you are ready to accept additional preparation costs.
See also our FAQ for all types of courses and our sustainability efforts.