A modern, AI-assisted playbook for mastering Linux Kernel Driver development.
Hardware Platform : NXP i.MX6ULL. ; RK 3566;
Neo-Embedded-Linux is a next-generation repository dedicated to embedded Linux learning and driver development. Unlike traditional tutorials, this project leverages AI Agents (Gemini CLI) to govern knowledge bases, standardize code quality, and accelerate the learning curve from "Hello World" to complex subsystem drivers.
-
🧠 AI-Governed Knowledge Base:
📘 Deep-Dive Documentation:
-
⚡ Modern Workflow
-
📂 Structured Engineering
| Directory | Description |
|---|---|
note/ |
The Core Brain. Deep technical notes, architectural diagrams (Mermaid), and best practices. Highlights: note/KernelLearning最佳实践.md, note/DTS/, note/Kbuild/ |
prj/ |
The Code Forge. Source code for kernel drivers and applications. Includes: 01_hello_drv, gpio_drv, and standardized Makefiles. |
sdk/ |
The Foundation. NXP/100ASK BSP, Linux 4.9 Kernel source, and Toolchains. |
docs/ |
The Reference. Official datasheets (IMX6ULL RM), board schematics, and vendor manuals. |
GEMINI.md |
The Agent Protocol. Rules and conventions for AI Agents interacting with this repository. |
- Hardware: NXP i.MX6ULL EVB( 100ASK_IMX6ULL_PRO); TSPI RK3566.
- SDK:
- Host: Linux (Ubuntu 22.04+) on Windows (WSL2).
- Toolchain:
arm-linux-gnueabihf-(provided in i.MX6 SDK) /aarch64-none-linux-gnu-(provided in TSPI SDK).
- 100ask BSP sync & py-3.10 fix →
note/sdk/01_100ask-BSP同步与py-3.10l适配.md - Kernel pre-build & out-of-tree module flow →
note/sdk/02_内核预编译与树外module开发流程.md compile_commands.jsonvia Bear →note/sdk/03_使用Bear生成编译数据库.md- NFS rootfs mount →
note/sdk/00_NFS挂载准备.md - Kernel debug / klog →
note/devp/kdebug.md,note/devp/klog-session.md
- Virtual process address space, user/kernel split →
note/虚拟化/进程地址空间/00-进程地址空间.md - Page table & MMU →
note/虚拟化/进程地址空间/02-进程地址空间-页表与MMU.md,03-虚实之间:MMU的无感与负担.md - vDSO / vvar →
01-vDSO与vvar.md - ABI & linker config →
note/虚拟化/ABI/01-ABI-ld-cfg.md,混合编程-ABI.md - ELF parsing demo →
note/虚拟化/ABI/Demo-ELF地址空间解析.md - Observability tooling: gdb / objdump / perf →
04-gdb-quickstart.md,05-elf-debug-info-deep-dive.md,06-disassembly-and-decompilation.md,07-linux-observability-tools.md
- task_struct →
note/虚拟化/程序和进程/01-进程控制块:task_struct-的解剖.md - fork / COW / exec / wait →
03-进程创建的艺术:fork-与写时拷贝-(COW).md,04-进程生命周期管理:fork-exec-wait族详解.md - exec → main 参数/envp 传递 →
demo-exec与子程序main参数/ - Process group / session / TTY-PTS →
08-控制的边界:进程组与会话.md,09-终端的虚幻与真实:TTY与PTS详解.md - IPC overview →
note/虚拟化/进程通信IPC/(pipe / signal / semaphore / mmap)
- Syscall panorama & table →
note/SysCall/00-系统调用全景.md,01-系统调用表详解.md - libc syscall wrapping →
note/SysCall/libc原理-syscall封装.md - read/write panorama, ioctl, poll →
note/SysCall/IO/01-read-write全景.md,02-ioctl范式.md,03-poll机制详解.md - IO paradigm summary →
04-IO范式总览.md - Advanced fops: poll & fasync →
05-进阶fops实现:poll与fasync.md
- kobject → /sys, /dev, /proc →
note/FS/VFS与设备模型/01-kobject.md - VFS deep-dive →
2026-04-07-VFS-deep-dive.md - Out-of-tree virtual cdev →
pre-树外虚拟字符设备源码实现与VFS机制探讨.md
- Usage: linux & devicetree, syntax, DTS→driver API, dtc/sysfs debug →
note/DTS/Usage/ - Bindings (intro, common props, coding-style, YAML schema) →
note/DTS/Bindings/ - DT overlays →
note/DTS/Overlays/01-dt-overlays.md - SoC-Arch (i.MX6ULL / Cortex-A) →
note/SoC-Arch/00-Imx6ullArch.md
- Makefile / flags / Kconfig / external modules / kbuild architecture →
note/Kbuild/
- PC UEFI vs Embedded U-Boot chains →
note/FS/RTFS与boot/PC_Boot_Process_Initramfs.md,imx_Boot_Process_Direct.md - initramfs → mount rootfs →
Initramfs.md,imx-initramfs.md - /sbin/init → fstab; bdev vs mnt; NFS storage →
VFS_and_Fstab_Analysis.md,BDEVvs_MNT.md,Storage_Mounting_NFS.md - Buildroot rootfs →
imx-buildroot-RTFS.md,Ubu-RootFS_Overview.md
- Context (process / irq / softirq) →
note/kernel/context/00-overview.md - Interrupt: GIC hw → kernel framework → driver API →
note/Subsystem/Interrupt/ - Defer: softirq / tasklet / workqueue / threaded-irq / waitqueue / completion →
note/kernel/defer/ - Time: jiffies/HZ, soft-timer, hrtimer, tick-nohz, i.MX6ULL GPT →
note/kernel/time/ - Sync: spinlock, mutex/sem, cheatsheet →
note/kernel/sync/ - Sched overview →
note/kernel/sched/00-overview.md
- non-block / multi-poll →
note/SysCall/IO/03-poll机制详解.md - signal-driven (fasync) / AIO →
note/SysCall/IO/05-进阶fops实现:poll与fasync.md,04-IO范式总览.md
- GPIO: overview / VFS impl / cdev example →
note/Subsystem/gpio/ - BSP-Dev LCD/Touch (MIPI-DSI) →
note/BSP-Dev/LCD-Touch/MIPI-DSI.md
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2026 @yceachan