凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2022-12-11 513fc5cf11639653243df722c5606c89286c0d52
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
#!/bin/bash
 
source ../scripts/setup_env.sh
 
PRJ_PATH=`pwd`
WIFI_SRC=rtl8188fu
 
drvpath=$(eval echo `jq -r ".CONFIG.DRVPATH" $JSON_CONF`)
 
KERVER=`echo $BSP_VER|awk -F"-" '{print $2}'`
 
function do_fetch()
{
    if [ -d ${WIFI_SRC} ] ; then
        pr_warn "$WIFI_SRC fetched already."
        return 0;
    fi
 
    do_fetch_json $JSON_CONF WIFI_SRC ${PRJ_PATH}
    rm -rf *.tar*
}
 
function build_wifi_driver()
{
    if [ ! -d ${WIFI_SRC} ]  ; then
        return ;
    fi
 
    if [ -s ${WIFI_SRC}/rtl8188fu.ko ] ; then
        pr_warn "Build for USB WiFi driver already."
        return ;
    fi
 
    pr_warn "Build for USB WiFi driver"
 
    cd ${WIFI_SRC}
 
    sed -i "s|^CROSS_COMPILE ?=.*|CROSS_COMPILE ?= ${CROSS_TOOL}|g" Makefile
    sed -i "s|^ARCH ?=.*|ARCH ?= arm|g" Makefile
    sed -i "s|^KVER.*|KVER := $KERVER|g" Makefile
    sed -i "s|^KSRC.*|KSRC := ../../kernel/linux-imx/|g" Makefile
    sed -i "s|^MODDESTDIR.*|MODDESTDIR := ${drvpath}/|g" Makefile
 
    sed -i "s|^#define CONFIG_DEBUG|//#define CONFIG_DEBUG|g" include/autoconf.h
 
    sed -i "/nolinked power/d" core/rtw_pwrctrl.c
    sed -i "/request firmware/d" hal/rtl8188f/rtl8188f_hal_init.c
 
    make -j ${JOBS}
    mkdir -p ${drvpath}/lib/firmware/rtlwifi/
    cp firmware/rtl8188fufw.bin ${drvpath}/lib/firmware/rtlwifi/
 
    cd ${PRJ_PATH}
}
 
function build_users_driver()
{
    if [ ! -d users ] ; then
        return ;
    fi
 
    pr_warn "Build for users driver"
 
    cd users
 
    sed -i "s|^CROSS_COMPILE ?=.*|CROSS_COMPILE ?= ${CROSS_TOOL}|g" Makefile
 
    make DRV_PATH=${drvpath}
 
    cd ${PRJ_PATH}
}
 
 
function do_build()
{
    build_users_driver
    build_wifi_driver
}
 
function do_clean()
{
    pr_warn "Clean drivers source code"
    rm -rf ${WIFI_SRC}
 
    cd users && make clean
}
 
 
function do_usage()
{
    echo ""
    echo "Usage:"
    echo "  $0 [-b] [-c] [-h]"
    echo "     -b: build $PRJ_NAME"
    echo "     -c: clean the source code"
    echo "     -h: show this help message"
    echo ""
    exit;
}
 
while getopts "bpch" OPTNAME
do
    case "${OPTNAME}" in
        "b")
            break;
            ;;
 
        "c")
            do_clean
            exit;
            ;;
 
        "h")
            do_usage
            exit;
            ;;
    esac
done
 
# Default do build action
do_fetch
do_build
 
exit;