Useful Links
Computer Science
Operating Systems
Linux
Embedded Linux
1. Introduction to Embedded Linux
2. Core Components of an Embedded Linux System
3. Development Environment Setup
4. Embedded Linux Build Systems
5. The Linux Kernel for Embedded Systems
6. The Root Filesystem
7. The Boot Process
8. Application Development and Debugging
9. System Optimization
10. Advanced Topics
The Linux Kernel for Embedded Systems
Kernel Source Management
Obtaining Kernel Source Code
Mainline Kernel
Stable Kernel Releases
Long-Term Support Kernels
Vendor-Specific Kernels
Board Support Packages
Vendor Patches
Patch Management
Version Control and Patches
Git Workflow
Patch Application
Patch Creation
Kernel Configuration
Configuration System Overview
Kconfig Language
Configuration Dependencies
Configuration Inheritance
Configuration Files
The .config File
Default Configurations
Architecture-Specific Configs
Configuration Tools
make menuconfig
make xconfig
make nconfig
make oldconfig
Key Configuration Areas
CPU Architecture and System Type
Device Drivers
Filesystems
Networking Options
Power Management
Security Options
Configuration Management
Saving Configurations
Sharing Configurations
Configuration Fragments
Kernel Building
Build Process Overview
Compilation Stages
Build Artifacts
Build Dependencies
Cross-compiling the Kernel
Environment Setup
Build Commands
Kernel Image Types
zImage
uImage
Image
bzImage
Building Kernel Modules
In-Tree Modules
Out-of-Tree Modules
Module Installation
Build Optimization
Parallel Builds
Incremental Builds
Build Caching
Device Tree System
Device Tree Concepts
Purpose and Benefits
Hardware Description Language
Runtime Hardware Discovery
Device Tree Syntax
DTS File Structure
Node Hierarchy
Properties and Values
References and Labels
Device Tree Compilation
Device Tree Compiler (dtc)
Source to Binary Conversion
Validation and Debugging
Device Tree Usage
Bootloader Integration
Kernel Integration
Runtime Modification
Device Tree Overlays
Overlay Concepts
Dynamic Configuration
Overlay Application
Kernel Device Drivers
Driver Architecture Overview
Kernel Driver Model
Device Classes
Driver Registration
Driver Types
Character Drivers
Block Drivers
Network Drivers
Platform Drivers
Bus Systems and Drivers
Platform Bus
I2C Bus
SPI Bus
USB Bus
PCI Bus
Driver Development
Driver Structure
Driver Entry Points
Resource Management
Error Handling
Device Tree Integration
Device Tree Bindings
Property Parsing
Resource Acquisition
Kernel Module Development
Module Structure
Module Parameters
Module Loading and Unloading
Module Dependencies
Driver Debugging
Kernel Debugging Techniques
Driver Testing
Debug Output
Previous
4. Embedded Linux Build Systems
Go to top
Next
6. The Root Filesystem