Как настроить ядро ​​Linux в Buildroot? - PullRequest
10 голосов
/ 12 сентября 2009

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

~ 650 МБ модулей ядра не приносят пользы встроенной цели: P

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

Ответы [ 5 ]

36 голосов
/ 01 августа 2011

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

  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
2 голосов
/ 15 октября 2015

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

  Kernel  —>
  [*] Linux Kernel
  (i386) Defconfig name 
2 голосов
/ 12 сентября 2009

И ответ:

make linux26-menuconfig
1 голос
/ 05 декабря 2018

Шаги следующие:

  1. cd buildroot/

  2. make menuconfig

  3. Ядро -> Ядро Linux -> Версия ядра

1 голос

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

Таким образом, вы можете отслеживать только разницу между qemu_x86_64_defconfig и вашими дополнительными конфигами.

Я полагаю, что для формирования ядра используется scripts/kconfig/merge_config.sh, как указано в: Как неинтерактивно включать функции в файле .config ядра Linux?

После того, как вы измените фрагмент конфигурации, просто не забудьте сделать:

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-переконфигурировать ядро ​​.config не меняется?

...