Embedded Linux

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