Yocto Project


In this course, attendees will learn how to develop and customize embedded Linux systems with OpenEmbedded and the Yocto Project.

Detailed agenda

  • Embedded Linux architecture, introduction to the Yocto Project, project history and motivations, main features and basic architecture, Poky and its components, project documentation.
  • Introduction to Poky, preparing the build machine, Poky repository, preparing the build directory, bblayers.conf and local.conf, processing an image recipe, output and generated images, generating an image for the emulator (QEMU).
  • Introduction to the build system, BitBake and metadata, recipes, classes, configuration files, types of layers (BSP, distro, software), using BitBake, BitBake internals, tasks and dependency graph.
  • Introduction to the concept of layers, creating a layer, file structure and directories of a layer, layer.conf variables, bitbake-layers and yocto-check-layer tools.
  • Introduction to recipes, recipes vs packages, the structure of a recipe, main variables used in recipes, inheriting classes and implementing tasks, how a recipe is processed step-by-step, directory output and logs.
  • Advanced recipe concepts, BitBake variable assignment syntax, overrides and variable flags, append files, PACKAGECONFIG, include and require directives, versioning and priority, debugging recipes, devshell, oe-pkgdata-util and other tools, QA checks.
  • Customizing images, creating image recipes, package groups, image features, adding users and groups, configuring file and directory permissions, post-install scripts, changing the image format, creating distro configuration files, distribution variables, distro features, enabling package management, tips for customization and layer management.
  • BSP layers development, creating a BSP layer, machine configuration files, machine common variables, provides mechanism, U-Boot and kernel related variables, machine features, creating bootloader recipes, creating kernel and kernel module recipes, applying patches and changing kernel configuration, kernel advanced metadata.
  • Working with SDKs (Software Development Kits), components of an SDK (toolchain, sysroot, scripts and additional tools), toolchain types, generating SDKs, meta-toolchain, populate_sdk and populate_sdk_ext, installing and using SDKs, Extensible SDK (eSDK) and devtool.
  • Additional tools and resources, license management, shared state cache, build history, Toaster, recipetool, build tools (build appliance, CROPS, Autobuilder).
  • Final considerations, study links and references, books, conclusion.

For more details on the content of this training, you can download the agenda and the slides .

Additional information

Students, engineers, developers and team leaders who work with software development for embedded systems.

Basic knowledge of GNU/Linux command line tools (cat, find, grep, ps, vi, etc), embedded Linux architecture, C language, toolchain and build tools (GCC, make, autotools).

The course material contains the slides of the presentations, the book of activities and exercises, reference guides, and additional reference documents. All materials will be provided in an electronic format at the start of the training session.

The training exercises can be executed on an emulator (QEMU) or the Colibri i.MX6 Toradex module with the Aster carrier board. Development kits are loaned to students during training to carry out practical activities. If required by the contracting company, the training can be ported to other hardware platforms.

The training can be presented in the following languages: Brazilian Portuguese and English.

If you plan to train your team or a group of people, consider a training session inside your company. In an in-company training session, the company is responsible for providing the necessary resources needed for the training, including the training room, data projector and development machines. This model also brings big advantages for the company, since the cost of transportation and accommodation of several employees is reduced only to the instructor. If your company has a special requirement, we can study a program that meets your needs, like preparing the training material for a specific hardware platform or developing additional content. Don’t hesitate to get in touch via email or the contact page .

Open training sessions are presented in a pleasant environment, with a properly equipped laboratory and Internet access. Classes are usually presented full-time, with a stop for lunch and a coffee break in the morning. If you are interested in attending an open session but there are no classes available, send a message via the contact page and we will notify you as soon as new classes open.

This training can be executed in a remote/online environment. Online training is presented live on a virtual meeting platform like Google Meet or Zoom. In the online modality, students use the emulator (QEMU) to execute the training exercises.

Some pictures from previous training sessions:

Customers testimonials

Testimonials from companies and students who have already attended an Embedded Labworks training session

highlight shape

Samsung is a company leader in the market of high technology and digital media

“One of the best training courses I have ever attended. The instructor has total control of the training agenda and excellent teaching skills”

Adriano Saviolli, Samsung

LG Electronics is a South Korean multinational company and one of the largest electronics companies in Brazil

“I am used to being very critical and it’s been some time since I don’t evaluate a training course with high scores in all aspects. Congratulations on the training!”

Vitor de Paula, LG Electronics

AOC International is the brand of TPV Technology Limited, a manufacturer of LCD and LED displays for computers and televisions

“Unique training and no doubt much more valuable than many university degrees we have today on the subject”

Lucas Tadeu Portela, AOC International

CTEx is a Brazilian military organization subordinate to the science and technology department of the Brazilian government

“The Embedded Labworks training fully met all objectives, as well as being motivating for us to continue learning embedded Linux. I recommend it!”

José Antonio de Sousa Fernandes, CTEx

Inatel is a center of excellence in teaching and research in telecommunications engineering

High-quality training, very helpful and with a highly structured agenda"

Luis Gustavo, Inatel

Intelbrás is a 100% Brazilian company that operates in the areas of security, telecom and networking, being a leader in several market segments

“An excellent professional applying a very good practical training session with a rich study material. Thanks!”

Paulo Morgado, Intelbrás

Still have questions?

Send an email to info@e-labworks.com or leave a message by filling out the form below:


Subscribe to the Embedded Labworks newsletter to receive messages about training, services and news from the embedded systems industry.

highlight shape