All you need to know to run Linux and applications on your own system.
Overview
Everything you need to know to build, boot and debug your own embedded Linux system, leveraging many features implemented by the Open Source community. Add your own applications.
Starting in a very progressive way from the ground up to understand every component deployed in 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 | 5 days (in-person), 32 hours (online) |
Hardware | BeaglePlay board with TI Sitara AM625 SoC (ARM64) |
Linux kernel version | 6.12 (LTS) used in practical labs |
Prerequisites | Familiarity with the Linux command line |
Upcoming sessions (in-person and online)
Trainer | Dates | Cost |
Michael Opdenacker | Apr. 14-17, 22-25, online 15:00 to 19:00 UTC+1 Seats left – Register | 2,490 EUR or 2,590 USD + 20% V.A.T. |
Michael Opdenacker | May 5-9, Avignon, France 40 hours – 9:00 to 18:00 UTC +1 Seats left – Register | 2,990 EUR or 3,090 USD + 20% V.A.T. |
Also available on-line or through private sessions worldwide. Ask us for a quote.
Agenda
Part 1 – Overview, bootloader, Linux kernel
- Demo: Embedded Linux from scratch in 50 minutes.
- Introduction to embedded Linux.
- Differences between desktop / server and embedded Linux distributions .
- Bootloader principles – Booting on ARM, RISC-V and x86.
- U-Boot bootloader
- The Linux kernel: getting the sources, configuration and building
Part 2 – Booting and basic root filesystem
- Booting the Linux kernel
- C library and cross-compiling toolchain.
- Booting over NFS – Basic system startup with BusyBox.
- Filesystem contents.
- Building a minimal root filesystem.
- Configuring system startup with BusyBox.
- Block devices and filesystems – Booting the board from SD card.
Part 3 – Declaring and accessing hardware – Adding Open Source components
- Working with raw flash storage.
- Declaring and accessing hardware – The Device Tree.
- Using other open source components.
- Licensing constraints.
- Cross-compiling open source components.
Part 4 – Build systems and system startup
- Automating system building – Buildroot and OpenEmbedded/Yocto.
- Building a system image with Buildroot.
- System startup with systemd.
- Software stacks for graphics, multimedia, networking…
Part 5 – Applications and debugging
- Build your own software.
- Profiling and tracing applications.
- Remote debugging. Using Visual Studio code.
- Final challenge: fix a broken system with multiple types of bugs.
- Extra resources: websites, conferences, books.
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: Can the practical labs be run on the CPU that my project uses?
A: The Linux kernel provides the same mechanisms for all types of hardware, so what you learn on another platform will apply on other ones as well. However, 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.