1#!/bin/bash 2 3# Copyright (c) 2021-2023 HiHope Open Source Organization . 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15 16set -e 17 18 19 20pushd ${1} 21ROOT_DIR=${5} 22KERNEL_VERSION=linux-5.10 23export PRODUCT_PATH=${4} 24export DEVICE_COMPANY=${6} 25export DEVICE_NAME=dayu210 26export PRODUCT_COMPANY=${8} 27 28KERNEL_SRC_TMP_PATH=${ROOT_DIR}/out/rk3588/kernel/src_tmp/linux-5.10 29KERNEL_OBJ_TMP_PATH=${ROOT_DIR}/out/rk3588/kernel/OBJ/linux-5.10 30KERNEL_SOURCE=${ROOT_DIR}/kernel/linux/linux-5.10 31KERNEL_PATCH_PATH=${ROOT_DIR}/device/board/hihope/dayu210/kernel/kernel_patch/linux-5.10 32KERNEL_PATCH=${ROOT_DIR}/device/board/hihope/dayu210/kernel/kernel_patch/linux-5.10/dayu210_patch/kernel.patch 33HDF_PATCH=${ROOT_DIR}/device/board/hihope/dayu210/kernel/kernel_patch/linux-5.10/dayu210_patch/hdf.patch 34KERNEL_CONFIG_FILE=${ROOT_DIR}/device/board/hihope/dayu210/kernel/kernel_config/linux-5.10/arch/arm64/rk3588_standard_defconfig 35 36NEWIP_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/newip/apply_newip.sh 37TZDRIVER_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/tzdriver/apply_tzdriver.sh 38XPM_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/xpm/apply_xpm.sh 39CED_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/container_escape_detection/apply_ced.sh 40HIDEADDR_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/memory_security/apply_hideaddr.sh 41QOS_AUTH_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/qos_auth/apply_qos_auth.sh 42UNIFIED_COLLECTION_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/ucollection/apply_ucollection.sh 43CODE_SIGN_PATCH_FILE=${ROOT_DIR}/kernel/linux/common_modules/code_sign/apply_code_sign.sh 44 45HARMONY_CONFIG_PATH=${ROOT_DIR}/kernel/linux/config/${KERNEL_VERSION} 46DEVICE_CONFIG_PATH=${ROOT_DIR}/kernel/linux/config/${KERNEL_VERSION}/${DEVICE_NAME} 47DEFCONFIG_BASE_FILE=${HARMONY_CONFIG_PATH}/base_defconfig 48DEFCONFIG_TYPE_FILE=${HARMONY_CONFIG_PATH}/type/standard_defconfig 49DEFCONFIG_FORM_FILE=${HARMONY_CONFIG_PATH}/form/${KERNEL_FORM}_defconfig 50DEFCONFIG_ARCH_FILE=${DEVICE_CONFIG_PATH}/arch/arm64_defconfig 51DEFCONFIG_PROC_FILE=${DEVICE_CONFIG_PATH}/product/${KERNEL_PROD}_defconfig 52 53 54rm -rf ${KERNEL_SRC_TMP_PATH} 55mkdir -p ${KERNEL_SRC_TMP_PATH} 56 57rm -rf ${KERNEL_OBJ_TMP_PATH} 58mkdir -p ${KERNEL_OBJ_TMP_PATH} 59#export KBUILD_OUTPUT=${KERNEL_OBJ_TMP_PATH} 60export KBUILD_OUTPUT=${KERNEL_SRC_TMP_PATH} 61 62echo "cp kernel source" 63cp -arf ${KERNEL_SOURCE}/* ${KERNEL_SRC_TMP_PATH}/ 64 65cd ${KERNEL_SRC_TMP_PATH} 66 67#HDF patch 68echo "HDF patch" 69bash ${ROOT_DIR}/drivers/hdf_core/adapter/khdf/linux/patch_hdf.sh ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${KERNEL_PATCH_PATH} ${DEVICE_NAME} 70 71#kernel patch 72echo "kernel patch" 73patch -p1 < ${KERNEL_PATCH} 74 75cp -rf ${3}/kernel/logo* ${KERNEL_SRC_TMP_PATH}/ 76cp -rf ${3}/kernel/make*.sh ${KERNEL_SRC_TMP_PATH}/ 77#config 78cp -rf ${KERNEL_CONFIG_FILE} ${KERNEL_SRC_TMP_PATH}/arch/arm64/configs/rockchip_linux_defconfig 79 80ln -s ${ROOT_DIR}/device/soc/rockchip/rk3588/kernel ${KERNEL_SRC_TMP_PATH}/vendor 81 82if [ ! -d "${ROOT_DIR}/device/soc/rockchip/rk3588/kernel/drivers/net/wireless/rockchip_wlan" ];then 83 ln -s ${ROOT_DIR}/device/soc/rockchip/common/kernel/drivers/net/wireless/rockchip_wlan ${KERNEL_SRC_TMP_PATH}/vendor/drivers/net/wireless/rockchip_wlan 84fi 85 86if [ ! -d "${ROOT_DIR}/device/soc/rockchip/rk3588/kernel/drivers/gpu/arm" ];then 87 ln -s ${ROOT_DIR}/device/soc/rockchip/common/kernel/drivers/gpu/arm ${KERNEL_SRC_TMP_PATH}/vendor/drivers/gpu/arm 88fi 89 90cp -rf ${3}/kernel/logo* ${KERNEL_SRC_TMP_PATH}/vendor/ 91 92#xpm 93if [ -f $XPM_PATCH_FILE ]; then 94 bash $XPM_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION} 95fi 96 97#ced 98if [ -f $CED_PATCH_FILE ]; then 99 bash $CED_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION} 100fi 101#code_sign 102if [ -f $CODE_SIGN_PATCH_FILE ]; then 103 bash $CODE_SIGN_PATCH_FILE ${ROOT_DIR} ${KERNEL_SRC_TMP_PATH} ${DEVICE_NAME} ${KERNEL_VERSION} 104fi 105 106bash ${ROOT_DIR}/kernel/linux/${KERNEL_VERSION}/scripts/kconfig/merge_config.sh -O ${KERNEL_SRC_TMP_PATH}/arch/arm64/configs/ -m ${KERNEL_CONFIG_FILE} ${DEFCONFIG_BASE_FILE} 107mv ${KERNEL_SRC_TMP_PATH}/arch/arm64/configs/.config ${KERNEL_SRC_TMP_PATH}/arch/arm64/configs/rockchip_linux_defconfig 108if [ "enable_ramdisk" == "${9}" ]; then 109 ./make-ohos.sh BQ3588C1 enable_ramdisk 110else 111 ./make-ohos.sh BQ3588C1 disable_ramdisk 112fi 113 114mkdir -p ${2} 115 116cp ${KERNEL_SRC_TMP_PATH}/resource.img ${2}/resource.img 117cp ${3}/loader/parameter.txt ${2}/parameter.txt 118cp ${3}/loader/MiniLoaderAll.bin ${2}/MiniLoaderAll.bin 119cp ${3}/loader/uboot.img ${2}/uboot.img 120cp ${3}/loader/config.cfg ${2}/config.cfg 121popd 122 123kernel/src_tmp/linux-5.10/make-boot.sh .. 124