From 8d1871c62fc13ba6a2063500d58172b00a649d05 Mon Sep 17 00:00:00 2001 From: zhujiaxin Date: Tue, 14 Mar 2023 16:49:15 +0800 Subject: [PATCH] Linux kernel configuration layered Signed-off-by: zhujiaxin --- BUILD.gn | 2 ++ build_kernel.sh | 2 +- kernel.mk | 23 ++++++++++++++++++++--- kernel_build.py | 0 kernel_module_build.sh | 1 + 5 files changed, 24 insertions(+), 4 deletions(-) mode change 100644 => 100755 kernel_build.py diff --git a/BUILD.gn b/BUILD.gn index 08bd5c0..d7108c2 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -69,6 +69,8 @@ if (os_level == "mini" || os_level == "small") { product_path, device_name, linux_kernel_version, + build_variant, + device_type, ] } diff --git a/build_kernel.sh b/build_kernel.sh index 2679743..3e7085d 100755 --- a/build_kernel.sh +++ b/build_kernel.sh @@ -21,7 +21,7 @@ set -e echo build_kernel pushd ${1} -./kernel_module_build.sh ${2} ${4} ${5} ${6} ${7} ${8} +./kernel_module_build.sh ${2} ${4} ${5} ${6} ${7} ${8} ${9} ${10} mkdir -p ${3} rm -rf ${3}/../../../kernel.timestamp diff --git a/kernel.mk b/kernel.mk index ee391f1..a1a827b 100644 --- a/kernel.mk +++ b/kernel.mk @@ -26,7 +26,6 @@ endif KERNEL_SRC_PATH := $(OHOS_BUILD_HOME)/kernel/linux/${KERNEL_VERSION} KERNEL_PATCH_PATH := $(OHOS_BUILD_HOME)/kernel/linux/patches/${KERNEL_VERSION} -KERNEL_CONFIG_PATH := $(OHOS_BUILD_HOME)/kernel/linux/config/${KERNEL_VERSION} PREBUILTS_GCC_DIR := $(OHOS_BUILD_HOME)/prebuilts/gcc CLANG_HOST_TOOLCHAIN := $(OHOS_BUILD_HOME)/prebuilts/clang/ohos/linux-x86_64/llvm/bin KERNEL_HOSTCC := $(CLANG_HOST_TOOLCHAIN)/clang @@ -70,6 +69,24 @@ DEFCONFIG_FILE := $(DEVICE_NAME)_$(BUILD_TYPE)_defconfig export KBUILD_OUTPUT=$(KERNEL_OBJ_TMP_PATH) +HARMONY_CONFIG_PATH := $(OHOS_BUILD_HOME)/kernel/linux/config/$(KERNEL_VERSION) +DEVICE_CONFIG_PATH := $(OHOS_BUILD_HOME)/kernel/linux/config/$(KERNEL_VERSION)/$(DEVICE_NAME) +DEFCONFIG_BASE_FILE := $(HARMONY_CONFIG_PATH)/base_defconfig +DEFCONFIG_TYPE_FILE := $(HARMONY_CONFIG_PATH)/type/$(BUILD_TYPE)_defconfig +DEFCONFIG_FORM_FILE := $(HARMONY_CONFIG_PATH)/form/$(KERNEL_FORM)_defconfig +DEFCONFIG_ARCH_FILE := $(DEVICE_CONFIG_PATH)/arch/$(KERNEL_ARCH)_defconfig +DEFCONFIG_PROC_FILE := $(DEVICE_CONFIG_PATH)/product/$(KERNEL_PROD)_defconfig + +ifneq ($(shell test -e $DEFCONFIG_FORM_FILE), 0) + DEFCONFIG_FORM_FILE := + $(warning no form config file $(DEFCONFIG_FORM_FILE)) +endif + +ifneq ($(shell test -e $DEFCONFIG_PROC_FILE), 0) + DEFCONFIG_PROC_FILE := + $(warning no product config file $(DEFCONFIG_PROC_FILE)) +endif + $(KERNEL_IMAGE_FILE): $(hide) echo "build kernel..." ifeq ($(DEVICE_NAME), hispark_phoenix) @@ -90,8 +107,8 @@ endif ifneq ($(findstring $(BUILD_TYPE), small),) $(hide) cd $(KERNEL_SRC_TMP_PATH) && patch -p1 < $(SMALL_PATCH_FILE) endif - - $(hide) cp -rf $(KERNEL_CONFIG_PATH)/. $(KERNEL_SRC_TMP_PATH)/ + sh $(OHOS_BUILD_HOME)/kernel/linux/$(KERNEL_VERSION)/scripts/kconfig/merge_config.sh -O $(KERNEL_SRC_TMP_PATH)/arch/$(KERNEL_ARCH)/configs/ -m $(DEFCONFIG_TYPE_FILE) $(DEFCONFIG_FORM_FILE) $(DEFCONFIG_ARCH_FILE) $(DEFCONFIG_PROC_FILE) $(DEFCONFIG_BASE_FILE) + mv $(KERNEL_SRC_TMP_PATH)/arch/$(KERNEL_ARCH)/configs/.config $(KERNEL_SRC_TMP_PATH)/arch/$(KERNEL_ARCH)/configs/$(DEFCONFIG_FILE) $(hide) $(KERNEL_MAKE) -C $(KERNEL_SRC_TMP_PATH) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) distclean $(hide) $(KERNEL_MAKE) -C $(KERNEL_SRC_TMP_PATH) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(DEFCONFIG_FILE) ifeq ($(KERNEL_VERSION), linux-5.10) diff --git a/kernel_build.py b/kernel_build.py old mode 100644 new mode 100755 diff --git a/kernel_module_build.sh b/kernel_module_build.sh index 74ac9c8..7a4fc9e 100755 --- a/kernel_module_build.sh +++ b/kernel_module_build.sh @@ -21,6 +21,7 @@ export KERNEL_ARCH=$3 export PRODUCT_PATH=$4 export DEVICE_NAME=$5 export KERNEL_VERSION=$6 + if [ "$BUILD_TYPE" == "small" ];then LINUX_KERNEL_OUT=${OUT_DIR}/kernel/${KERNEL_VERSION} elif [ "$BUILD_TYPE" == "standard" ];then -- Gitee