凌云实验室IGKBoard开发板BSP开发相关文件
guowenxue
2023-07-29 54f44d108fb20fd38b59c093e6bf97ffae245087
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/bash
# This shell script used to system tools
 
# AArch32 for iMX6ULL and AArch64 for iMX8MP
AARCH=AArch32
LY_FTPURL=http://main.iot-yun.club:2211
 
# display in red
function pr_error() {
    echo -e "\033[40;31m --E-- $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
    pr_error "This shell script must be excuted as root privilege"
    exit;
fi
 
function install_systools()
{
    if command -v jq > /dev/null 2>&1 ; then
        pr_info "All system tools already installed, skip it"
        return 0;
    fi
 
    pr_info "start apt install system tools(commands)"
 
    systools="coreutils jq wget curl tree gawk sed unzip cpio bc lzop zstd rsync kmod kpartx \
        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 parted dosfstools \
        python3 python3-pip python3-pexpect python3-git python3-jinja2 \
        lib32z1 libssl-dev libncurses-dev libgl1-mesa-dev libglu1-mesa-dev libsdl1.2-dev "
 
    apt update > /dev/null 2>&1
    apt install -y $systools
}
 
 
function install_devtools()
{
    if command -v debootstrap > /dev/null 2>&1 ; then
        pr_info "All development tools already installed, skip it"
        return 0;
    fi
 
    pr_info "start apt install devlopment tools(commands)"
 
    devtools="u-boot-tools mtd-utils device-tree-compiler binfmt-support \
                qemu qemu-user-static debootstrap debian-archive-keyring "
 
    apt install -y $devtools
}
 
 
# 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
 
    # install AArch32/AArch64 cross compiler from ARM Developer:
 
    if [ $AARCH == "AArch64" ] ; then
        CortexA_PACK=gcc-arm-$ARMTOOL_VER-`uname -p`-aarch64-none-linux-gnu
        CortexA_NAME=gcc-aarch64-$ARMTOOL_VER
        CROSS_TOOL=aarch64-none-linux-gnu-
    else
        CortexA_PACK=gcc-arm-$ARMTOOL_VER-`uname -p`-arm-none-linux-gnueabihf
        CortexA_NAME=gcc-aarch32-$ARMTOOL_VER
        CROSS_TOOL=arm-none-linux-gnueabihf-
    fi
 
    CortexA_TAR=$CortexA_PACK.tar.xz
    CortexA_URL=https://developer.arm.com/-/media/Files/downloads/gnu-a/$ARMTOOL_VER/binrel/
 
    if [ -d /opt/$CortexA_NAME ]  ; then
        pr_info "$AARCH crosstool $CortexA_NAME installed already, skip it"
    else
        pr_info "start download $AARCH cross compiler from ARM Developer"
        if [ ! -s $CortexA_TAR ] ; then
            wget $CortexA_URL/$CortexA_TAR
        fi
 
        tar -xJf $CortexA_TAR -C /opt
        rm -f $CortexA_TAR
 
        mv /opt/$CortexA_PACK /opt/$CortexA_NAME
 
        /opt/$CortexA_NAME/bin/${CROSS_TOOL}gcc -v
        pr_info "$AARCH cross compiler installed to \"/opt/$CortexA_NAME\" successfully"
    fi
}
 
install_buildroot()
{
    BUILDROOT_VER=gcc-10.4-armhf-v2023.02
    BUILDROOT_TAR=buildroot-${BUILDROOT_VER}.tar.xz
    INST_PATH=/opt/buildroot/
 
    if [ -d $INST_PATH/$BUILDROOT_VER ] ;  then
        pr_info "Buildroot crosstool $BUILDROOT_VER installed already, skip it"
        return ;
    fi
 
    pr_info "start download buildroot cross compiler from LingYun IoT studio file server"
    if [ ! -f $BUILDROOT_TAR ] ; then
        wget $LY_FTPURL/imx/igkboard-6ull/tools/$BUILDROOT_TAR
    fi
 
    mkdir -p $INST_PATH
 
    tar -xJf $BUILDROOT_TAR -C $INST_PATH
    rm -f $BUILDROOT_TAR
 
    $INST_PATH/$BUILDROOT_VER/bin/arm-linux-gcc -v
 
    pr_info "Buildroot cross compiler installed to \"$INST_PATH/$BUILDROOT_VER/\" successfully"
}
 
echo ""
set -e
 
install_systools
 
install_devtools
 
install_crosstool
 
install_buildroot