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 |
Recommended Reading Path¶
- Learning Roadmap - follow the concept-oriented learning sequence.
- Build and Deployment - understand the build workflow before touching kernel modules.
- Kernel Driver Topics - review the driver model and user/kernel interfaces.
- Linux Subsystems - connect drivers to real kernel subsystems.
- Event Loop and IPC - understand modern Linux event-driven userspace design.
- API Reference - use as a lookup guide while reading labs or writing code.
- 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