Como faço para configurar o kernel Linux dentro Buildroot?
Pergunta
Eu estou tentando construir um rootfs para um alvo x86, que é tudo bastante simples. No entanto, eu não consigo descobrir como eu configurar o kernel que BuildRoot produz. A primeira corrida através veio com menuconfig, mas está em cache o .config desde então e eu não posso ver onde a mudá-lo.
~ 650MB de módulos do kernel não fazer coisas boas para um alvo incorporado: P
Existe uma maneira fácil de configurar o kernel dentro BuildRoot? Algo como o alvo uclibc-menuconfig
seria perfeito.
Solução 2
E a resposta é:
make linux26-menuconfig
Outras dicas
Eu sempre fazer o seguinte:
- configure kernel Linux:
make linux-menuconfig
- Depois de deixar menuconfig sua configuração serão armazenados no arquivo:.
output/build/linux-XYZ/.config
onde XYZ é a versão do kernel - Depois que você pode copiar o arquivo
output/build/linux-*XYZ*/.config
paraboard/your_kernel_config/.config
- no final Buildroot menuconfig você pode sob kernel do configurações configure para usar arquivo personalizado de configuração do kernel e digite caminho:
board/your_kernel_config/.config
Não se esqueça de definir também defconfig para i386 no menuconfig:
Kernel —>
[*] Linux Kernel
(i386) Defconfig name
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES
Adiciona configurações extras para o seu já existente.
por exemplo, se você estiver usando buildroot
como um sub-módulo, os olhares árvore de diretórios como:.
.git/
buildroot/
.gitmodules
kernel-config-frag
por exemplo. Para ligar CONFIG_DEBUG_FS
, fazer:
echo 'CONFIG_DEBUG_FS=y' > kernel-config-frag
e BuildRoot então configure com:
cd buildroot
make qemu_x86_64_defconfig
echo 'BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES=../kernel-config-frag' >> buildroot/.config
make
Desta forma, você pode git rastrear apenas um diff entre qemu_x86_64_defconfig
e suas configurações extras.
Eu acredito que este usos scripts/kconfig/merge_config.sh
formar o kernel como mencionado em: Como você não interativa ativar os recursos no arquivo de um kernel Linux config?
Depois de alterar o fragmento de configuração, lembre-se de fazer:
rm -rf buildroot/output/build/linux-*.*.*/
antes da próxima compilação.
exemplo executável Minimal em: https: //github.com/cirosantilli/linux-kernel-module-cheat/blob/bb8f4eb79565c9771356c80e0964c8fefc163e11/kernel-config-frag
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
Seleciona a .config
completo para ser utilizado.
Por alguma razão eu tenho para nuke .config
do kernel para que isso tenha efeito? Porque quando Eu mudar BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE e executar make linux-reconfigure o .config kernel não mudar?
As etapas são as seguintes:
-
cd buildroot/
-
make menuconfig
-
Kernel -> Linux Kernel -> Versão Kernel