高通平台defconfig文件的确定



(1)命令执行追溯
Source build/envsetup.sh
执行envsetup.sh脚本,把(TARGET_DEVICE)/BoardConfig.mk包含了进来:
build/envsetup.sh:
function gettop
{
    local TOPFILE=build/core/envsetup.mk
 ................
}


build/core/envsetup.mk:
board_config_mk := \
 $(strip $(sort $(wildcard \
  $(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \
  $(shell test -d device && find -L device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \
  $(shell test -d vendor && find -L vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \
 )))

BoardConfig.mk中有如下内容
ifeq ($(KERNEL_DEFCONFIG),) //如果make命令中未指定KERNEL_DEFCONFIG的值,则在此处指定它的值
    ifeq ($(TARGET_BUILD_VARIANT),user)
      KERNEL_DEFCONFIG := msm8909-1gb-perf_defconfig
    else
      KERNEL_DEFCONFIG := msm8909-1gb_defconfig
    endif
endif

include kernel/AndroidKernel.mk

(2)进入Kernel/AndroidKernel.mk

 KERNEL_HEADER_DEFCONFIG := $(strip$(KERNEL_HEADER_DEFCONFIG))

 ifeq ($(KERNEL_HEADER_DEFCONFIG),)

  KERNEL_HEADER_DEFCONFIG:= $(KERNEL_DEFCONFIG)

 endif

 KERNEL_OUT :=$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ

 KERNEL_CONFIG :=$(KERNEL_OUT)/.config              //----------------------------目标文件

 

$(KERNEL_CONFIG): $(KERNEL_OUT)

 $(MAKE) -C kernel O=../$(KERNEL_OUT)ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG)

 $(hide) if [ ! -z"$(KERNEL_CONFIG_OVERRIDE)" ]; then /

   echo "Overridingkernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; /

   echo$(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; /

   $(MAKE) -C kernelO=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE)oldconfig; fi

 

(3)kernel/scripts/kconfig/Makefile
 %_defconfig: $(obj)/conf
  $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
在编译内核时执行上述命令生成.config文件,该命令展开后如下所示:

      scripts/kconfig/conf --defconfig=arch/arm64/configs/.msmxxx_defconfig Kconfig

其中.msmxxx_defconfig的值就是KERNEL_DEFCONFIG的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值