01
Buildroot初探
什么是Buildroot?它能做什么?对比Yocto和OpenWrt,为什么选择Buildroot?
概念对比
02
环境准备
在Ubuntu上安装Buildroot依赖包,下载源码,了解目录结构。
Ubuntu依赖
03
快速上手
使用默认配置编译一个最小系统,烧录到QEMU中运行。
QEMU最小系统
04
配置工具链
内建工具链 vs 外部工具链,配置glibc/uclibc/musl,我踩过的坑。
工具链C库
05
配置内核
使用Buildroot配置Linux内核,添加必要的驱动和模块。
内核驱动
06
配置Bootloader
U-Boot的配置与编译,生成boot.bin和uImage。
U-Boot镜像
07
根文件系统
BusyBox的配置,init进程,inittab文件详解。
BusyBoxinit
08
添加用户程序
将你的C程序或Python脚本打包进根文件系统。
用户程序Python
09
使用Overlay
用rootfs overlay定制你的文件系统,不改源码。
Overlay定制
10
配置网络
静态IP vs DHCP,配置SSH服务,远程登录你的板子。
网络SSH
11
添加第三方库
以libgpiod和libcurl为例,讲解如何添加外部库。
libgpiodlibcurl
12
BR2_EXTERNAL机制
创建你自己的外部包目录,管理私有软件包。
外部包BR2
13
编写Kconfig
为你的软件包编写Config.in,实现菜单配置。
KconfigConfig.in
14
编写.mk文件
编写你的第一个Buildroot .mk构建规则文件。
.mk构建规则
15
打补丁
如何给源码打补丁,Buildroot的补丁机制详解。
补丁patch
16
配置图形界面
添加Qt5或LVGL图形库,编译一个带GUI的系统。
Qt5LVGL
17
添加Python支持
配置Python3解释器,安装pip和常用模块。
Python3pip
18
数据库支持
将SQLite或MySQL客户端编译进系统。
SQLiteMySQL
19
音频与视频
配置ALSA、FFmpeg、GStreamer,让你的板子能放歌。
ALSAFFmpeg
20
Wi-Fi与蓝牙
配置wpa_supplicant、bluez,实现无线连接。
Wi-Fi蓝牙
21
文件系统格式
选择squashfs、ext4、ubifs,不同场景怎么选?
squashfsext4
22
生成烧录镜像
配置genimage,生成SD卡或eMMC烧录镜像。
genimage烧录
23
分区表与布局
自定义分区表,boot分区、rootfs分区、data分区。
分区布局
24
设备树(DTS)
修改设备树,适配你的自定义硬件。
DTS硬件适配
25
调试技巧
使用Buildroot的debug工具,分析编译失败原因。
调试debug
26
加速编译
配置ccache、并行编译,把编译时间从1小时降到10分钟。
ccache并行
27
离线编译
搭建本地软件包缓存,在没有网络的环境下编译。
离线缓存
28
版本管理
用Git管理你的Buildroot项目,实现可复现构建。
Git可复现
29
实战项目一
制作一个最小化的路由器发行版(带Web管理界面)。
路由器Web
30
实战项目二
制作一个工业数据采集网关发行版(带4G和Modbus)。
工业网关4G