17

我正在尝试为 x86 目标构建 rootfs,这很简单。但是我不知道如何配置 buildroot 生成的内核。第一次运行时出现了 menuconfig,但从那时起它就缓存了 .config,我看不到在哪里更改它。

~650MB 的内核模块对嵌入式目标没有好处:P

有没有一种简单的方法可以在 buildroot 中配置内核?像uclibc-menuconfig目标这样的东西将是完美的。

4

5 回答 5

44

我总是做以下事情:

  1. 配置Linux内核:make linux-menuconfig
  2. 离开 menuconfig 后,您的配置将存储在文件中:output/build/linux-XYZ/.config其中XYZ是您的内核版本。
  3. 之后,您可以将文件复制 output/build/linux-*XYZ*/.configboard/your_kernel_config/.config
  4. 稍后在 Buildroot menuconfig 中,您可以在内核设置下配置使用自定义内核配置文件并输入路径:board/your_kernel_config/.config
于 2011-08-01T14:11:54.393 回答
3

不要忘记在 menuconfig 中也将 defconfig 设置为 i386:

  Kernel  —>
  [*] Linux Kernel
  (i386) Defconfig name 
于 2015-10-15T12:40:01.453 回答
3

BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES

为您现有的配置添加额外的配置。

例如,如果您将buildroot其用作子模块,则目录树如下所示:

.git/
buildroot/
.gitmodules
kernel-config-frag

例如要打开CONFIG_DEBUG_FS,请执行以下操作:

echo 'CONFIG_DEBUG_FS=y' > kernel-config-frag

然后使用以下命令配置 buildroot:

cd buildroot
make qemu_x86_64_defconfig
echo 'BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES=../kernel-config-frag' >> buildroot/.config
make

这样你就可以 git 跟踪qemu_x86_64_defconfig你的额外配置和你的额外配置之间的差异。

我相信这使用scripts/kconfig/merge_config.sh了内核,如以下所述:您如何以非交互方式打开 Linux 内核 .config 文件中的功能?

更改配置片段后,请记住执行以下操作:

rm -rf buildroot/output/build/linux-*.*.*/

在下一次构建之前。

最小可运行示例:https ://github.com/cirosantilli/linux-kernel-module-cheat/blob/bb8f4eb79565c9771356c80e0964c8fefc163e11/kernel-config-frag

BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE

选择.config要使用的完整内容。

出于某种原因,我必须核对内核.config才能使其生效?为什么当我更改 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE 并运行 make linux-reconfigure 内核 .config 不会改变?

于 2017-05-11T12:28:05.627 回答
2

答案是:

make linux26-menuconfig
于 2009-09-12T14:52:23.387 回答
0

步骤如下:

  1. cd buildroot/

  2. make menuconfig

  3. 内核 -> Linux 内核 -> 内核版本

于 2018-12-05T02:32:15.270 回答