如何在 Buildroot 中配置 Linux 内核?

发布于 2024-08-05 00:30:05 字数 235 浏览 6 评论 0原文

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

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

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

I'm trying to build a rootfs for an x86 target, which is all simple enough. However I can't figure out how I configure the kernel that buildroot produces. The first run through came up with menuconfig, but it's cached the .config since then and I can't see where to change it.

~650MB of kernel modules don't do good things to an embedded target :P

Is there an easy way to configure the kernel within buildroot? Something like the uclibc-menuconfig target would be perfect.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

内心激荡 2024-08-12 00:30:06

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 没有更改?

BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES

Adds extra configs to your existing one.

E.g., if you are using buildroot as a submodule, the directory tree looks like:

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

E.g. to turn on CONFIG_DEBUG_FS, do:

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

and then configure buildroot with:

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

This way you can git track just a diff between qemu_x86_64_defconfig and your extra configs.

I believe this uses scripts/kconfig/merge_config.sh form the kernel as mentioned at: How do you non-interactively turn on features in a Linux kernel .config file?

After you change the config fragment, just remember to do:

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

before the next build.

Minimal runnable example at: https://github.com/cirosantilli/linux-kernel-module-cheat/blob/bb8f4eb79565c9771356c80e0964c8fefc163e11/kernel-config-frag

BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE

Selects the full .config to be used.

For some reason I have to nuke the kernel's .config for this to take effect? Why when I change BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE and run make linux-reconfigure the kernel .config does not change?

澜川若宁 2024-08-12 00:30:06

答案是:

make linux26-menuconfig

And the answer is:

make linux26-menuconfig
莳間冲淡了誓言ζ 2024-08-12 00:30:06

步骤如下:

  1. cd buildroot/

  2. make menuconfig

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

The steps are as follows:

  1. cd buildroot/

  2. make menuconfig

  3. Kernel -> Linux Kernel -> Kernel version

耳钉梦 2024-08-12 00:30:05

我总是执行以下操作:

  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

I always do the following:

  1. configure Linux kernel: make linux-menuconfig
  2. After leaving menuconfig your configuration will be stored in file: output/build/linux-XYZ/.config where XYZ is your kernel version.
  3. After that you can copy file output/build/linux-*XYZ*/.config to board/your_kernel_config/.config
  4. later in Buildroot menuconfig you can under kernel settings configure to use custom kernel config file and enter path: board/your_kernel_config/.config
美男兮 2024-08-12 00:30:05

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

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

Do not forget to set also defconfig to i386 in menuconfig:

  Kernel  —>
  [*] Linux Kernel
  (i386) Defconfig name 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文