SAMA5D4 Xplained Ultra Board BSP
guowenxue
2019-08-24 f8f05031c8278c8ad6dd18714c2a82d930dbfcbd
tools/setup_env.sh
@@ -1,49 +1,133 @@
#!/bin/bash
# This shell script used to setup ok335x build envrionment
#
# 1. U-boot, Linux kernel and root file system all compiled or generated by this crosstool.
# 2. This crsootool is built in i386, running on x86-64 depends on lib32
# 3. Install mkimage and mkfs.ubifs tools
if [ `id -u` != 0 ] ; then
LYFTP_PUB=ftp://master.iot-yun.club/pub/
function sudo_banner()
{
    if [ `id -u` != 0 ] ; then
       echo "WARRNING: Follow linux command maybe need input sudo passwd here:"
       echo ""
    fi
}
function msg_banner()
{
    echo ""
    echo "+-----------------------------------------------------------------------"
    echo "|  $1 "
    echo "+-----------------------------------------------------------------------"
    echo ""
    echo "ERROR: This shell script must be excuted as root or by sudo"
    echo ""
    exit 1;
fi
CROSSTOOL_PATH=/opt/crosstool
CROSSTOOL_NAME=cortex-a7
}
CROSSTOOL_VER=gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi
CROSSTOOL_TAR=${CROSSTOOL_VER}.tar.xz
CROSSTOOL_DLADDR=ftp://master.iot-yun.club/pub/$CROSSTOOL_TAR
function prepare_instpath()
{
    if [ -w /apps -a -w /opt ] ; then
        msg_banner "Install path [/apps and /opt] already setup, skip it"
        return ;
    fi
echo "apt-get update ..."
apt-get update > /dev/null 2>&1
apt-get install -y lib32z1 lib32ncurses5
    msg_banner "/apps and /opt not writable, use chmod to give writable permissions"
mkimage -V > /dev/null 2>&1
if [ $? != 0 ] ; then
   apt-get install -y u-boot-tools
fi
    sudo_banner
mkfs.ubifs -V > /dev/null 2>&1
if [ $? != 0 ] ; then
   apt-get install -y mtd-utils
fi
    #QT build will installed to this path
    sudo mkdir -p /apps && sudo chmod 777 /apps
if [ ! -d ${CROSSTOOL_PATH}/${CROSSTOOL_NAME} ] ; then
   mkdir -p ${CROSSTOOL_PATH}
    #crosstool will installed to this path
    sudo chmod 777 /opt/
}
   if [ ! -f $CROSSTOOL_TAR ] ; then
       wget -c $CROSSTOOL_DLADDR
   fi
function install_systools()
{
    mkimage -V > /dev/null 2>&1
    if [ $? == 0 ] ;  then
        msg_banner "All development system tools already installed, skip it"
        return 0;
    fi
   tar -xJf ${CROSSTOOL_TAR} -C ${CROSSTOOL_PATH}
   mv ${CROSSTOOL_PATH}/${CROSSTOOL_VER}/  ${CROSSTOOL_PATH}/${CROSSTOOL_NAME}
fi
    msg_banner "start apt-get install system devlopment tools(commands)"
    systools="gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat \
        libsdl1.2-dev xterm sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 \
        help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf \
        automake groff curl lzop asciidoc lib32z1 lib32ncurses5"
    devtools="u-boot-tools mtd-utils device-tree-compiler"
# QT build will install to this path
mkdir -p /apps && chmod 777 /apps
    sudo_banner
    sudo apt-get update > /dev/null 2>&1
    sudo apt-get install -y $systools $devtools
}
function install_crosstool()
{
    CROSSTOOL_PATH=/opt/crosstool
    CROSSTOOL_NAME=cortex-a7
    CROSSTOOL_VER=gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi
    CROSSTOOL_TAR=${CROSSTOOL_VER}.tar.xz
    CROSSTOOL_DLADDR=${LYFTP_PUB}/$CROSSTOOL_TAR
    if [ -d ${CROSSTOOL_PATH}/${CROSSTOOL_NAME} ] ; then
        msg_banner "$CROSSTOOL_VER already installed to $CROSSTOOL_PATH/$CROSSTOOL_NAME"
        return 0;
    fi
    mkdir -p ${CROSSTOOL_PATH}
    if [ ! -f $CROSSTOOL_TAR ] ; then
        msg_banner "download $CROSSTOOL_VER now..."
        wget -c $CROSSTOOL_DLADDR
    fi
    msg_banner "install $CROSSTOOL_VER to $CROSSTOOL_PATH/$CROSSTOOL_NAME now..."
    tar -xJf ${CROSSTOOL_TAR} -C ${CROSSTOOL_PATH}
    mv ${CROSSTOOL_PATH}/${CROSSTOOL_VER}/  ${CROSSTOOL_PATH}/${CROSSTOOL_NAME}
}
function install_buildroot()
{
    BUILDROOT_PATH=/opt/buildroot
    BUILDROOT_NAME=cortex-a5
    BUILDROOT_VER=buildroot-2019.02-gcc7.4.0-cortexA5-x86_64_arm-linux-gnueabihf
    BUILDROOT_TAR=${BUILDROOT_VER}.tar.xz
    BUILDROOT_DLADDR=${LYFTP_PUB}/$BUILDROOT_TAR
    if [ -d ${BUILDROOT_PATH}/${BUILDROOT_NAME} ] ; then
        msg_banner "$BUILDROOT_VER already installed to $BUILDROOT_PATH/$BUILDROOT_NAME"
        return 0;
    fi
    mkdir -p ${BUILDROOT_PATH}
    if [ ! -f $BUILDROOT_TAR ] ; then
        msg_banner "download $BUILDROOT_VER now..."
        wget -c $BUILDROOT_DLADDR
    fi
    msg_banner "install $BUILDROOT_VER to $BUILDROOT_PATH/$BUILDROOT_NAME now..."
    tar -xJf ${BUILDROOT_TAR} -C ${BUILDROOT_PATH}  -C  ${BUILDROOT_PATH}
}
prepare_instpath
install_systools
install_buildroot
exit;