Onde o defconfig obtém sua configuração no OpenWrt?

3

Estou compilando uma imagem para dispositivos Wi-Fi usando o OpenWrt . Seguindo a instrução, copio um arquivo .config simples para o TOP-DIR.

CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx_generic=y
CONFIG_TARGET_ar71xx_generic_XXX_OpenWrt_Router=y

Em seguida, execute o comando make menuconfig . O resultado deste comando é

.config file now having default configuration. 

No entanto, não sei de onde vem toda a nova configuração. Se eu apenas alterar CONFIG_TARGET_ar71xx_generic_XXX_Router=y para CONFIG_TARGET_ar71xx_generic_YYY_Router=y , o resultado de make defconfig deverá ser muito diferente.

    
por trandatnh 21.05.2014 / 04:18

2 respostas

4

O OpenWrt armazena a configuração no diretório

target/linux/<target system>/<subtarget>/profiles

Você pode definir o sistema de destino e o subendereço com o comando make menuconfig :

No meu caso:

sistema de destino = ar71xx

subtarget = generic

O diretório seria:

target/linux/ar71xx/generic/profiles

Neste diretório, você encontrará alguns perfis pré-definidos, armazenamentos no arquivo <profile>.mk . Esses arquivos definem quais pacotes serão usados como padrão quando um perfil de destino é selecionado.

    
por 22.05.2014 / 11:38
4

As configurações são geralmente armazenadas no diretório

arch/$(ARCH)/configs

para que o padrão x86 config seja

arch/x86/configs/i386_defconfig

e o padrão x86_64 config é

arch/x86/configs/x86_64_defconfig

onde todos os caminhos são relativos à raiz src do linux.

Para encontrar qualquer configuração padrão para qualquer arco, você pode exemplo de nível superior Makefile e encontrar

include $(srctree)/arch/$(SRCARCH)/Makefile
export KBUILD_DEFCONFIG KBUILD_KCONFIG

config: scripts_basic outputmakefile FORCE
  $(Q)mkdir -p include/linux include/config
  $(Q)$(MAKE) $(build)=scripts/kconfig $@

e examinando o Makefile em $(srctree)/arch/$(SRCARCH)/Makefile , por exemplo, arch/x86/Makefile , você encontrará:

ifeq ($(ARCH),x86)
  ifeq ($(shell uname -m),x86_64)
        KBUILD_DEFCONFIG := x86_64_defconfig
  else
        KBUILD_DEFCONFIG := i386_defconfig
  endif
else
        KBUILD_DEFCONFIG := $(ARCH)_defconfig
endif

em que o resultado final da variável KBUILD_DEFCONFIG contém o nome do arquivo da configuração padrão da arquitetura.

    
por 21.05.2014 / 04:33