如何在Buildroot中配置Linux内核?
题
我正在尝试为x86目标构建一个rootfs,这很简单。但是我无法弄清楚我如何配置buildroot生成的内核。第一次运行时出现了menuconfig,但从那时起缓存了.config,我看不到在哪里更改它。
~650MB的内核模块对嵌入式目标没有好处:P
是否有一种在buildroot中配置内核的简单方法?像 uclibc-menuconfig
目标这样的东西是完美的。
解决方案 2
答案是:
make linux26-menuconfig
其他提示
我总是这样做:
- 配置Linux内核:
make linux-menuconfig
- 离开menuconfig后,您的配置将存储在文件中:
output / build / linux-XYZ / .config
其中 XYZ 是您的内核版本。 - 之后,您可以将文件
output / build / linux- * XYZ * /。config
复制到board / your_kernel_config / .config
- 稍后在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-*.*.*/
在下一次构建之前。
<强> <代码> BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE 代码> 强>
选择要使用的完整 .config
。
出于某种原因,我必须核对内核的 .config
才能生效? 为何何时何时我更改BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE并运行make linux-reconfigure内核.config不会更改?
步骤如下:
-
cd buildroot /
-
make menuconfig
-
内核 - &gt; Linux内核 - &gt;内核版本
醇>