Training The Linux Foundation

Training goals dlearning

code: LFD450

This 4 days course will give you the step-by-step framework for developing an embedded Linux product. You’ll learn the methods used to adapt the Linux kernel and user-space libraries and utilities to particular embedded environments, such as those in use in consumer electronics, military, medical, industrial, and auto industries.

During this course you’ll learn:

  • The Linux kernel architecture, emphasizing the essential points relevant to adapting the kernel to a custom embedded platform.
  • The techniques for right-sizing the system to meet project constraints
  • The multitude of resources available for constructing a cross development environment for embedded projects.
  • The options available for populating libraries and application user-spaces to meet the goals and constraints of embedded systems.
  • And more.

The information in this course will work with any major Linux distribution.

Conspect Show list

  1. Introduction
    • Objectives
    • Who You Are
    • The Linux Foundation
    • Linux Foundation Training
    • Linux Distributions
    • Platforms
    • Preparing Your System
    • Things change in Linux
    • Documentation and Links
    • Course Registration
  2. Preliminaries
    • Linux Distributions
    • Virtual Machine Installation
    • Procedures
  3. How to Work in OSS Projects **
    • Overview on How to Contribute Properly
    • Study and Understand the Project DNA
    • Figure Out What Itch You Want to Scratch
    • Identify Maintainers and Their Work Flows and Methods
    • Get Early Input and Work in the Open
    • Contribute Incremental Bits, Not Large Code Dumps
    • Leave Your Ego at the Door: Don’t Be Thin-Skinned
    • Be Patient, Develop Long Term Relationships, Be Helpful
  4. Embedded and Real-Time Systems Concepts
    • Basic Concepts
    • Protection Motivations
    • Off the Shelf (OTS)
    • Embedded Caveats
    • Real Time Operating Systems
    • Real Time Linux
    • Custom Hardware Assistance
    • Resources
  5. Cross-Development Environments: Goals and Needs
    • Introduction
    • Why is it Hard?
    • Project Goal Considerations
    • Links to Additional Discussions
    • Labs
  6. Kbuild System
    • Introduction
    • Kbuild Makefiles
    • Kconfig Basics
  7. Cross-Development Toolchain
    • The Compiler Triplet
    • Built-in Linux Distribution Cross Compiler
    • Linaro
    • CodeSourcery
    • crosstool-ng
    • Buildroot
    • OpenEmbedded
    • Yocto Project
    • Clang
    • Labs
  8. Basic Target Development Board Setup
    • Objectives of the Lab
    • Labs
  9. Booting the Target Development Board from uSD
    • Objectives of the Lab
    • Labs
  10. Booting a Target Development Board over Ethernet
    • Objectives of the Lab
    • Labs
  11. Boot loaders and U-Boot
    • Boot Code Stages
    • Some GPL Boot Loaders
    • Das U-Boot
    • U-Boot Command Line
    • U-Boot Environment
    • Labs
  12. Kernel Configuration, Compilation, Booting
    • Configuring the Kernel for the Development Board
    • Labs
  13. Device Drivers**
    • Types of Devices
    • Device Nodes
    • Character Drivers
    • An Example
    • Labs
  14. Device Trees
    • What are Device Trees?
    • What Device Trees Do and What They Do Not Do
    • Device Tree Syntax
    • Device Tree Walk Through
    • Device Tree Bindings
    • Device Tree support in Boot Loaders
    • Using Device Tree Data in Drivers
    • Coexistence and Conversion of Old Drivers
    • Labs
  15. Target Filesystem Packaging
    • Embedded Filesystem Goals
    • Directories: a Survey
    • Embedded Filesystem Types
  16. Build Target Root Filesystem
    • Objectives of the Lab
    • Labs
  17. Root Filesystem Choices
    • SysV init vs. BusyBox init
    • udev vs. BusyBox mdev
    • Systemd
    • C Library Choices
  18. Configuring uClibc
    • Configuring uClibc for NFS
    • Labs
  19. Build BusyBox Utility Suite
    • Basic Workings
    • Integrated with Buildroot
    • Labs
  20. Kernel Monitoring and Debugging
    • Tracing and Profiling
    • Ftrace, Trace-Cmd, Kernelshark
    • Perf
    • Using perf
    • sysctl
    • SysRq Key and oops Messages
    • Kernel Debuggers
    • Labs
  21. Right-Sizing
    • Oft-Needed Embedded Components
    • Taking Inventory of Kernel Sizes
  22. Memory Technology Devices (Flash Memory Filesystems)
    • What are MTD Devices?
    • NAND vs. NOR vs. eMMC
    • Driver and User Modules
    • Flash Filesystems
    • Labs
  23. Compressed Filesystems
    • SquashFS
    • Deploying in an MTD Partition
    • Labs
  24. System Upgrades
    • When do we need to update?
    • Update strategies
    • Prebuilt upgrade systems
    • Labs
  25. Real-Time Extensions
    • Predictability and Preemption and Locks
    • PREEMPT_RT Project
    • Real-Time Checklist
  26. Closing and Evaluation Survey
    • Evaluation Survey

** These sections may be considered in part or in whole as optional. They contain either background reference material, specialized topics, or advanced subjects. The instructor may choose to cover or not cover them depending on classroom experience and time constraints.

Download conspect training as PDF

Additional information


The course is primarily intended for experienced developers, programmers, and engineers who are interested in learning how to adapt Linux to an embedded system. You should be familiar with basic Linux utilities, know the C programming language, and be comfortable developing for Linux or UNIX.

Difficulty level
Duration 4 days

The participants will obtain certificates signed by The Linux Foundation.


Certified The Linux Foundation Trainer.

Additional informations

Pre-class preparation material will be provided before class.

Other training The Linux Foundation | Embedded Linux

Training thematically related


Operation Systems


Contact form

Please fill form below to obtain more info about this training.

* Fields marked with (*) are required !!!

Information on data processing by Compendium - Centrum Edukacyjne Spółka z o.o.

1450 EUR


Discount codes

Discount code may refer to (training, producer, deadline). If you have a discount code, enter it in the appropriate field.
(green means entering the correct code | red means the code is incorrect)



Traditional training

Sessions organised at Compendium CE are usually held in our locations in Kraków and Warsaw, but also in venues designated by the client. The group participating in training meets at a specific place and specific time with a coach and actively participates in laboratory sessions.

Dlearning training

You may participate from at any place in the world. It is sufficient to have a computer (or, actually a tablet, or smartphone) connected to the Internet. Compendium CE provides each Distance Learning training participant with adequate software enabling connection to the Data Center. For more information, please visit site



Paper materials

Traditional Materials: The price includes standard materials issued in the form of paper books, printed or other, depending on the arrangements with the manufacturer.

Ctab materials

Ctab materials: the price includes ctab tablet and electronic training materials or traditional training materials and supplies provided electronically according to manufacturer's specifications (in PDF or EPUB form). The materials provided are adapted for display on ctab tablets. For more information, check out the ctab website.



    • General information
    • Guaranteed dates
    • Last minute (-10%)
    • Language of the training
    • English
    • General information
    • Guaranteed dates
    • Last minute (-10%)
    • Language of the training
    • English
Book a training appointment