如何在Buildroot中配置Linux内核?

时间:2009-09-12 12:09:48

标签: linux embedded kernel buildroot

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

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

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

5 个答案:

答案 0 :(得分:34)

我总是这样做:

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

答案 1 :(得分:2)

答案是:

make linux26-menuconfig

答案 2 :(得分:2)

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

  Kernel  —>
  [*] Linux Kernel
  (i386) Defconfig name 

答案 3 :(得分:1)

<强> BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES

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

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

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

E.g。打开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

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

我相信这会使用scripts/kconfig/merge_config.sh形成内核,如How do you non-interactively turn on features in a Linux kernel .config file?

所述

更改配置片段后,请记住:

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才能生效? Why when I change BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE and run make linux-reconfigure the kernel .config does not change?

答案 4 :(得分:1)

步骤如下:

  1. cd buildroot/

  2. make menuconfig

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