From fe3873a5423e587161941ba833bfbd266cc37f6a Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Wed, 28 Jun 2023 22:08:51 +0800
Subject: [PATCH] update buildroot install build shell script

---
 tools/setup_tools.sh         |   19 ++--
 tools/buildroot/buildroot.sh |  166 +++++++++++------------------------------
 2 files changed, 53 insertions(+), 132 deletions(-)

diff --git a/tools/buildroot/buildroot.sh b/tools/buildroot/buildroot.sh
index 878ed57..da154b8 100755
--- a/tools/buildroot/buildroot.sh
+++ b/tools/buildroot/buildroot.sh
@@ -1,136 +1,60 @@
 #!/bin/bash
 
-LYFTP_PUB=http://weike-iot.com:2211/imx6ull/tools/lintools
-
-PRJ_PATH=`pwd`
-WORK_SPACE=${HOME}/buildroot/
-INST_PATH=/opt/buildroot/cortexA7
-
-BR_VER=buildroot-2021.02.7
-BR_PAK=${BR_VER}-packets
-
-BR_TAR=${BR_PAK}.tar.bz2
-BR_CONF=${BR_VER}-cortexA7.config
-
-# This configure file support QT, opencv...
-#BR_CONF=${BR_VER}-cortexA7-multimedia.config
-
-JOBS=`cat /proc/cpuinfo | grep processor | wc -l`
-
-set -u
+# exit shell script when command get error
 set -e
 
-if [ `id -u` == 0 ] ; then
-    echo "ERROR: This shell script shouldn't be excuted by root!"
-    exit ;
+# crosstool name
+BUILDROOT_NAME=gcc-10.4-cortexA7-2023.02
+
+# crosstool download server URL
+LYFTP_PUB=http://master.iot-yun.club:2211/imx/crosstool
+
+# install path defined in build shell script
+INST_PATH=/opt/buildroot
+
+# buildroot version
+BR_VER=buildroot-2023.02
+
+# set workspace to build buildroot
+WORK_SPACE=${HOME}
+
+if [ -d $INST_PATH/$BUILDROOT_NAME ] ; then
+    echo "crosstool $BUILDROOT_NAME already installed to \"$INST_PATH\""
+    exit
 fi
 
-STAGE=0
-function msg_banner()
-{ 
-    STAGE=`expr $STAGE + 1`
-    
-    echo ""
-    echo "+---------------------------------------------+" 
-    printf " Stage $STAGE: $1\n" 
-    echo "+---------------------------------------------+"
-    echo ""
-}
-
-function do_fetch()
-{
-    msg_banner "Fetch ${BR_VER} packets"
-
-    if [ -d $BR_VER ] ; then
-        printf "\n\n -- ${BR_VER} fetched already -- \n\n"
-        return ;
-    fi
-
-    if [ ! -s $BR_TAR ] ; then
-        printf "\n\n -- fetch ${BR_VER} packet -- \n\n"
-        wget ${LYFTP_PUB}/$BR_TAR
-    fi
-
-    if [ ! -d $BR_PAK ] ; then 
-        printf "\n\n -- decompress ${BR_TAR} packet -- \n\n"
-        tar -xjf ${BR_TAR}
-    fi
-
-    printf "\n\n -- decompress ${BR_VER} -- \n\n"
-    tar -xjf ${BR_PAK}/buildroot/${BR_VER}.tar.bz2
-
-    mv ${BR_PAK} ${BR_VER}/tarballs
-}
-
-function do_patch()
-{
-    msg_banner "Patch for ${BR_VER} "
-
-    cd $BR_VER
-
-    cp tarballs/buildroot/$BR_CONF .config
-    cp tarballs/busybox/busybox.config package/busybox/
-    sed -i "s|^BR2_HOST_DIR=.*|BR2_HOST_DIR=\"${INST_PATH}\"|g" .config
-
-    cd -
-}
-
-function do_build()
-{
-    msg_banner "Build ${BR_VER} "
-    cd $BR_VER
-
-    make -j ${JOBS}
-
-    cd -
-}
-
-function do_install()
-{
-    msg_banner "Install ${BR_VER} "
-
-    # Packet and install crosstool 
-    cd `dirname $INST_PATH`
-    tar -cjf ${PRJ_PATH}/${BR_VER}-`basename $INST_PATH`.tar.bz2 `basename $INST_PATH`
-
-    # Install rootfs tarball
-    cp $WORK_SPACE/$BR_VER/output/images/rootfs.tar.bz2 ${PRJ_PATH}/rootfs_buildroot.tar.bz2
-
-    echo ""
-    echo " -- 1. Crosstool already installed to \"$INST_PATH\".";
-    echo " -- 2. Crosstool and rootfs packet installed to \"$PRJ_PATH\"";
-    echo " -- 3. Build workspace path is \"$WORK_SPACE\", you can remove it now.";
-    echo ""
-}
-
-function do_prepare()
-{
-    INST_DIR=`dirname $INST_PATH`
+# check install path is writable or not
+if [ ! -w $INST_PATH ] ; then
     CUR_USER=`whoami`
 
-    if [ ! -w $INST_DIR ] ; then
-        echo ""
-        echo "ERROR: Crosstool install path \"$INST_DIR\" not writable, please solve it by follow command: "
-        echo "          sudo sh -c 'mkdir -p $INST_DIR && chown $CUR_USER.$CUR_USER $INST_DIR' "
-        echo ""
-        exit ;
-    fi
+    echo "ERROR: Crosstool install path \"$INST_PATH\" not writable, please solve it by follow command: "
+    echo "          sudo sh -c 'mkdir -p $INST_PATH && chown $CUR_USER.$CUR_USER $INST_PATH' "
+    exit
+fi
 
-    echo ""
-    echo ""
-    echo " Switch work space to \"$WORK_SPACE\" " 
-    echo ""
-    mkdir -p $WORK_SPACE 
-    cd $WORK_SPACE
-}
 
-do_prepare
+cd $WORK_SPACE
 
-do_fetch
+# Download source code pacakge, it's about 1.8GB
+if [ ! -s ${BR_VER}-packets.tar.xz ] ; then
+    wget $LYFTP_PUB/${BR_VER}-packets.tar.xz
+fi
 
-do_patch
+if [ ! -d ${BR_VER} ] ; then
+    tar -xJf ${BR_VER}-packets.tar.xz
+fi
 
-do_build
+cd ${BR_VER}
 
-do_install
+chmod +x build.sh
+
+./build.sh
+
+echo ""
+$INST_PATH/$BUILDROOT_NAME/bin/arm-linux-gcc -v
+
+echo ""
+echo " -- crosstool already installed to \"$INST_PATH/$BUILDROOT_NAME\".";
+echo " -- build workspace path is \"$WORK_SPACE/$BR_VER\", you can remove it now.";
+echo ""
 
diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh
index 02cb804..43b67ba 100755
--- a/tools/setup_tools.sh
+++ b/tools/setup_tools.sh
@@ -2,7 +2,7 @@
 # This shell script used to setup imx6ull build envrionment
 #
 
-LYFTP_PUB=http://wekei-iot.com:2211/imx/igkboard/tools/lintools
+LYFTP_PUB=http://master.iot-yun.club:2211/imx/crosstool
 
 # display in yellow
 function pr_warn() {
@@ -76,11 +76,8 @@
 function install_buildroot()
 {
     BUILDROOT_PATH=/opt/buildroot
-    BUILDROOT_NAME=cortexA7
-
-    BUILDROOT_VER=buildroot-2021.02.7-cortexA7
-    BUILDROOT_TAR=${BUILDROOT_VER}.tar.bz2
-    BUILDROOT_DLADDR=${LYFTP_PUB}/$BUILDROOT_TAR
+    BUILDROOT_NAME=gcc-10.4-cortexA7-2023.02
+    BUILDROOT_TAR=$BUILDROOT_NAME.tar.xz
 
     if [ -d ${BUILDROOT_PATH}/${BUILDROOT_NAME} ] ; then
         pr_warn "Buildroot already installed to $BUILDROOT_PATH/$BUILDROOT_NAME"
@@ -90,12 +87,12 @@
     mkdir -p ${BUILDROOT_PATH}
 
     if [ ! -f $BUILDROOT_TAR ] ; then
-        pr_info "download $BUILDROOT_VER now..."
-        wget -c $BUILDROOT_DLADDR
+        pr_info "download $BUILDROOT_NAME now..."
+        wget -c $LYFTP_PUB/$BUILDROOT_TAR
     fi
 
-    pr_info "install $BUILDROOT_VER to $BUILDROOT_PATH/$BUILDROOT_NAME now..."
-    tar -xjf ${BUILDROOT_TAR} -C ${BUILDROOT_PATH}
+    pr_info "install $BUILDROOT_NAME to $BUILDROOT_PATH now..."
+    tar -xJf ${BUILDROOT_TAR} -C ${BUILDROOT_PATH}
 
     $BUILDROOT_PATH/$BUILDROOT_NAME/bin/arm-linux-gcc -v
 
@@ -127,7 +124,7 @@
     tar -xJf $ARMTOOL_PACK.tar.xz -C /opt
     rm -f $ARMTOOL_PACK.tar.xz
 
-	mv /opt/$ARMTOOL_PACK /opt/$ARMTOOL_NAME
+    mv /opt/$ARMTOOL_PACK /opt/$ARMTOOL_NAME
 
     /opt/$ARMTOOL_NAME/bin/arm-none-linux-gnueabihf-gcc -v
     pr_info "cross compiler installed to \"/opt/$ARMTOOL_NAME\" successfully"

--
Gitblit v1.9.1