Make 参考
以下命令在主仓库根目录执行。首次构建参见从源码构建。
常用命令
make help # 默认目标;仅显示帮助
make doctor # 检查环境
make fetch # 获取固定版本依赖
make build # 构建组件
make image # 打包、验证并发布匹配镜像集
make check # 主机、文档和设备树检查
make flash-existing-all # 烧录已有匹配集,不构建
所有构建采用完整开发板配置和原生 -Os 体积优化。
Linux 使用上游 TRIM_UNUSED_KSYMS 并保留自动生成的无线导入白名单;ext4 内置。
主机路径和并行任务数可写入忽略跟踪的 local.mk,例如 JOBS := 4。DEBUG=1 增加诊断配置。
构建目标
目标 |
说明 |
|---|---|
|
显示公共命令;这是默认目标 |
|
检查主机、工具链和 ESP-IDF 环境 |
|
初始化子模块,获取工具链、BTstack 和 rootfs 源码缓存 |
|
获取所选 Buildroot 软件包源码,不构建目标软件包 |
|
单独初始化源码子模块,不与构建目标混用 |
|
下载并验证固定版本 Linux 工具链 |
|
检查已安装工具链,不进行下载 |
|
使用指定 crosstool-NG 源码构建工具链 |
|
构建启动固件、Linux、rootfs 和无线镜像 |
|
构建、生成合并镜像和清单,验证后发布至 |
|
为 FIT 构建并验证 |
|
构建 SPL、 |
|
构建 XIP 内核、DTB、DTBO 和无线模块 |
|
构建 SquashFS 根文件系统 |
|
根据依赖锁检查 ESP-IDF |
|
构建 ESP-IDF 无线依赖 |
|
生成无线中间载荷、导入桩及内核导出白名单 |
|
检查集成无线模块和载荷输出 |
|
创建预链接 |
|
从已验证输出打包 |
|
构建 |
|
创建空的 |
|
构建基准测试,并复制到 |
|
打开 Buildroot 配置菜单 |
|
删除 Buildroot 输出以便按新输入重建 |
|
删除构建树、生成文件、暂存、镜像及报告;保留缓存 |
|
执行 |
|
检查共享 Flash 和内存布局 |
|
检查布局并运行主机回归测试,不获取依赖 |
|
使用严格 Sphinx 警告设置构建文档 |
|
使用项目交叉编译器验证设备树和绑定 |
|
运行主机、文档和设备树检查 |
|
验证 |
|
生成 |
最终产物位于 out/images/;验证后发布的镜像集位于 dist/,由 dist/current 选择当前集合。
原生组件对象、生成文件、暂存和报告位于 out/,下载与工具链缓存位于 cache/。
Linux、U-Boot 和无线配置输入变化会触发原生重新配置;输入未变时保留增量构建。
Buildroot 软件包选择或工具链变化则需要先运行 make buildroot-reconfigure,
删除选定的 Buildroot 输出树后再构建。执行前应把菜单中的预期更改保存到受版本控制的
defconfig;需要长期保留的内核选项应写回 defconfig 或 configs/kernel/。
ROOTFS_BASELINE=/absolute/path/to/rootfs.sqfs 显式选择增量重新打包,并记录来源。
它检查必需的完整用户空间运行文件及精确模块列表,不完整的基础镜像会被拒绝;
这不是干净的 Buildroot 重建,也不代表继承的用户空间二进制已经按 -Os 重新编译。
只有缺少标准日志/cron 启动脚本时,才可通过
ROOTFS_BUSYBOX_BUILD=/path/to/busybox-build 显式允许从固定版本的 Buildroot 源码恢复它们。
重新打包工具核对继承二进制中的 applet/帮助字节,记录新增脚本,并保留现有文件系统元数据。
烧录目标
默认串口为 /dev/ttyUSB0,波特率 2000000:
make PORT=/dev/ttyUSB1 BAUD=921600 flash-existing-all
目标 |
行为 |
|---|---|
|
验证并烧录 |
|
先执行 |
|
拒绝部分更新,因为无法确认已安装的配套组件 |
|
同样拒绝部分更新 |
|
拒绝执行;破坏性维护需要独立、明确的流程 |
烧录工具只解析一次 dist/current,随后验证并使用该不可变镜像集。清单核对组件和
合并镜像哈希、无线的内核/模块/载荷/导入绑定及配置身份;这些主机检查不能证明硬件启动成功。
同布局的匹配组件更新保留 persist;合并镜像烧录会覆盖 persist。改变布局前应备份并全新安装。环境安装、连接与控制台步骤见烧录与首次启动。
构建变量
变量 |
用途 |
|---|---|
|
烧录连接 |
|
并行编译数,默认主机 CPU 数量 |
|
|
|
构建输出根目录,默认 |
|
共享缓存根目录,默认 |
|
原生内核 defconfig,默认 |
|
内核镜像目标,默认 |
|
ESP-IDF |
|
ESP-IDF 安装及查找路径 |
|
U-Boot 主机解释器,包含 env-shebang 工具;默认取当前 |
|
该 U-Boot 主机解释器可选的额外模块搜索路径 |
|
已安装 Linux 工具链目录 |
|
|
|
|
|
显式启用实验性的非固定 ESP-IDF 版本 |
|
显式请求从已有 rootfs 增量重新打包,保留来源记录 |
|
用于验证缺失标准服务脚本能否恢复的现有 BusyBox 构建目录 |
集成构建始终包含 Wi-Fi/蓝牙组合载荷;运行模式由板端 esp32-config 选择。OpenSBI 的 FW_TEXT_START 为 0x4000E400,FW_RW_START 为 0x2F00F000。Linux CONFIG_XIP_PHYS_ADDR 为 0x40400000,是 CPU 物理地址;对应原始 Flash 偏移 0x400000。更改布局必须同步验证链接、映射及设备树,见Flash 布局。