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

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

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

有帮助吗?

解决方案 2

答案是:

make linux26-menuconfig

其他提示

我总是这样做:

  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

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

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

<强> <代码> 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 形成内核,如下所述:如何以非交互方式打开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不会更改?

步骤如下:

  1. cd buildroot /

  2. make menuconfig

  3. 内核 - &gt; Linux内核 - &gt;内核版本

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top