01
Buildroot是什么
起源、核心思想,与Yocto/Buildroot的区别,为什么选择Buildroot
概念对比
02
环境准备
Linux主机环境要求、安装依赖、下载源码、目录结构初探
工具链依赖
03
快速上手配置
make menuconfig入门、选择架构、配置工具链/内核/文件系统
menuconfig架构
04
第一次编译
make命令详解、编译过程、常见错误、输出产物分析
编译output/images
05
运行最小系统
QEMU安装、启动参数、登录验证
QEMU模拟
06
定制根文件系统
添加应用程序、BR2_PACKAGE、BusyBox、开机自启脚本
rootfs自启动
07
添加第三方软件包
包管理机制、Config.in、.mk文件、打补丁
软件包补丁
08
内核配置与设备树
内核选项、设备树(DTS)基础、修改适配硬件、内核模块
DTS内核
09
UBoot引导加载程序
UBoot作用、配置、编译、环境变量与启动参数
UBoot引导
10
存储布局与分区
Flash分区、UBI/UBIFS镜像、SD卡启动镜像、烧录
分区烧录
11
调试与日志
内核调试、printk、syslogd、远程GDB调试
调试GDB
12
网络配置
静态IP/DHCP、SSH、NFS挂载、TFTP下载
网络SSH
13
交叉编译工具链
工具链组成、外部工具链、自定义、测试
工具链交叉编译
14
Buildroot扩展机制
BR2_EXTERNAL、外部树、多项目配置、版本控制
扩展BR2_EXTERNAL
15
软件包版本管理
固定版本、补丁管理、自定义源码位置、Git子模块
版本Git
16
文件系统优化
去除调试符号、sstrip、大小控制、只读文件系统
优化sstrip
17
启动时间优化
测量启动、优化内核/UBoot、initramfs
启动initramfs
18
安全加固
移除服务、iptables、权限、ASLR
安全iptables
19
图形界面支持
Qt/GTK、FrameBuffer、触摸屏、显示优化
GUIQt
20
实时性配置
PREEMPT_RT补丁、实时内核、测试、常见问题
实时RT
21
WiFi与蓝牙
无线网卡驱动、wpa_supplicant、BlueZ、蓝牙配对
WiFi蓝牙
22
音频与视频
ALSA、音频驱动、视频解码、GStreamer
音频GStreamer
23
传感器与GPIO
I2C/SPI、GPIO控制、libgpiod、读取传感器
GPIO传感器
24
生产部署
量产镜像、OEM分区、工厂复位、OTA升级
量产OTA
25
持续集成
Docker构建、GitLab CI、自动化测试、镜像发布
CIDocker
26
性能分析
perf工具、CPU分析、内存泄漏、启动profiling
性能perf
27
多架构支持
ARM64/ARM32、多架构工具链、QEMU用户态模拟
多架构QEMU
28
社区与资源
官方文档、邮件列表、IRC、FAQ、商业支持
社区资源
29
实战项目一:Web服务器
lighttpd + CGI 构建最小Web服务器
实战lighttpd
30
实战项目二:物联网网关
MQTT + Node-RED + 传感器采集
实战IoT