Yocto Project — Embedded Linux Distribution Engineering¶
A structured course for hardware and software engineers who need to build, own, and ship a custom embedded Linux—not just install one. The goal is clarity first: you should finish with a mental model that survives release renames and new boards.
Time investment (typical): 4–10 weeks part-time for Modules 0–6; full course including production topics 3–6 months alongside real hardware.
What you will be able to do
- Explain how BitBake, recipes, layers, and images relate end-to-end.
- Reproduce a build from metadata alone (team-ready, not "works on my laptop").
- Add a package, patch a component, and ship a smaller, testable image.
- Debug failures using logs and task graphs instead of guessing.
- Know when Yocto is the right tool—and when Buildroot or a vendor BSP is faster.
Step-by-step lectures¶
Each module is a separate file under Lecture/ with labs and previous/next navigation. Work in order: Lecture-01 through Lecture-16.
| # | Topic | Lecture |
|---|---|---|
| 1 | How to use this course | Lecture-01.md |
| 2 | Module 0 — Prerequisites and host setup | Lecture-02.md |
| 3 | Module 1 — What Yocto is (and is not) | Lecture-03.md |
| 4 | Module 2 — Architecture in one picture | Lecture-04.md |
| 5 | Module 3 — First successful build | Lecture-05.md |
| 6 | Module 4 — Recipes: the atoms of the system | Lecture-06.md |
| 7 | Module 5 — Layers: how metadata stays maintainable | Lecture-07.md |
| 8 | Module 6 — Images, packages, and features | Lecture-08.md |
| 9 | Module 7 — Kernel, bootloader, device tree | Lecture-09.md |
| 10 | Module 8 — SDK and application workflow | Lecture-10.md |
| 11 | Module 9 — Debugging builds like an engineer | Lecture-11.md |
| 12 | Module 10 — Licenses, compliance, supply-chain | Lecture-12.md |
| 13 | Module 11 — Performance, caching, and CI | Lecture-13.md |
| 14 | Capstone projects | Lecture-14.md |
| 15 | Glossary and quick reference | Lecture-15.md |
| 16 | Further reading (links + maintainer tip) | Lecture-16.md |
All step-by-step content, labs, glossary, and external links live in the Lecture/ files above.
Pro tip: when documentation and the internet disagree, trust the docs matching your exact Yocto release branch—metadata syntax and variable names do evolve.