Narrated ‘Ali bin Abi Talib (RA): The Prophet (RA) stood up for a funeral (to show respect) and thereafter he sat down. (Dawud)

Embedded Linux Development (LFD450)


This instructor-led course will give you the step-by-step framework for developing an embedded Linux product. Starting with the cross-compiler, you’ll learn about setting up a development system, boot loaders, the kernel, drivers, device tree, and all the various software and decisions that need to be made when building a user space root filesystem, such as those in use in consumer electronics, military, medical, industrial, and auto industries. Hands-on labs with a RISC-V based emulated development target allow students to practice both coding and building the various parts of the system covered in class.


Training Options

Classroom Training

Online Instructor Led

Onsite Training

Corporate Training Options

Online Instructor Led


Classroom Training

undraw_building_re_xfcm 1

Onsite Training

Overseas Training

Course Information

– Objectives
– Who You Are
– The Linux Foundation
– Copyright and No Confidential Information
– Linux Foundation Training
– Certification Programs and Digital Badging
– Linux Distributions
– Platforms
– Preparing Your System
– Things change in Linux
– Documentation and Links

– Linux Distributions
– Virtual Machine Installation
– Procedures
– Labs

– Overview on How to Contribute Properly
– Know Where the Code is Coming From: DCO and CLA
– Stay Close to Mainline for Security and Quality
– 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

– Basic Concepts
– Protection Motivations
– Off the Shelf (OTS)
– Embedded Caveats
– Real Time Operating Systems
– Real Time Linux
– Custom Hardware Assistance
– Resources

– Introduction
– Why is it Hard?
– Project Goal Considerations
– Links to Additional Discussions
– Labs

– Introduction
– Kbuild Makefiles
– Kconfig Basics
– Searching Kconfig

– The Compiler Triplet
– Built-in Linux Distribution Cross Compiler
– Linaro
– CodeSourcery
– crosstool-ng
– Buildroot
– OpenEmbedded
– Yocto Project
– Clang
– Labs

– What is QEMU?
– Why use QEMU?
– Emulated Architectures
– Image Formats
– Labs

– Why do we use uSD cards?
– Getting SW onto a uSD card
– Booting from flash
– Why is using uSD cards a bad idea?
– Labs

– Using virtual Hardware
– An easier way to develop
– The Boot Sequence using TFTP and NFSroot
– Objectives of the Lab
– Labs

– Boot Code Stages
– Some GPL BIOSes
– Some GPL Boot Loaders
– Das U-Boot
– U-Boot Command Line
– U-Boot Environment
– Labs

– Configuring the Kernel for the Development Board
– Labs

– Types of Devices
– Device Nodes
– Character Drivers
– An Example
– Labs

– What are Device Trees?
– What Device Trees Do and What They Do Not Do
– Device Tree Syntax
– Device Tree Walk Through
– Device Tree Bindings
– 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- Using Device Tree Data in Drivers
– Coexistence and Conversion of Old Drivers
– LabsContent

– Embedded Filesystem Goals
– Directories: a Survey
– Embedded Filesystem Types

– Objectives of the Lab
– Labs

– SysV init vs. BusyBox init
– udev vs. BusyBox mdev
– Systemd
– C Library Choices
– Labs

– Configuring uClibc for NFS
– Labs

– What is musl?
– Configuring BuildRoot for musl
– Labs

– Basic Workings
– Integrated with Buildroot
– Labs

– Tracing and Profiling
– Ftrace, Trace-Cmd, Kernelshark
– Perf
– Using perf
– sysctl
– SysRq Key
– oops Messages
– Kernel Debuggers
– debugfs

– Oft-Needed Embedded Components
– Taking Inventory of Kernel Sizes

– What are MTD Devices?
– NAND vs. NOR vs. eMMC
– Driver and User Modules
– Flash Filesystems

– SquashFS
– Deploying in an MTD Partition
– Labs

– When do we need to update?
– Update strategies
– Prebuilt upgrade systems
– Labs

– Predictability and Preemption and Locks
– PREEMPT RT Project
– Real-Time Checklist

– Evaluation Survey

– Linux and UNIX
– Monolithic and Micro Kernels
– Main Kernel Tasks
– User-Space and Kernel-Space

– Installation and Layout of the Kernel Source
– Kernel Browsers
– Kernel Configuration Files
– Why is it Hard? Part 2

– Coding Style
– kernel-doc
– Using Generic Kernel Routines and Methods
– Error Numbers, Printing Kernel Output, syslogd
– Task Structure
– Memory Allocation
– Transferring Data between User and Kernel Space

– What are Modules?
– A Trivial Example
– Compiling Modules
– Modules vs Built-in
– Module Utilities
– Automatic Module Loading
– Module Usage Count
– Module Licensing
– Exporting Symbols
– Resolving Symbols **
– Labs

– Objectives of the Lab
– Labs

– Objectives of the Lab
– Labs

– An easier way to develop
– The Boot Sequence using TFTP and NFSroot
– Objectives of the Lab
– Labs

This course is for experienced developers who need to develop an embedded Linux product from the ground up.

Corporate Training Options

Classroom Training

Customized to your Team’s needs

Onsite Training

Deliver at your Work Location

Online Instructor Led

Connect Online from Anywhere

Upcoming Batch

Enquiry Form:


Mohammed Aljbreen Operation Specialist, SAMA

The Clarity of the Content was very good. The explanation of the trainer with in-depth knowledge in a proper flow really impressed me to give 5 star rating.

Arindam Chakraborty Systems Specialist, King Abdullah University of Sciences & Technology

The Instructor was really impressive. Clear cut explanation of every topic he covered with real time scenarios.

Sher Afzal Khan Cloud Engineer, Cloud 9 Networks

The Trainer and the Course Material, both are good. Good flow of explanation with simple examples. The complete training was focused on current industry challenges.

Jawed Ahmad Siddiqui Sr. System Administrator, Saudi Ceramics

The Trainer’s presentation was impressed me to continue the course till end. Never feel bore till the entire sessions. She studied our mindset and follows.

    Our Corporate Clients

    Best Solution To Transform Your Corporate Envoirnment.

    Not sure,
    which course to choose?

    Our Clients across the Globe!

    Our Offices.


    Office No- 306, Galadari Mazda Building Airport Road, Garhoud, Dubai.


    C / Aribau 11 2-4 08913 Badalona Barcelona,


    85 Skeffington Road East Ham E6 2NA,


    Level 22, HWT Tower, 40 City Road, Southbank, Melbourne VIC 3006.


    12B, Chitrapuri Hills, Hyderabad, Telangana