Lab Index¶
This page lists the hands-on labs used by the Embedded Linux Learning site.
Naming Convention¶
Lab files use the dayXX-topic-name.md format. Markdown page titles use the DayXX - Topic Name format so the filename, page title, sidebar title, and URL stay consistent.
Labs¶
| Day | Lab | Path |
|---|---|---|
| Day 02 | Day02 - Device List Exploration | labs/day02-device-list.md |
| Day 03 | Day03 - Boot Process Analysis | labs/day03-boot-analysis.md |
| Day 04 | Day04 - Device Tree Overlay | labs/day04/day04-device-tree-overlay.md |
| Day 04 | Day04 - Device Tree Exploration on Raspberry Pi | labs/day04/day04-device-tree.md |
| Day 05 | Day05 - Kernel Module Hello World | labs/day05/day05-kernel-module.md |
| Day 07 | Day07 - Cross-Compile Kernel Module for Raspberry Pi 5 | labs/day07-cross-compile.md |
| Day 08 | Day08 - Device Model Exploration | labs/day08-device-model-explore.md |
| Day 09 | Day09 - GPIO LED Driver | labs/day09/day09-gpio-driver.md |
| Day 11 | Day11 - Multi-GPIO IRQ Driver | labs/day11/day11-multi-gpio-irq.md |
| Day 12 | Day12 - Event-Driven GPIO Driver with poll() | labs/day12/day12-poll-driver.md |
| Day 13 | Day13 - GPIO IRQ Debounce with Workqueue | labs/day13/day13-debounce-workqueue.md |
| Day 14 | Day14 - Event-Driven GPIO Driver | labs/day14/day14-event-driver.md |
| Day 15 | Day15 - User-Space Event Loop and poll() | labs/day15/day15-labs.md |
| Day 16 | Day16 - IOCTL Control Plane | labs/day16/day16-ioctl-control-plane.md |
| Day 17 | Day17 - sysfs Control Plane | labs/day17/day17-sysfs-control-plane.md |
| Day 18 | Day18 - Blocking I/O and Event-Driven Driver | labs/day18/day18-blocking-io.md |
| Day 19 | Day19 - I2C Sensor Driver | labs/day19/day19-i2c-driver.md |
| Day 20 | Day20 - I2C Driver to hwmon | labs/day20/day20-hwmon.md |
| Day 21 | Day21 - hwmon Driver Cache Mechanism | labs/day21/day21-cache-driver.md |
| Day 22 | Day22 - I2C hwmon Driver with Polling Mode | labs/day22/day22-myi2c-polling.md |
| Day 23 | Day23 - I2C Sensor Interrupt | labs/day23/day23-i2c-interrupt.md |
| Day 24 | Day24 - Hybrid Mode Stress Test | labs/day24/day24-hybrid-test.md |
| Day 25 | Day25 - Hybrid Robustness and Update Coalescing | labs/day25/day25-hybrid-robustness.md |
| Day 26 | Day26 - Sensor Core and Bus Layer Refactor | labs/day26/day26-core-bus-refactor.md |
| Day 27 | Day27 - SPI Sensor Driver | labs/day27/day27-spi-driver.md |
| Day 28 | Day28 - SPI IRQ Integration | labs/day28/day28-spi-irq-integration.md |
| Day 29 | Day29 - UART and TTY Subsystem | labs/day29/day29-uart-tty.md |
| Day 31 | Day31 - UART Debugging | labs/day31-uart-debugging.md |
| Day 33 | Day33 - Minimal IIO Driver | labs/day33/day33-minimal-iio-driver.md |
| Day 34 | Day34 - IIO I2C Multi-Channel Driver | labs/day34/day34-iio-i2c-multi-channel-driver.md |
| Day 35 | Day35 - DRDY GPIO IRQ Integration | labs/day35/day35-drdy-gpio-irq.md |
| Day 36 | Day36 - IIO Triggered Buffer | labs/day36/day36-iio-trigger-buffer.md |
| Day 37 | Day37 - IIO FIFO Mode | labs/day37/day37-iio-fifo.md |
| Day 38 | Day38 - IIO Sysfs Control | labs/day38/day38-iio-sysfs-control.md |
| Day 39 | Day39 - IIO Capability Exposure | labs/day39/day39-iio-capability-exposure.md |
| Day 40 | Day40 - Acquisition Mode Control | labs/day40/day40-mode-control.md |
| Day 41 | Day41 - IIO Control Plane v3 Integration | labs/day41/day41-iio-control-plane-v3-integration.md |
| Day 42 | Day42 - IIO Timestamp, FIFO, and Scan Mask | labs/day42/day42-iio-timestamp-fifo.md |
| Day 43 | Day43 - GPIO Button Input Driver | labs/day43/day43-input-driver.md |
| Day 44 | Day44 - Input Userspace Application | labs/day44/day44-input-userspace.md |
| Day 45 | Day45 - TCP Server with poll() and epoll() | labs/day45-46/day45-network-socket.md |
| Day 47 | Day47 - Multi-Message TX Queue | labs/day47/day47-multi-message-tx-queue.md |
| Day 48 | Day48 - epoll and timerfd Idle Timeout | labs/day48-49/day48-epoll-timerfd.md |
| Day 49 | Day49 - signalfd and epoll Graceful Shutdown | labs/day48-49/day49-signalfd-epoll.md |
| Day 50 | Day50 - Pollable Character Driver with Event Queue | labs/day50/day50-pollable-char-driver.md |
| Day 51 | Day51 - Timer-Based Pollable Event Driver | labs/day51/day51-timer-pollable-driver.md |
| Day 52 | Day52 - fasync, SIGIO, and eventfd Integration | labs/day52/day52-fasync-sigio-eventfd.md |
| Day 53 | Day53 - UNIX Domain Socket IPC | labs/day53/day53-unix-domain-socket-ipc.md |
| Day 54 | Day54 - UNIX Domain Socket Advanced IPC | labs/day54/day54-unix-domain-socket-advanced-ipc.md |
| Day 55 | Day55 - SCM_RIGHTS File Descriptor Passing | labs/day55/day55-scm-rights-fd-passing.md |
| Day 56 | Day56 - POSIX Shared Memory IPC | labs/day56/day56-posix-shared-memory-ipc.md |
| Day 57 | Day57 - POSIX Message Queue IPC | labs/day57/day57-posix-message-queue-ipc.md |
| Day 58 | Day58 - POSIX Semaphore IPC | labs/day58/day58-posix-semaphore-ipc.md |