#!/bin/bash
|
# This shell script used to setup imx6ull build envrionment
|
#
|
|
LYFTP_PUB=http://weike-iot.com:2211/imx6ull/tools/lintools
|
|
if [ `id -u` != 0 ] ; then
|
echo ""
|
echo "ERROR: This shell script must be excuted as root privilege."
|
echo ""
|
exit 0;
|
fi
|
|
function msg_banner()
|
{
|
echo ""
|
echo "+-----------------------------------------------------------------------"
|
echo "| $1 "
|
echo "+-----------------------------------------------------------------------"
|
echo ""
|
}
|
|
function prepare_instpath()
|
{
|
if [ -w /apps -a -w /opt ] ; then
|
msg_banner "Install path [/apps and /opt] already setup, skip it"
|
return ;
|
fi
|
|
msg_banner "/apps and /opt not writable, use chmod to give writable permissions"
|
|
#QT build will installed to this path
|
mkdir -p /apps && chmod 777 /apps
|
|
#crosstool will installed to this path
|
chmod 777 /opt/
|
}
|
|
function install_systools()
|
{
|
curl -V > /dev/null 2>&1
|
if [ $? == 0 ] ; then
|
msg_banner "All system tools already installed, skip it"
|
return 0;
|
fi
|
|
msg_banner "start apt install system tools(commands)"
|
|
systools="gawk wget git diffstat unzip texinfo build-essential chrpath socat libncurses-dev flex \
|
libsdl1.2-dev xterm sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 tree \
|
help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf \
|
automake groff curl lzop asciidoc lib32z1 lib32ncurses5-dev libssl-dev autoconf-archive bison \
|
kpartx "
|
|
|
apt update > /dev/null 2>&1
|
apt install -y $systools
|
}
|
|
function install_crosstool()
|
{
|
arm-linux-gnueabihf-gcc -v > /dev/null 2>&1
|
if [ $? == 0 ] ; then
|
msg_banner "All development tools already installed, skip it"
|
return 0;
|
fi
|
|
msg_banner "start apt install devlopment tools(commands)"
|
|
devtools="u-boot-tools mtd-utils device-tree-compiler gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
|
binfmt-support qemu qemu-user-static debootstrap debian-archive-keyring "
|
|
apt install -y $devtools
|
|
#sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc-9 10
|
}
|
|
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
|
|
if [ -d ${BUILDROOT_PATH}/${BUILDROOT_NAME} ] ; then
|
msg_banner "Buildroot 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}
|
|
$BUILDROOT_PATH/$BUILDROOT_NAME/bin/arm-linux-gcc -v
|
|
msg_banner "Cross compiler: $BUILDROOT_PATH/$BUILDROOT_NAME/bin/arm-linux-"
|
|
rm -f ${BUILDROOT_TAR}
|
}
|
|
|
prepare_instpath
|
|
install_systools
|
|
install_crosstool
|
|
install_buildroot
|