From 7800e82e4b6b59a46e648c93f488636b0a1555fc Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Thu, 30 Mar 2023 10:57:37 +0800 Subject: [PATCH] Add lf-5.15.71-2.2.0 patch for u-boot and linux --- tools/setup_tools.sh | 114 ++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 72 insertions(+), 42 deletions(-) diff --git a/tools/setup_tools.sh b/tools/setup_tools.sh index 5e49ecd..02cb804 100755 --- a/tools/setup_tools.sh +++ b/tools/setup_tools.sh @@ -2,70 +2,68 @@ # This shell script used to setup imx6ull build envrionment # -LYFTP_PUB=http://weike-iot.com:2211/imx6ull/tools/lintools +LYFTP_PUB=http://wekei-iot.com:2211/imx/igkboard/tools/lintools + +# display in yellow +function pr_warn() { + echo -e "\033[40;33m --W-- $1 \033[0m\n" +} + +# display in green +function pr_info() { + echo -e "\033[40;32m --I-- $1 \033[0m\n" +} if [ `id -u` != 0 ] ; then - echo "" - echo "ERROR: This shell script must be excuted as root privilege." - echo "" - exit 0; + pr_warn "This shell script must be excuted as root privilege" + exit; 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" + pr_warn "Install path [/apps and /opt] already setup, skip it" return ; fi - msg_banner "/apps and /opt not writable, use chmod to give writable permissions" + pr_info "/apps and /opt not writable, use chmod to give writable permissions" - #QT build will installed to this path + # QT build will installed to this path mkdir -p /apps && chmod 777 /apps - #crosstool will installed to this path + # buildroot 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" + if command -v jq > /dev/null 2>&1 ; then + pr_warn "All system tools already installed, skip it" return 0; fi - msg_banner "start apt install system tools(commands)" + pr_warn "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 " - + systools="coreutils jq wget curl tree gawk sed unzip cpio lz4 lzop zstd rsync kmod kpartx tmux \ + desktop-file-utils iputils-ping xterm diffstat chrpath asciidoc docbook-utils help2man \ + build-essential gcc g++ make cmake automake groff socat flex texinfo bison texi2html \ + git cvs subversion mercurial autoconf autoconf-archive \ + python2 python3 python3-pip python3-pexpect python3-git python3-jinja2 libsdl1.2-dev \ + lib32z1 libssl-dev libncurses-dev lib32ncurses-dev libgl1-mesa-dev libglu1-mesa-dev \ + " apt update > /dev/null 2>&1 apt install -y $systools } -function install_crosstool() +function install_devtools() { - arm-linux-gnueabihf-gcc -v > /dev/null 2>&1 - if [ $? == 0 ] ; then - msg_banner "All development tools already installed, skip it" + if command -v arm-linux-gnueabihf-gcc > /dev/null 2>&1 ; then + pr_warn "All development tools already installed, skip it" return 0; fi - msg_banner "start apt install devlopment tools(commands)" + pr_info "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 " @@ -85,33 +83,65 @@ BUILDROOT_DLADDR=${LYFTP_PUB}/$BUILDROOT_TAR if [ -d ${BUILDROOT_PATH}/${BUILDROOT_NAME} ] ; then - msg_banner "Buildroot already installed to $BUILDROOT_PATH/$BUILDROOT_NAME" + pr_warn "Buildroot already installed to $BUILDROOT_PATH/$BUILDROOT_NAME" return 0; fi - mkdir -p ${BUILDROOT_PATH} + mkdir -p ${BUILDROOT_PATH} - if [ ! -f $BUILDROOT_TAR ] ; then - msg_banner "download $BUILDROOT_VER now..." - wget -c $BUILDROOT_DLADDR - fi + if [ ! -f $BUILDROOT_TAR ] ; then + pr_info "download $BUILDROOT_VER now..." + wget -c $BUILDROOT_DLADDR + fi - msg_banner "install $BUILDROOT_VER to $BUILDROOT_PATH/$BUILDROOT_NAME now..." + pr_info "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-" + pr_info "Cross compiler: $BUILDROOT_PATH/$BUILDROOT_NAME/bin/arm-linux-" rm -f ${BUILDROOT_TAR} } +# NXP document suggest cross compiler from ARM Developer: +# https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads +function install_crosstool() +{ + ARMTOOL_VER=10.3-2021.07 + ARMTOOL_NAME=gcc-arm-$ARMTOOL_VER + ARMTOOL_PACK=${ARMTOOL_NAME}-`uname -p`-arm-none-linux-gnueabihf + ARMTOOL_URL=https://developer.arm.com/-/media/Files/downloads/gnu-a/$ARMTOOL_VER/binrel/ + + if [ -d /opt/$ARMTOOL_NAME ] ; then + pr_info "$ARMTOOL_NAME crosstool already installed, skip it" + return 0; + fi + + pr_info "start download cross compiler from ARM Developer" + + if [ ! -s $ARMTOOL_PACK.tar.xz ] ; then + wget $ARMTOOL_URL/$ARMTOOL_PACK.tar.xz + fi + + tar -xJf $ARMTOOL_PACK.tar.xz -C /opt + rm -f $ARMTOOL_PACK.tar.xz + + mv /opt/$ARMTOOL_PACK /opt/$ARMTOOL_NAME + + /opt/$ARMTOOL_NAME/bin/arm-none-linux-gnueabihf-gcc -v + pr_info "cross compiler installed to \"/opt/$ARMTOOL_NAME\" successfully" +} + +echo "" prepare_instpath install_systools +install_devtools + install_crosstool -install_buildroot +#install_buildroot -- Gitblit v1.9.1