凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2022-06-15 0eff7d30dceeac074d55c47dff5b2448ef84f064
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/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 zstd"
 
 
    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