From 992d1969fcf222b072ac338908b21805611c9b36 Mon Sep 17 00:00:00 2001
From: android <android@lingyun.com>
Date: Fri, 12 Jul 2024 15:08:07 +0800
Subject: [PATCH] Update linux SDK build shell script and patches

---
 linux_sdk/build.sh |  110 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 64 insertions(+), 46 deletions(-)

diff --git a/linux_sdk/build.sh b/linux_sdk/build.sh
index bbbb060..f47f981 100755
--- a/linux_sdk/build.sh
+++ b/linux_sdk/build.sh
@@ -7,7 +7,7 @@
 TOP_PATH=$(realpath $PRJ_PATH/..)
 
 # SDK build workspace
-SDK_DIR=sdk_build
+SDK_DIR=linuxsdk_build
 
 # binaries build prefix install path
 PRFX_PATH=$PRJ_PATH/install
@@ -97,72 +97,88 @@
     export SDK_PATH=`jq -r ".linux.sdk_path" $CONF_FILE`
     export DISTRO=`jq -r ".linux.distro" $CONF_FILE | tr 'A-Z' 'a-z'`
 
-	export ARCH=arm64
+    export ARCH=arm64
 
-	if [[ $BOARD =~ igkboard-rk3568 ]] ; then
-		LUNCH_BOARD=rockchip_rk3568_evb1_ddr4_v10_defconfig
-	fi
+    if [[ $BOARD =~ igkboard-rk3568 ]] ; then
+        LAUNCH_BOARD=rockchip_rk3568_evb1_ddr4_v10_defconfig
+    fi
 
-	PYTHON_VERSION=$(python --version 2>&1 | awk '{print $2}' | cut -d. -f1)
-	if [ $PYTHON_VERSION != "3" ] ; then
-		PYTHON_VERSION=$(python --version 2>&1)
-		pr_error "ERROR: This SDK build need Python3, current version is $PYTHON_VERSION"
-		pr_warn "You can use 'sudo update-alternatives --config python' command to switch it"
-		exit
-	fi
+    PYTHON_VERSION=$(python --version 2>&1 | awk '{print $2}' | cut -d. -f1)
+    if [ $PYTHON_VERSION != "3" ] ; then
+        PYTHON_VERSION=$(python --version 2>&1)
+        pr_error "ERROR: This SDK build need Python3, current version is $PYTHON_VERSION"
+        pr_warn "You can use 'sudo update-alternatives --config python' command to switch it"
+        exit
+    fi
 }
 
 function do_fetch()
 {
-	SDK_FPATH=$SDK_PATH/$SDK_VER
+    SDK_FPATH=$SDK_PATH/$SDK_VER
 
-	PATCH_FLAG="$SDK_DIR/kernel/arch/arm64/configs/rockchip_linux_defconfig"
+    SDK_FLAG=$SDK_DIR/kernel/Makefile
 
-	if [ -e $PATCH_FLAG ] ;  then
-		pr_warn "SDK source code fetched already, skip do fetch"
-		return ;
-	fi
+    cd $PRJ_PATH
 
-	if [ ! -d $SDK_DIR/.repo ] ; then
+    if [ -e $SDK_FLAG ] ;  then
+        pr_warn "SDK source code fetched already, skip do fetch"
+        return ;
+    fi
 
-		SDK_FILE=`ls $SDK_FPATH/*.tar.bz2 | head -n 1`
+    if [ ! -d $SDK_DIR/.repo ] ; then
 
-		if [ ! -d $SDK_FPATH ] ; then
-			pr_error "ERROR: SDK package folder '$SDK_FPATH' doesn't exist!"
-			exit
-		fi
+        if [ ! -d $SDK_FPATH ] ; then
+            pr_error "ERROR: SDK package folder '$SDK_FPATH' doesn't exist!"
+            exit
+        fi
 
-		pr_info "decompress SDK tarball $SDK_FILE..."
+        SDK_FILE=`ls $SDK_FPATH/*.tar.bz2 | head -n 1`
 
-		do_unpack $SDK_FILE $SDK_DIR
-	fi
-	
-	cd $SDK_DIR
+        pr_info "decompress SDK tarball $SDK_FILE..."
+        do_unpack $SDK_FILE $SDK_DIR
+    fi
 
-	if [ ! -e $PATCH_FLAG ] ; then
-		pr_info "repo sync to checkout source code..."
-		./.repo/repo/repo sync -l
-	fi
+    if [ ! -e $SDK_FLAG ] ; then
+        pr_info "repo sync to checkout source code..."
+        cd $SDK_DIR
+        ./.repo/repo/repo sync -l
+    fi
 
-	if ! grep -q '^CONFIG_CAN=y' $PATCH_FLAG ; then 
-		pr_info "patch for linux kernel..."
-		cd kernel
-		patch -p1 < $PRJ_PATH/patch/kernel.patch
-	fi
+}
+
+function do_patch()
+{
+    PATCH_FLAG="$SDK_DIR/kernel/arch/arm64/configs/rockchip_linux_defconfig"
+
+    cd $PRJ_PATH
+
+    if grep -q '^CONFIG_CAN=y' $PATCH_FLAG ; then
+        pr_warn "INFO: Patch for Linux SDK already"
+        return ;
+    fi
+
+    pr_info "patch for linux kernel..."
+    cd $SDK_DIR/kernel
+    patch -p1 < $PRJ_PATH/patches/kernel.patch
+    cd -
+
+    pr_info "patch for linux buildroot..."
+    cd $SDK_DIR/buildroot
+    patch -p1 < $PRJ_PATH/patches/buildroot.patch
+    cd -
 }
 
 function do_build()
 {
-	pr_info "Choose your board"
+    cd $PRJ_PATH
+    pr_info "start build $LAUNCH_BOARD..."
 
-	cd $SDK_DIR
-	
-	./build.sh lunch:${LUNCH_BOARD}
+    cd $SDK_DIR
+    ./build.sh lunch:${LAUNCH_BOARD}
+    RK_ROOTFS_SYSTEM=$DISTRO ./build.sh
 
-	RK_ROOTFS_SYSTEM=$DISTRO ./build.sh
-
-	pr_info "System image will be installed to $PRJ_PATH/$SDK_DIR/rockdev"
-	ls ./rockdev
+    pr_info "System image will be installed to $SDK_DIR/rockdev"
+    ls ./rockdev
 }
 
 #+-------------------------+
@@ -175,4 +191,6 @@
 
 do_fetch
 
+do_patch
+
 do_build

--
Gitblit v1.9.1