Android Kernel如何確定使用哪個defconfig文件

Android Kernel如何確定使用哪個defconfig文件?

答案:

device/廠商名/項目名/AndroidBoard.mk 決定了使用哪個def_config文件

1. 項目控制的AndroidBoard.mk

以device/qcom/sm6150/AndroidBoard.mk爲例子

因爲KERNEL_DEFCONFIG被定義爲sdmsteppe-perf_defconfig、sdmsteppe_defconfig文件,所以kernel編譯時會使用這兩個中的一個。

#----------------------------------------------------------------------
# Compile Linux Kernel
#----------------------------------------------------------------------
ifeq ($(KERNEL_DEFCONFIG),)
    ifeq ($(TARGET_BUILD_VARIANT),user)
        KERNEL_DEFCONFIG := vendor/sdmsteppe-perf_defconfig
    else
        KERNEL_DEFCONFIG := vendor/sdmsteppe_defconfig
    endif
endif

而TARGET_BUILD_VARIANT變量是在Android編譯系統中定義的
這個變量決定了編譯的是userdebug還是eng版本
也會決定具體是使用sdmsteppe-perf_defconfig,還是sdmsteppe_defconfig文件
TARGET_BUILD_VARIANT

2. 控制kernel編譯的AndroidKernel.mk

在內核源碼中的kernel/msm-4.14/AndroidKernel.mk文件確定了具體使用哪個config文件

ifeq ($(shell echo $(KERNEL_DEFCONFIG) | grep vendor),)
KERNEL_DEFCONFIG := vendor/$(KERNEL_DEFCONFIG)
endif
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章