Design - Develop - Deploy

Building Embedded Linux Systems

Summary

The course introduces the developer to different components of an embedded Linux system, provides information on using cross-compilers, building the kernel, building the root filesystem, building U-boot and building the tool chain.

Pre-requisite

  • C Programming

  • Using GNU/Linux

  • Embedded Systems

Duration

  • Duration: 36 hours

  • Span for Weekdays: 3 weeks

  • Span for Weekends: 5 weeks

Syllabus

Components of GNU/Linux System

  • Boot Loader

  • Console

  • Storage Media

  • Filesystems

  • Root Filesystem + Shell + Utilities

  • Compiler

  • C Library

  • Debuggers

Make

  • Make Rules

  • Macros

  • Suffix Rules

Introduction to Drivers

  • Unix/Linux Device Abstraction

  • Device Files

  • Types of Drivers

  • Mouse Device Access

  • Sound Mixer Device

  • RTC Access through /proc

  • Print Partition Table

Hello Embedded World!

  • Accessing the target

    • Console on Serial Port

    • Minicom Usage

  • Cross compiling hello world program

    • About cross compilers

    • GNU Tool Chain

    • Using cross compilers

  • Downloading program to target

    • TFTP commands

Building Applications

  • Building third party applications

    • configure

    • build, host, target

    • cross compilation

Building Filesystem Image

  • Storage Types

  • MTD devices

  • Filesystems

  • Creating filesystem image from filesystem contents

  • Flashing root filesystem

Building Shell and Utilites

  • Busybox Introduction

  • Configuring Busybox

  • Rebuilding the root file system

Building a Root Filesystem

  • Contents of root filesystem

  • Building root filesystem

  • Space optimization

Building the Kernel

  • Kernel configuration

  • Building the kernel

  • Booting from the new kernel

  • Kernel Boot Args

Building the Boot Loader

  • U-Boot Introduction

  • Role of a Boot Loader

  • Commands

  • Building U-Boot