Buildroot :使用树外 defconfig

Buildroot :使用树外 defconfig

我正在使用 tar 图像“buildroot-2018.02.tar.gz”为我的嵌入式系统生成 linux 映像(内核和文件系统)。为了确保我需要重新创建项目的最低配置(稍后,在另一台计算机上......),我工作从 BR 树中定义如下BR UM §8.5

我已经成功地正确配置了 BR 和 Linux 内核,并且创建了两个配置文件: - myProc_defconfig - myProc_linux_defconfig

我正在尝试为我的同事创建一个图像,以便轻松地重新创建该项目。现在,我有以下树:

/                                   :   Git root
/README                             :   This very file
/make_buildroot_env.sh              :   Script to set up the development environment  
/myProc_kernel/                     :   Development environment prerequisite    
/myProc_kernel/configs/             :   Contains both BR & Linux configuration files
/myProc_kernel/fs_overlay/          :   Filesystem overlay, contains all applicative files
/myProc_kernel/tools/               :   Scripts and data used by BR
/myProc_kernel/tools/data           :   All data files used by scripts

这个想法是创建一个脚本,它将在不同的文件夹中解压 buildroot(系统是根据 中定义的树构建的)并使用 defconfig 文件对其进行配置。

脚本开始如下,从上面定义的“Git root /”启动:

make_buildroot_env.sh

tar -xaf ./MyProc_kernel/tools/data/buildroot-2018.02.tar.gz
cd buildroot-2018.02
make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig
make O=../MyProc_kernel

我这里有两个问题:

  1. 我在上次调用时遇到错误:

Makefile:862: *** 请先配置Buildroot(例如“make menuconfig”)。停止。

  1. 如果我查看.configBR 文件夹中创建的文件,它似乎只采用了很少的参数MyProc_defconfig

我的问题是:

  • 为什么 BR 总是抱怨错误 1 ​​?应使用指向 defconfig 文件的行进行配置?

  • 我在重新创建开发环境时缺少什么?

答案1

正如您已经发现的那样,您必须合并这两行

make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig
make O=../MyProc_kernel

进入

make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig O=../MyProc_kernel 

为了回答附加的“为什么”问题,“O=”为 make 命令创建一个包装器,以使用 buildroot 安装的主目录来存储软件包,并使用新创建的目录来存储配置文件、构建和输出。

包装器需要就位,以便可以使用它来创建 defconfig。或者,您可以交换这两行以首先创建包装器,然后使用它来创建配置。

检查 8.5构建根目录手册

为了便于使用,Buildroot 在输出目录中生成一个 Makefile 包装器 - 因此第一次运行后,您不再需要传递 O=<...> 和 -C <...>,

答案2

好吧,我找到了如何做它想做的事。这两行必须合并:

make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig
make O=../MyProc_kernel

分成一行:

make defconfig BR2_DEFCONFIG=../myProc_kernel/configs/myProc_defconfig O=../MyProc_kernel

然后所有内容都被编译到/MyProc/文件夹中,并且该文件夹中什么都不做buildroot-2018.02

相关内容