Embedded Linux Development (LFD450)

This 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.

$3150 Enroll Get A Quote

Course Overview

This course will teach you the tools and techniques necessary for developing embedded Linux devices.

Show More

In 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.

Schedule

Instructor-Led
4/29/2019 - 5/2/2019
SAN FRANCISCO
GuaranteedThis course has reached its minimum class size and is guaranteed to run on the scheduled date.
$3150 Add to cart Generate A Quote
Instructor-Led
6/17/2019 - 6/20/2019
AUSTIN
$3150 Add to cart Generate A Quote
Instructor-Led
8/5/2019 - 8/8/2019
ATLANTA
$3150 Add to cart Generate A Quote
Instructor-Led
9/23/2019 - 9/26/2019
ATLANTA
$3150 Add to cart Generate A Quote
If none of these fits your schedule, check out our Partner offerings >

Course Outline

  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.

Prerequisites

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. Pre-class preparation material will be provided before class.

At a Glance

Delivery Method

Live (Classroom)

Includes

  • 4 days of Instructor-led class time
  • Hands-on Labs & Assignments
  • Resources & Course Manual
  • Certificate of Completion
  • Free Chromebook

Experience Level

   Intermediate

Course Rating

   

Pro-Tip

Training 5 or more individuals?
Get a Corporate Quote >

chromebook

Get training and a free Chromebook.

When you train with The Linux Foundation you’re already getting the best open source training straight from the source. And now, we are including a free Chromebook with the purchase of select Linux Foundation instructor-led training courses to help you get the most out of your training experience.

Learn More