用Buildroot打造你的第一个根文件系统
📚 共计 30 章节
01
Buildroot初探
什么是Buildroot?为什么选择Buildroot?对比Yocto、OpenWrt。
概念
对比
02
环境准备
Ubuntu安装依赖,下载Buildroot源码,了解目录结构。
Ubuntu
依赖
03
快速上手
默认配置编译最小根文件系统,QEMU运行验证启动。
QEMU
最小系统
04
配置工具链
内外部工具链区别,配置交叉编译工具链并验证。
工具链
交叉编译
05
配置Bootloader
U-Boot板级支持包配置,编译生成u-boot.bin。
U-Boot
BSP
06
配置Linux内核
内核版本选择,驱动/文件系统/网络配置,编译zImage。
内核
zImage
07
配置根文件系统
ext4/squashfs/initramfs选择,BusyBox配置,生成rootfs。
rootfs
BusyBox
08
添加用户程序
使用Package机制添加Hello World程序到根文件系统。
Package
HelloWorld
09
配置网络功能
DHCP客户端、SSH服务器、静态IP,验证网络连通性。
网络
SSH
10
添加常用工具
安装Vim、Htop、Git、Tree等命令行工具。
工具
Vim
Git
11
配置存储
SD卡、eMMC、NAND Flash支持,分区表配置。
存储
分区
12
添加Python支持
Python3解释器、pip,运行Python脚本。
Python3
pip
13
配置图形界面
LVGL/Qt轻量级图形库,FrameBuffer驱动配置。
LVGL
Qt
FrameBuffer
14
添加音频支持
ALSA驱动,aplay/arecord工具,播放WAV文件。
ALSA
音频
15
配置Wi-Fi功能
Wi-Fi驱动(RTL8188),wpa_supplicant,连接无线网络。
Wi-Fi
wpa_supplicant
16
添加蓝牙支持
BlueZ协议栈,蓝牙扫描与配对。
蓝牙
BlueZ
17
配置摄像头
V4L2驱动,fswebcam/motion捕获图像。
摄像头
V4L2
18
添加数据库支持
SQLite配置,C程序操作数据库。
SQLite
数据库
19
配置Web服务器
Lighttpd/Nginx,CGI支持,部署网页。
Web
Lighttpd
CGI
20
添加MQTT客户端
Eclipse Paho MQTT C库,发布/订阅消息。
MQTT
Paho
21
配置GPIO控制
sysfs/libgpiod,控制LED灯。
GPIO
libgpiod
22
添加I2C/SPI设备
I2C/SPI驱动,BME280传感器读取数据。
I2C
SPI
BME280
23
配置实时性
PREEMPT_RT内核补丁,实时线程与性能验证。
实时
PREEMPT_RT
24
添加安全功能
OpenSSL、SSH密钥认证、iptables防火墙。
安全
OpenSSL
iptables
25
配置系统服务
BusyBox init/systemd,开机自启动脚本。
systemd
自启动
26
添加日志功能
syslogd配置,logrotate日志管理。
日志
logrotate
27
配置OverlayFS
只读根文件系统与可写数据分区分离。
OverlayFS
只读
28
添加OTA升级
swupdate工具,网络/U盘系统升级。
OTA
swupdate
29
性能优化
分析大小,移除多余包,squashfs压缩,优化启动。
优化
squashfs
30
实战项目
综合运用,构建智能家居网关根文件系统。
实战
智能家居