#!/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 #TFTP server path mkdir -p /tftp && chmod 777 /tftp #crosstool will installed to this path chmod 777 /opt/ } function install_systools() { jq --version > /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 lib32ncurses-dev libssl-dev autoconf-archive bison \ kpartx jq binfmt-support qemu qemu-user-static debootstrap debian-archive-keyring " 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