Buildroot系统构建与调试技巧

📚 共计 30 章节
01
Buildroot概述
什么是Buildroot · 对比Yocto/OpenWrt · 核心设计哲学
概念对比
02
环境准备
安装依赖 · Git/Repo配置 · 下载源码 · make menuconfig初体验
工具链入门
03
源码结构解析
目录树详解 · board/configs/package/toolchain · Config.in/Makefile作用
架构文件
04
配置系统入门
Kconfig基础 · menuconfig操作 · defconfig管理 · 常用配置项
Kconfigmenuconfig
05
外部工具链配置
Linaro GCC · ARM GCC · 自定义工具链 · 常见陷阱
工具链交叉编译
06
内部工具链构建
内置工具链流程 · gcc版本 · glibc/uclibc/musl策略
构建C库
07
Bootloader配置
U-Boot · AT91Bootstrap · Grub · 与内核交互
启动U-Boot
08
Linux内核配置
内核源码管理 · kernel fragments · 设备树集成
内核设备树
09
根文件系统构建
BusyBox · SysVinit vs Systemd · 设备节点管理
rootfsinit
10
文件系统类型
SquashFS/EXT4/JFFS2/UBIFS · 打包 · OverlayFS
存储镜像
11
Package管理
添加软件包 · Config.in · *.mk · 依赖处理
包管理构建
12
本地源码包
local.mk · BR2_EXTERNAL · 自定义包覆盖
本地覆盖
13
补丁管理
补丁系统 · 命名规范 · 版本管理 · 调试技巧
补丁版本
14
交叉编译调试
GDB交叉编译 · gdbserver · 远程调试 · core dump
调试GDB
15
构建缓存机制
ccache · DL_DIR/BUILD_DIR · 增量/完全重构建
缓存加速
16
构建日志分析
日志级别 · 常见错误 · 依赖/编译/链接 · 过滤技巧
日志排错
17
defconfig管理
自定义defconfig · fragments · 版本控制
配置碎片
18
多板支持
单配置多板 · board目录 · 设备树变体
多板变体
19
Rootfs Overlay
Overlay目录 · 启动脚本 · 配置文件覆盖 · 首次启动
覆盖定制
20
Post-build与Post-image脚本
脚本规范 · 修改文件/分区/签名 · 调试方法
脚本后处理
21
Genimage与分区表
Genimage语法 · 分区布局 · SD卡镜像 · 烧录脚本
镜像分区
22
网络配置
静态IP/DHCP · Wi-Fi(wpa_supplicant) · NetworkManager/connman
网络Wi-Fi
23
安全加固
用户管理 · 文件权限 · iptables/nftables · Secure Boot基础
安全防火墙
24
实时性配置
PREEMPT_RT · lxrt/xenomai · cyclictest测试
实时RT
25
QT/嵌入式GUI
QT5/QT6交叉编译 · LinuxFB/EGLFS/Wayland · 触摸校准
GUIQT
26
Python与脚本语言
Python3交叉编译 · pip包管理 · Lua/JavaScript集成
Python脚本
27
性能优化
构建时间优化 · 运行时优化(内存/CPU/IO) · strip/LTO
优化LTO
28
调试工具集成
strace/ltrace/perf/ftrace/valgrind交叉编译与使用
调试性能
29
CI/CD集成
GitLab CI/GitHub Actions · 自动化构建 · 固件版本管理
CI/CD自动化
30
实战项目:IoT网关
传感器驱动 · 云连接 · Web管理界面 · 完整系统构建
实战IoT