Как мне настроить ядро Linux в Buildroot?
Вопрос
Я пытаюсь создать rootfs для целевой системы x86, и все это достаточно просто.Однако я не могу понять, как я настраиваю ядро, которое создает buildroot.При первом запуске появился файл menuconfig, но с тех пор он кэшировал файл .config, и я не вижу, где его изменить.
~ 650 МБ модулей ядра не приносят пользы встроенной цели: P
Есть ли простой способ настроить ядро в buildroot?Что-то вроде uclibc-menuconfig
мишень была бы идеальной.
Решение 2
И ответ таков:
make linux26-menuconfig
Другие советы
Я всегда делаю следующее:
- настройка ядра Linux:
make linux-menuconfig
- После выхода из menuconfig ваша конфигурация будет сохранена в файле:
output/build/linux-XYZ/.config
где XYZ это ваша версия ядра. - После этого вы можете скопировать файл
output/build/linux-*XYZ*/.config
Дляboard/your_kernel_config/.config
- позже в 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 не меняется?
Эти шаги заключаются в следующем:
cd buildroot/
make menuconfig
Ядро -> Ядро Linux -> Версия ядра