EMB-101 · Embedded Linux & BSP

Yocto Project Fundamentals

BitBake, layers and recipes, from a first build to an image you would actually ship.

Practitioner 4 days in person8 half-days online Max 14 in person

Who this course is for

Embedded software engineers who are about to own a Yocto build — and want to understand what BitBake is actually doing before their first real product image depends on it.

Prerequisites

Solid Linux command line and shell basicsGit for source and patch handlingHaving built a kernel or rootfs by hand at least once is helpful

Course outline

Day 1 — BitBake as a build engine

  • The Poky layout: bitbake, oe-core, meta layers and where your work goes
  • Metadata model: recipes, classes, includes and configuration files
  • Tasks and dependencies: how bitbake decides what runs
  • Parsing vs execution: where variables get their final values
  • Reading tmp/work logs when a task fails

Day 2 — Layers and recipe anatomy

  • Layer structure, priorities and bblayers.conf
  • bbappend files and when a patch belongs in a layer vs upstream
  • The recipe lifecycle: fetch, unpack, patch, configure, compile, install
  • SRC_URI, checksums and licence fields
  • Writing a recipe for a real piece of software from a tarball

Day 3 — Images and packages

  • Package splitting: PACKAGES, FILES and what ends up where
  • Image recipes, package groups and IMAGE_FEATURES
  • MACHINE vs DISTRO vs image: which policy lives at which level
  • Package feeds and formats (ipk, rpm, deb)
  • SDK generation and building applications outside the tree

Day 4 — Speed and reproducibility

  • Shared state cache and hash equivalence
  • bitbake-diffsigs: finding why something rebuilt
  • Pinning SRCREV and managing recipe revisions
  • Build performance: parallelism, downloads mirror and sstate reuse
  • Reproducible builds: what the project guarantees and what it does not

Hands-on labs

Labs follow the academy model — 35% principles, 20% guided investigation, 45% engineering studio. Every claim you make in a lab is backed by a trace, a counter or a measurement you captured yourself. How we teach

  1. Lab: Build core-image-minimal for qemuarm from a clean checkout, then trace one package through tmp/work from fetch to package
  2. Lab: Write a recipe for a supplied tarball, add it to an image and verify the files land where FILES says they should
  3. Lab: bbappend an existing recipe to change a configuration file, and prove with bitbake -e which layer won
  4. Lab: Force a rebuild you did not expect, then use bitbake-diffsigs to name the variable that changed
  5. Lab: Generate an SDK, install it in a fresh directory and cross-compile a test program against it

Capstone project

Starting from an empty conf directory, assemble a product-style build for a QEMU target: your own layer holding one new recipe and one bbappend, a custom image recipe, a package feed and an SDK — then delete tmp and rebuild, and deliver the layer repository, build manifest and before/after image hashes as the reproducibility evidence.

What you leave with

  • A working Yocto build you assembled rather than inherited
  • Fluency with bitbake, bitbake -e/-c and bitbake-layers for diagnosis
  • Recipe and bbappend patterns that will pass review
  • An sstate and signature-debugging method for phantom rebuilds
  • A reproducibility checklist for your own product images

How it runs

Every course follows the same model: 35% principles, 20% guided investigation, 45% engineering studio. You leave with working code, raw measurements and an evidence-based report — not a certificate of attendance. Read the methodology or see a full sample lesson.

Material is adapted to your kernel version, hardware and workload before a private delivery. For public cohorts, the environment is provided and configured.

Questions

Who is this course for?

Embedded software engineers who are about to own a Yocto build — and want to understand what BitBake is actually doing before their first real product image depends on it. It sits at practitioner level within the Embedded Linux & BSP track.

What do I need to know already?

Specific prerequisites for this course: Solid Linux command line and shell basics; Git for source and patch handling; Having built a kernel or rootfs by hand at least once is helpful. We confirm levels before the cohort starts and adapt if a group is stronger or weaker than expected.

Can this run privately for my team?

Yes. Any course runs on-site at your offices anywhere, or live online for a distributed team, with labs adapted to your hardware and codebase.

What is the difference between in-person and online?

In person is 4 full days with hardware on your desk, capped at 14. Online is 8 half-day sessions across about two weeks so you can keep working, capped at 20, with remote lab access.

Do you invoice companies?

Yes. Purchase orders are accepted and invoicing is available in USD, EUR, GBP, SAR and CAD.

Upcoming dates

DatesWhereSeatsEarly birdRegular
15 Nov – 18 Nov 20264 full days RiyadhIn person · KAFD Conference Centre 12 of 14 SAR 9,450until 16 OctSAR 10,500
15 Nov – 18 Nov 20264 full days Kuwait CityIn person · Al Hamra Tower 7 of 14 KWD 780until 16 OctKWD 870
22 Nov – 25 Nov 20264 full days MuscatIn person · Knowledge Oasis Muscat 12 of 14 OMR 970until 23 OctOMR 1,080
29 Nov – 8 Dec 20268 half-days Gulf bandLive online · 09:00–13:00 GMT+3 18 of 20 US$1,800until 30 OctUS$2,000
30 Nov – 3 Dec 20264 full days OttawaIn person · Kanata North Tech Park 7 of 14 CAD 3,430until 31 OctCAD 3,810
30 Nov – 3 Dec 20264 full days TorontoIn person · MaRS Discovery District 12 of 14 CAD 3,430until 31 OctCAD 3,810
30 Nov – 9 Dec 20268 half-days Europe bandLive online · 09:00–13:00 CET 7 of 20 US$1,800until 31 OctUS$2,000
7 Dec – 10 Dec 20264 full days LondonIn person · Shoreditch Works 7 of 14 GBP 1,960until 7 NovGBP 2,180
7 Dec – 16 Dec 20268 half-days Americas bandLive online · 13:00–17:00 ET 12 of 20 US$1,800until 7 NovUS$2,000
14 Dec – 17 Dec 20264 full days BerlinIn person · Factory Görlitzer Park 12 of 14 EUR 2,320until 14 NovEUR 2,580

Dates shown for the next few months. If nothing fits, tell us where and when — cohorts are added on demand, and private delivery can be scheduled any week.

More in Embedded Linux & BSP

EMB-1104 days Custom BSP Layers Writing a board support layer from scratch: machine configuration, kernel recipe, bootloader and device tree. Advanced Practitioner-taught SAR 12,000Next 25 Oct EMB-1203 days Buildroot in Practice The lighter alternative to Yocto: when Buildroot is the right call and how to use it well. Practitioner Practitioner-taught SAR 7,880Next 11 Oct EMB-2013 days U-Boot Porting & Customisation The bootloader layer: board bring-up, environment, boot scripts and recovery paths. Advanced Practitioner-taught SAR 9,000Next 18 Oct EMB-2103 days Secure Boot & Chain of Trust Establishing and maintaining a verified boot chain from ROM to userspace, including key management reality. Advanced Practitioner-taught SAR 9,000Next 15 Nov EMB-2202 days Init Systems & Fast Boot systemd and the alternatives, plus measuring and cutting boot time to a target. Practitioner Practitioner-taught SAR 5,250Next 1 Nov EMB-3013 days Read-Only Rootfs & OTA Updates Update strategies that survive power loss in the field, and the filesystem layout that makes them possible. Practitioner Practitioner-taught SAR 7,880Next 8 Nov EMB-3102 days SBOM & Licence Compliance Producing a defensible software bill of materials and meeting open source licence obligations — now a regulatory matter, not just good practice. Practitioner Practitioner-taught SAR 5,250Next 25 Oct EMB-3202 days Long-Term Maintenance Strategy Keeping a shipped product secure and buildable for a decade, which is where most embedded programmes fail. Advanced Practitioner-taught SAR 6,000Next 22 Nov