buildroot官方教材
buildroot官方的教程training
简单的练习实验,用来熟悉基本的Buildroot的使用。
步骤如下:
1. 获取Buildroot。
2. 为BeagleBone Black配置最小的minimal系统。
3. 开始构建。
4. 准备相应的BeagleBone Black硬件环境。
5. 烧写Flash,测试生成的系统。
默认的构建的目录组织:
所有的生成的文件都在顶层文件夹里的output文件夹中。
配置文件为顶层文件夹中的.config文件。
buildroot/
.config
arch/
package/
output/
fs/
…
可以通过如下的命令O=/path/to/directory
重新自定义生成的文件夹。
此时的配置文件保存在
(
O
)
文
件
夹
中
。
如
:
源
码
文
件
夹
为
:
b
u
i
l
d
r
o
o
t
/
工
程
1
的
生
成
文
件
夹
为
:
f
o
o
−
o
u
t
p
u
t
/
.
c
o
n
f
i
g
工
程
2
的
生
成
文
件
夹
为
:
b
a
r
−
o
u
t
p
u
t
/
.
c
o
n
f
i
g
构
建
命
令
如
下
:
‘
m
a
k
e
O
=
.
.
/
f
o
o
−
o
u
t
p
u
t
/
m
e
n
u
c
o
n
f
i
g
‘
。
也
可
使
用
如
下
的
命
令
指
定
源
码
位
置
:
‘
m
a
k
e
−
C
.
.
/
b
u
i
l
d
r
o
o
t
/
O
=
(O)文件夹中。 如: 源码文件夹为:buildroot/ 工程1的生成文件夹为:foo-output/ .config 工程2的生成文件夹为:bar-output/ .config 构建命令如下:`make O=../foo-output/ menuconfig`。 也可使用如下的命令指定源码位置:`make -C ../buildroot/ O=
(O)文件夹中。如:源码文件夹为:buildroot/工程1的生成文件夹为:foo−output/.config工程2的生成文件夹为:bar−output/.config构建命令如下:‘makeO=../foo−output/menuconfig‘。也可使用如下的命令指定源码位置:‘make−C../buildroot/O=(pwd) menuconfig`。
下面是一个使用自定义生成文件夹构建的完成的命令操作:
$ ls
进入源码文件夹
arch board boot … Makefile … package …
$ mkdir ../foobar-output
创建生成文件夹foobar-output
$ cd ../foobar-output
进入foobar-output文件夹
$ make -C ../buildroot O=$(pwd) menuconfig
配置系统
$ make
构建系统
根据需求可能还需要有以下操作。
如,调整配置,重新构建,清除构建内容等。
$ make menuconfig
$ make
$ make clean
配置文件:
.config文件包括了所有的配置选项(除非那些未满足依赖需求的选项)。
实际上我们很难使用和人为地去编辑该文件。
defconfig仅仅保存了那些非默认的选项。
比较容易读懂,也可以人为进行编辑,并用于自动的进行构建配置。
例如,对于Buildroot的默认配置,其defconfig文件的内容为空,这是因为现在所有的选项都是默认的选项。
当需要将处理器架构更换为ARM时,只需要在defconfig文件中添加一行:
BR2_arm=y
如果你还需要加stress包,则defconfig中也只有两行代码:
BR2_arm=y
BR2_PACKAGE_STRESS=y
使用时,首先将defconfig文件复制到configs文件夹中,然后通过如下的命令来加载该defconfig文件,并覆盖当前的.config文件。
make <foo>_defconfig
也可通过如下的命令来创建一个defconfig文件。
make savedefconfig
保存到BR2_DEFCONFIG配置选项指向的文件。
默认的,如果从头构建的配置保存在当前文件夹,如果是加载的defconfig则保存在加载defconfig文件的位置。
Buildroot自带的defconfig文件:
Buildroot自带了许多公开发行硬件平台的defconfig文件,包括:
1. RaspberryPi,BeagleBone Black,CubieBoard,Microchip evaluation board,Mininowboard,various i.MX6 boards。
2. QEMU仿真平台。
使用命令:make list-defconfigs
可以罗列出所有的defconfig文件。
大多数的自带的defconfig文件都是最小化的,仅仅构建了工具链,bootloader,内核和最小的根文件系统。
使用如下的命令,使用自带的defconfig文件来构建系统:
$ make qemu_arm_vexpress_defconfig
$ make
附加的说明可以在board/<boardname>
中找到,如:
board/qemu/arm-vexpress/readme.txt
defconfig可以分为若干琐碎的文本文件,并通过如下的命令连接起来(为platform1构建系统):
$ ./support/kconfig/merge_config.sh platform1.frag packages.frag > \
.config
$ make olddefconfig
$ make
olddefconfig将最小化的defconfig扩展为全部选项的.config文件。
但这些碎片的文本无法保存到defconfig文件中,必须手动保存到defconfig文件中。
清除目标文件:
如下的命令清除所有的构建生成的文件,但不清除配置文件。
$ make clean
如下的命令清除所有的文件,包括配置文件和默认路径的下载文件。
$ make distclean
查看构建的信息:
默认情况下Buildroot隐藏了许多的构建时的命令,只显示最重要的一部分,如果要得到全部的信息,可以传递V=1给make命令。
$ make V=1