Как настроить ядро Linux в Buildroot?

Я пытаюсь построить rootfs для цели x86, что достаточно просто. Однако я не могу понять, как я настраиваю ядро, которое производит buildroot. Первый прогон придумал menuconfig ,но он кэширован.config с тех пор, и я не вижу, где его изменить.

~650MB модулей ядра не делают хороших вещей для встроенной цели: P

есть ли простой способ настроить ядро в buildroot? Что-то вроде uclibc-menuconfig цель было бы идеально.

4 ответов


Я всегда делаю следующее:

  1. настройка ядра Linux:make linux-menuconfig
  2. после выхода из menuconfig ваша конфигурация будет сохранена в файле:output/build/linux-XYZ/.config здесь XYZ ваша версия ядра.
  3. после этого вы можете скопировать файл output/build/linux-*XYZ*/.config to board/your_kernel_config/.config
  4. позже в Buildroot menuconfig вы можете в настройках ядра настроить использование пользовательского файла конфигурации ядра и ввести путь:board/your_kernel_config/.config

ответ:

make linux26-menuconfig

Не забудьте также установить defconfig в i386 в menuconfig:

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

BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES

добавляет дополнительные конфигурации к существующему.

например, если вы используете buildroot в качестве подмодуля, дерево каталогов выглядит так:

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

Е. Г. чтобы повернуть на CONFIG_DEBUG_FS, do:

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-*.*.*/

перед следующей сборкой.

минимальный runnable пример на: 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-перенастроить ядро .конфигурация не меняется?