📘 MTK8678 内核·文件系统
🎒 30章实战目录
1
课程导学与环境准备
MTK8678芯片概述 · Ubuntu 22.04 · 工具链安装
2
获取内核源码
Git仓库克隆 · 分支标签 · 版本号 · 完整性验证
3
内核配置基础
Kconfig · menuconfig · .config · 常用选项
4
MTK8678平台配置
ARM64 SoC · PMIC/Clock/Pinctrl · DTS路径
5
内核编译实战
make · -jN · vmlinux/zImage/dtbs · 错误排查
6
设备树(DTS)深入
DTS语法 · MTK8678结构 · GPIO/中断 · I2C/SPI/UART
7
内核模块开发
init/exit · 模块参数 · Makefile · insmod/rmmod
8
内核调试技巧
printk · dynamic debug · JTAG/SWD · kdump/crash
9
构建根文件系统 (BusyBox)
BusyBox配置 · 编译 · 目录结构 /bin /sbin /dev …
10
构建根文件系统 (Buildroot)
Buildroot配置 · Target/Toolchain · 系统镜像
11
构建根文件系统 (Yocto)
Yocto/Poky · BitBake · 自定义BSP层
12
文件系统细节
inode/VFS · mount/umount · fstab · tmpfs/ramfs
13
init进程与系统启动
内核启动 · BusyBox init vs systemd · inittab · rcS
14
设备节点管理
devtmpfs · udev/mdev · mknod · 自动规则
15
网络配置与调试
网络驱动 · ifconfig/ip · udhcpc · 静态IP · 连通性
16
存储与分区管理
eMMC/NAND · MTD · UBIFS · F2FS
17
系统服务与守护进程
SysV init脚本 · telnetd/httpd · supervisor
18
交叉编译工具链
gcc/binutils/glibc · 环境变量 · CMake工具链
19
第三方库移植
zlib/openssl/libpcap · 交叉编译 · 依赖集成
20
应用程序移植
C/C++交叉编译 · 静态/动态链接 · strip
21
内核与文件系统集成
boot.img/system.img · mkbootimg · 打包镜像
22
烧录与启动
Fastboot · MTK Flash Tool · minicom · Kernel Panic
23
性能调优
cpufreq · 内存swap/zram · I/O调度 · 启动优化
24
安全加固
SELinux/AppArmor/KASLR · 权限 · SUID移除
25
OTA升级机制
A/B分区 · update-engine · swupdate
26
日志与监控系统
syslogd/klogd · logrotate · netdata/prometheus
27
容器化部署 (Docker)
交叉编译Docker · 运行容器 · 网络/存储
28
常见问题与解决方案
编译错误 · 启动失败 · 驱动加载调试
29
项目实战:智能家居网关
需求分析 · 内核裁剪 · 文件系统定制 · 烧录演示
30
课程总结与进阶方向
核心回顾 · LKML/MTK社区 · Rust for Linux/eBPF