Вопрос

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

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

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

Это было полезно?

Решение 2

И ответ таков:

make linux26-menuconfig

Другие советы

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

  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

Не забудьте также установить для 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, делать:

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 kernel .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-перенастройку, kernel .config не меняется?

Эти шаги заключаются в следующем:

  1. cd buildroot/

  2. make menuconfig

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top