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