安卓系统怎么确定Linux内核使用哪个deconfig

在内核中经常会使能某一个变量或者禁止某一个变量,这些变量会定义在deconfig中,位置一般在arch/arm64/configs下,deconfig会定义某个config变量是y还是n,系统编译是如何选择的呢?

编译的命令如下:

./build/envsetup.sh

lunch 29

  • 先看envsetup.sh
command make --no-print-directory -f build/core/config.mk dumpvar-abs-$1)  //这里也是线索

function gettop
{
    local TOPFILE=build/core/envsetup.mk    //这里就是线索
    ......
}
  • 然后看config.mk

include $(BUILD_SYSTEM)/envsetup.mk  //这里是确定引用的
  • 最后看envsetup.mk
board_config_mk := \
$(strip $(wildcard \
$(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \
$(shell test -d device && find device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \
$(shell test -d vendor && find vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \
))   //获取到对应的BoardConfig.mk文件

TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk)))  //获取对应的路径
matthew@matthew:/media/matt2/8937-evb-1/build/target/board$ grep -r "TARGET_DEVICE_DIR" ./
./Android.mk:-include $(TARGET_DEVICE_DIR)/AndroidBoard.mk    //加载对应的AndroidBoard.mk

然后到对应的/device/asus/msm8937_evb/里的AndroidBoard.mk

如下:

-include device/qcom/msm8937_64/AndroidBoard.mk
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_BUILD_VARIANT),user)
KERNEL_DEFCONFIG := msm8937-perf_defconfig 
else
KERNEL_DEFCONFIG := msm8937_defconfig  //最后用的是这个deconfig文件
endif

转载:https://blog.csdn.net/u013308744/article/details/51034034

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值