Yocto/OpenEmbedded

Course description

The Yocto/OpenEmbedded course gives you the basics to create your own embedded Linux distribution, with an up-to-date Linux kernel and a complete and customised root filesystem filled with proprietary and open source packages. We will go through the OpenEmbedded build system (which is the core of the Yocto project), discussing the central components such as layers, recipes, classes and configurations. We go through the build process step by step and explain how to add new packages, create custom root filesystem images and debug the build process.

The course is based on practical exercises where participants learn and explore the build process while creating their own customised layers, package recipes and images.

The course is normally given in Swedish but courses in English are available on request. All course material is in English. Linux computers and course targets (Beaglebone black) to perform the exercises are available to all participants. Participants can keep their Beaglebones after the end of the course.

Days

3

Price

SEK 21 000

Language

Swedish, in English by arrangement

Theory/Practice

50/50

Dates

17-19 September 2025, Kista

19-21 November 2025, Kista

Register now

TARGET GROUP

The course is aimed at programmers and system developers with experience of Linux for embedded systems, who want help getting started with the most up-to-date build system for embedded Linux today.

COURSE GOAL

Beaglebone Black - All course participants get to keep their Beagelbone after the course!

 

SKILLS

To best benefit from this course, it is important to have some experience in

  • Development of embedded systems
  • Programming in C
  • Programming in bash script
  • Linux build process

It also helps if you have some understanding of the structure of Linux root file systems.

Course content

  • Introduction to the programme

    • Yocto
    • OpenEmbedded
    • Poky
    • Build system overview
  • Bitbake

    • File types
    • Recipes, layers and classes
    • Syntactic rules
    • Configuration
    • Invocation
  • Layer basics

    • Layer theory
    • Best practices
  • Writing recipes

    • Recipe basics
    • Common variables
    • Licences
    • Dependencies
    • Recipe tasks
  • Troubleshooting

    • Log files
    • Dependency graphs
    • Debug output
    • Logging
    • Build environment
  • Recipes - advanced topics

    • Include files
    • Recipe extension
    • Using classes
    • Creating patches
  • The Image, the Machine and the Distro

    • The image
    • Image customisation
    • Package groups
    • BSP layers
    • Machine configuration
    • The Linux kernel
    • Distro layers
  • Application development

    • Build and install an SDK
    • Debug on target
  • Exercises

    • Setup and build first image
    • Locate information in source and build trees
    • Your own layer
    • Your own image recipe
    • Recipe modifications
    • Recipe for custom application
    • Recipe for FOSS application
    • Modify recipe with patch and package contents
    • Custom distro + own linux kernel
    • SDK for application development
    • Debug on target with IDE

Course registration