Skip to content

Embedded Linux Learning Handbook

This handbook organizes the Embedded Linux learning journey into a practical knowledge base. It keeps the original Day-based learning history, but the main entry points are now topic-oriented: Linux APIs, kernel driver patterns, subsystems, build workflow, labs, and troubleshooting notes.

What This Handbook Covers

Area Focus
Foundations Linux architecture, boot flow, device files, and the Linux device model
Build Workflow Cross compilation, kernel module builds, Device Tree overlay builds, and vermagic checks
Kernel Driver Character devices, file operations, wait queues, poll support, sysfs, ioctl, fasync, and IRQ handling
Linux Subsystems GPIO/gpiod, hwmon, IIO, Input, TTY/UART, and Device Tree overlay integration
Event Loop poll(), select(), epoll, eventfd, timerfd, signalfd, and signal-safe shutdown
IPC UNIX domain sockets, file descriptor passing, POSIX shared memory, POSIX message queues, and semaphores
Network TCP socket programming, multi-client servers, non-blocking I/O, and TX queue handling
API Reference Practical lookup pages for Linux userspace APIs, kernel helper APIs, and subsystem APIs
Labs Reproducible Day-based experiments with code, scripts, and test procedures
  1. Learning Roadmap - follow the concept-oriented learning sequence.
  2. Build and Deployment - understand the build workflow before touching kernel modules.
  3. Kernel Driver Topics - review the driver model and user/kernel interfaces.
  4. Linux Subsystems - connect drivers to real kernel subsystems.
  5. Event Loop and IPC - understand modern Linux event-driven userspace design.
  6. API Reference - use as a lookup guide while reading labs or writing code.
  7. Troubleshooting Index - check common failure patterns and debugging commands.

Architecture Map

Embedded Linux Learning Handbook
|
|-- Build Workflow
|   |-- Cross Compilation
|   |-- Kernel Module Build
|   |-- Device Tree Overlay Build
|   `-- Kernel Version and vermagic
|
|-- Kernel Driver
|   |-- Character Device
|   |-- User/Kernel Interface
|   |-- Blocking and Non-blocking I/O
|   |-- poll / epoll Support
|   `-- fasync / SIGIO
|
|-- Linux Subsystems
|   |-- GPIO / gpiod
|   |-- hwmon
|   |-- IIO
|   |-- Input
|   `-- TTY / UART
|
|-- Userspace Architecture
|   |-- POSIX I/O
|   |-- Event Loop
|   |-- IPC
|   `-- Network Socket
|
`-- Maintenance
    |-- Project Maintenance
    |-- Cloudflare Pages Deployment
    |-- Troubleshooting
    `-- Refactor History

Main Entry Points