From c6ad726c839d1b8486daa392fde9347b14f89f8b Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Fri, 12 Nov 2021 22:53:08 +0800
Subject: [PATCH] add buildroot build shell script in tools/lintools/buildroot
---
tools/lintools/buildroot/buildroot.sh | 129 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 129 insertions(+), 0 deletions(-)
diff --git a/tools/lintools/buildroot/buildroot.sh b/tools/lintools/buildroot/buildroot.sh
new file mode 100755
index 0000000..79bd705
--- /dev/null
+++ b/tools/lintools/buildroot/buildroot.sh
@@ -0,0 +1,129 @@
+#!/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
+
+JOBS=`cat /proc/cpuinfo | grep processor | wc -l`
+
+set -u
+set -e
+
+if [ `id -u` == 0 ] ; then
+ echo "ERROR: This shell script shouldn't be excuted by root!"
+ 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}/dl
+}
+
+function do_patch()
+{
+ msg_banner "Patch for ${BR_VER} "
+
+ cd $BR_VER
+
+ cp dl/buildroot/$BR_CONF .config
+ 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`
+ 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 " Switch work space to \"$WORK_SPACE\" "
+ mkdir -p $WORK_SPACE
+ cd $WORK_SPACE
+}
+
+do_prepare
+
+do_fetch
+
+do_patch
+
+do_build
+
+do_install
+
--
Gitblit v1.9.1