我正在尝试为 x86 目标构建 rootfs,这很简单。但是我不知道如何配置 buildroot 生成的内核。第一次运行时出现了 menuconfig,但从那时起它就缓存了 .config,我看不到在哪里更改它。
~650MB 的内核模块对嵌入式目标没有好处:P
有没有一种简单的方法可以在 buildroot 中配置内核?像uclibc-menuconfig
目标这样的东西将是完美的。
我总是做以下事情:
make linux-menuconfig
output/build/linux-XYZ/.config
其中XYZ是您的内核版本。output/build/linux-*XYZ*/.config
到board/your_kernel_config/.config
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
例如要打开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-*.*.*/
在下一次构建之前。
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
选择.config
要使用的完整内容。
出于某种原因,我必须核对内核.config
才能使其生效?为什么当我更改 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE 并运行 make linux-reconfigure 内核 .config 不会改变?
答案是:
make linux26-menuconfig
步骤如下:
cd buildroot/
make menuconfig
内核 -> Linux 内核 -> 内核版本