Embedded Linux
Summary
The course aims at teaching the fundamentals of using Linux on an Embedded System. 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.
Since familiarity with the command line and networking is essential to working on an Embedded Linux system, the course has a couple of sessions to refresh these areas.
Pre-requisite
-
C Programming
-
Using GNU/Linux
-
Embedded Systems
Duration
-
Duration: 60 hours
-
Span: 5 weeks
Syllabus
Desktop Linux Review
Command Line Basics
-
History of GNU/Linux
-
Logging On To The System
-
Changing Your Password
-
Using UNIX Commands
-
File and Directory Commands
-
Getting Help
-
Logging Off The System
The Filesystem
-
Hierarchical File Structure
-
File Types
-
File Names
-
Pathnames
-
Access Permissions
-
Mounting
Shell Basics
-
What is the Shell?
-
Processes
-
Job Control
-
Redirection
-
Variables
-
Quoting
-
Pipes and Filters
-
Scripting Introduction
System Boot Sequence
-
Overview
-
Role of Bootloader
-
Specifying Boot Arguments
-
Role of Ramfs
-
Role of Init
-
Runlevels
-
Getty and Login
-
Bash Login Script
Networking
-
Accessing a System Remotely
-
Transfering Files Between Systems
-
Network Interfaces
-
Configuring Network Interfaces
-
DHCP - dhclient
Embedded Linux
System Components
-
Boot Loader
-
Console
-
Storage Media
-
Filesystems
-
Root Filesystem + Shell + Utilities
-
Compiler
-
C Library
-
Debuggers
Getting Started
-
Accessing the target
-
Console on Serial Port
-
Minicom Usage
-
Devices Intro.
-
Memory Interfacing
-
Device Interfacing
-
Memory Mapped IO
-
IO using Controllers
Driver Intro.
-
Unix/Linux Device Abstraction
-
Device Files
-
Types of Drivers
-
Keypad and LCD example
Kernel Modules
-
Kernel Modules Introduction
-
Advantages of Kernel Modules
-
Listing, Loading, Unloading
Filesystems
-
Filesystems Internals - inodes, dentry
-
Filesystems - ext2, fat
-
Network Filesystems
-
Ramdisks
-
USB Pen Drive
-
Pseudo filesystems - proc, sysfs
Using U-Boot
-
Processor
-
Interfaces
-
Memory Map
-
U-Boot commands
Ramdisks and NFS
-
Downloading program to target
-
TFTP commands
-
Using Ramdisks
-
Building Ramdisks
-
Using NFS as Root FS
Memory Technology Devices
-
NAND Flash and NOR Flash
-
MTD vs Block devices
-
Partitioning
-
Flash FileSystems - JFFS2
-
UBI
Building Embedded Linux
Build Tools
-
Make
-
Make Rules
-
Macros
-
Suffix Rules
-
-
Cross compiling hello world program
-
About cross compilers
-
GNU Tool Chain
-
Using cross compilers
-
Building Userspace
-
Busybox Introduction
-
Configuring Busybox
-
Rebuilding the root file system
-
Building third party applications
-
configure
-
build, host, target
-
cross compilation
-
-
Contents of root filesystem
-
Building root filesystem
-
Space optimization
Building the Kernel
-
Kernel configuration
-
Building the kernel
-
Booting from the new kernel
-
Kernel Configuration Recipies
Building the Boot Loader
-
U-Boot Introduction
-
Role of a Boot Loader
-
Commands
-
Building U-Boot
