OpenWrtを使用してwifiデバイスのイメージをコンパイルしています。指示に従って、単純な.config
ファイルをTOP-DIRにコピーします。
CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx_generic=y
CONFIG_TARGET_ar71xx_generic_XXX_OpenWrt_Router=y
次に、コマンドmake menuconfig
を実行します。このコマンドの結果は
.config file now having default configuration.
ただし、新しい構成がどこから来るのかはわかりません。 CONFIG_TARGET_ar71xx_generic_XXX_Router=y
をCONFIG_TARGET_ar71xx_generic_YYY_Router=y
に変更しただけでは、make defconfig
の結果は大きく異なるはずです。
OpenWrtは設定をディレクトリに保存します
target/linux/<target system>/<subtarget>/profiles
コマンドmake menuconfig
を使用して、ターゲットシステムとサブターゲットを設定できます。
私の場合:
ターゲットシステム= ar71xx
サブターゲット= generic
したがって、ディレクトリは次のようになります。
target/linux/ar71xx/generic/profiles
このディレクトリには、いくつかの事前定義されたプロファイルがあり、<profile>.mk
ファイルに格納されています。これらのファイルは、ターゲットプロファイルが選択されたときにデフォルトとして使用されるパッケージを定義します。
設定は通常、ディレクトリに保存されます
_Arch/$(Arch)/configs
_
したがって、デフォルトの_x86
_構成は
_Arch/x86/configs/i386_defconfig
_
デフォルトの_x86_64
_構成は
_Arch/x86/configs/x86_64_defconfig
_
ここで、すべてのパスはLinuxのsrcルートからの相対パスです。
Archのデフォルト設定を見つけるには、トップレベルのMakefile
を例にして、
_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 $@
_
$(srctree)/Arch/$(SRCARCH)/Makefile
でMakefileを調べると、たとえば_Arch/x86/Makefile
_が見つかります。
_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
_
ここで、変数_KBUILD_DEFCONFIG
_の最終結果には、アーキテクチャーのデフォルト構成のファイル名が含まれています。