凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2021-11-12 c6ad726c839d1b8486daa392fde9347b14f89f8b
add buildroot build shell script in tools/lintools/buildroot
1 files added
129 ■■■■■ changed files
tools/lintools/buildroot/buildroot.sh 129 ●●●●● patch | view | raw | blame | history
tools/lintools/buildroot/buildroot.sh
New file
@@ -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