Linux & Open-Source Training Linux Laptops Linux Services
Hands on Embedded Linux Development Training

This 3-day seminar focuses on how Linux has been adapted for use in embedded environments, with specific emphasis on the ARM architecture. Through extensive hands-on lab work, you learn how to install a cross-development environment, build a compact version of Linux for an embedded device, install the build on the target system, and test its operation. You’ll create and test programs that exercise I/O as well as networking applications .

Each participant receives a CD with a complete Linux kernel distribution, including source code, and ARM cross-development toolkit, which provides an ideal platform for embedding Linux into a wide range of consumer and industrial devices.

Participants will have available for use during the class an ARM-based target single-board computer (SBC) kit.

The course covers the key issues in embedding Linux. Such questions as: why Linux and how to embed Linux are examined. The attendees will gain experience in developing applications and system programs.

Attendees will spend approximately 50 percent of the class time actually gaining hands-on experience with these topics, with personal attention and insider knowledge from an experienced embedded Linux developer.

Course Objectives

• To provide an understanding of the essentials of embedded Linux.
• To give you practical experience in developing an embedded Linux system.

The following modules will be covered during the class:

  • What is Open Source and why do you care?
  • Linux features and characteristics
    • Protected memory
    • Processes
      • Foreground vs. background
    • Users and Groups
    • Root user
    • Graphical desktop environment—KDE
  • Filesystems
    • Root filesystem
    • Privileges
    • Links
    • “Mounting” filesystems
    • Filesystem Hierarchy Standard (FHS)
      • Special places
  • The Shell
    • Redirection and Pipes
    • Keyboard shortcuts
    • Scripts
  • Development Environment
    • Install software
    • Configure the host
    • Configure the target
      • Flash filesystems
    • Network Filesystem (NFS)
    • Our first program
  • Eclipse
    • Creating and building C projects
    • Debugging with Eclipse
Embedded Application Programming

  • Accessing hardware from User Space
    • Data acquisition example
  • A simple simulation environment
    • Thermostat example
  • Multi-processing vs. multi-threading—Pthreads
    • Threads
    • Mutexes
    • Adding settable parameters to thermostat
  • Device Drivers - moving hardware access to Kernel space
    • User space view of I/O
    • Miscellaneous Devices
  • Network programming
    • Sockets
    • Client/server paradigm
    • Networked thermostat
    • Multiple monitor threads
    • Embedded web server
  • Using the LCD display
    • Console and frame buffer drivers
    • Root filesystem over NFS
  • Busybox
  • Bootloader
Components and Tools

  • The Linux Kernel
    • The Kernel source tree
    • Configuring and building the kernel
    • Kernel modules
    • Booting Via TFTP
  • Busybox
    • Configuring and building Busybox
  • Bootloader – u-Boot
    • Role of the bootloader
    • The boot process
    • U-Boot features
    • Configuring and building u-boot
  • OpenEmbedded (OE)
    • What is it?
      • Why OE?
    • Elements of OE
    • Setting up OE
  • System initialization -- Getting ready to ship the product
    • The initialization process – inittab
    • Minimizing boot time
    • Loading images to flash
      • MTD partitions

  • Review
  • Where to go from here
Class Duration: Three days

Enrollment Form

Prerequisites: The course is designed for embedded engineers who are new to embedded Linux. Attendees should have experience with the C programming language, processor architectures, memory management and basic Unix knowledge.

Attendees should optionally consider coming to our one-day Eclipse Jumpstart class offered the day after this three-day class.

If you have any questions about the difficulty level of the class, please contact us at:  classes (at)

Optional: All attendees will get a Linux laptop to be used during the class. You have the option of purchasing this laptop with an additional course fee.

On-site: If you would like to arrange an on-site Embedded Linux  class, please contact us at: classes (at)

If you don't see this class scheduled in the timeframe/place of your preference, please let us know your preference for timeframe (which month etc.) and any particular geography preference. Send email with your interest to
Receive Announcements & Linux Tips
Linux is a registered trademark of Linus Torvalds.