Buildroot 移植 · 30 章
🎯 从零到部署 · 友好色系
01
Buildroot概述与环境准备
了解Buildroot,搭建Ubuntu环境,安装依赖、配置Git、创建项目目录。
02
获取Buildroot源码
从官方Git克隆,切换稳定分支,验证源码完整性。
03
了解目标开发板
QEMU ARM Versatile Express,分析CPU架构、内存、外设。
04
配置Buildroot目标架构
make menuconfig,设置ARM架构,选择cortex-a9。
05
配置工具链
内部/外部工具链,GCC版本,C库类型,新手推荐内部工具链。
06
配置Bootloader
选择U-Boot,配置vexpress_ca9x4板级支持包。
07
配置Linux内核
指定内核源码/LTS版本,启用Vexpress平台驱动。
08
配置根文件系统
ext4/squashfs/initramfs,BusyBox基础用户空间。
09
配置目标包
网络工具(dropbear, iperf),调试工具(strace, gdb)等。
10
第一次编译
执行make,观察编译流程:下载、解压、配置、编译、安装。
11
编译错误排查
依赖缺失、版本冲突、补丁失败,查看output/build/*.log。
12
生成启动镜像
output/images:u-boot、zImage、rootfs.ext4、dtb。
13
配置QEMU模拟环境
安装QEMU,编写启动脚本,virtio/SD卡加载镜像。
14
首次启动与验证
U-Boot日志、内核日志,进入BusyBox shell。
15
网络配置与测试
启用网络,QEMU虚拟网络,iperf吞吐量测试。
16
添加自定义应用
package目录创建软件包,Config.in .mk,集成menuconfig。
17
使用外部工具链
Linaro工具链,对比内部/外部工具链优缺点。
18
配置内核设备树
修改.dts,添加硬件节点,重新编译内核与dtb。
19
构建最小系统
裁剪配置,极简系统 (<4MB) 内核+BusyBox+必要驱动。
20
添加Qt图形界面
启用Qt5/Qt6,EGL/GLES,编译运行Qt示例。
21
配置WIFI驱动
RTL8188EU外部模块,wpa_supplicant与固件。
22
BR2_EXTERNAL机制
外部项目目录,自定义包/补丁/配置,保持源码纯净。
23
生产级文件系统
overlayfs/squashfs只读根文件系统,持久化数据分区。
24
添加Python运行环境
Python3,pip,pyserial, flask,验证脚本执行。
25
配置安全启动
U-Boot verified boot,密钥对,签名内核/设备树。
26
使用defconfig
自定义defconfig,一键配置,分享团队/开源社区。
27
编译速度优化
ccache、BR2_JLEVEL、BR2_DL_DIR预下载等技巧。
28
移植到真实开发板
STM32MP157 / i.MX6ULL,时钟、DDR、PMIC差异。
29
调试启动问题
U-Boot printenv, earlyprintk, rdinit 定位失败原因。
30
课程总结与项目实战
回顾流程,实战:Allwinner V3s移植并实现网络启动。