buildroot结构

1.1  目录结构

buildroot$ tree -L 1 -h

.

├── [4.0K]  arch

├── [4.0K]  board

├── [4.0K]  boot

├── [245K]  CHANGES

├── [ 23K]  Config.in

├── [100K]  Config.in.legacy

├── [ 12K]  configs

├── [ 18K]  COPYING

├── [ 41K]  DEVELOPERS

├── [4.0K]  docs

├── [4.0K]  fs

├── [4.0K]  linux

├── [ 40K]  Makefile

├── [2.2K]  Makefile.legacy

├── [4.0K]  output

├── [ 56K]  package

├── [1.1K]  README

├── [4.0K]  support

├── [4.0K]  system

├── [4.0K]  toolchain

└── [4.0K]  utils

显示蓝色的目录, 其它的为文件。

arch:放置CPU架构相关的配置脚本

board:放置每个厂家的板子配置

boot:放置boot相关的, 比如uboot

configs:放置每个项目的配置文件

docs:放置参考文档

fs:放置文件系统的自动构建脚本

linux:放置Linux kernel的自动构建脚本

package:放置应用软件的配置文件,每个应用软件的配置文件有Config.inxxx..hashxxx.mk。会配置软件下载路径。

support:提供工具或脚本, kconfig就在其中。

system:放置根文件系统的原始版本,skeleton/下就能看到板子中那种熟悉的目录。

toolchain:放置工具链的自动构建脚本

utils :readme.txt中介绍了目录的作用, 其中有很多.mk, .py文件。

编译过程中会多出dloutput目录。dl下放置下载的代码,output放置解压的代码、编译的输出文件。


1.2 调用流程

buildroot结构

  根目录下的Makefile会调用各个目录下自动构建脚本文件。常见的uboot, linux kernel, 文件系统,外部的应用程序就会自动下载,配置,编译,安装,打包,最后输出可烧写的文件。Makefile支持很多命令,make help 可打印相关命令,通过make menuconfig 出现图形化菜单可以配置应用菜单,这样就可以裁剪出需要的最小系统。同时还具有生成文档的功能,方便开发。