xref: /openwifi/user_space/wgd.sh (revision 7e3e6749ba63e81244c3172a4484f0094bf6a722)
12ee67178SXianjun Jiao#!/bin/bash
22ee67178SXianjun Jiao
3e07d2876SJiao Xianjun# Author: Xianjun Jiao
4e07d2876SJiao Xianjun# SPDX-FileCopyrightText: 2019 UGent
5a6085186SLina Ceballos# SPDX-License-Identifier: AGPL-3.0-or-later
6a6085186SLina Ceballos
72ee67178SXianjun JiaocheckModule () {
82ee67178SXianjun Jiao  MODULE="$1"
92ee67178SXianjun Jiao  if lsmod | grep "$MODULE" &> /dev/null ; then
102ee67178SXianjun Jiao    echo "$MODULE is loaded!"
112ee67178SXianjun Jiao    return 0
122ee67178SXianjun Jiao  else
132ee67178SXianjun Jiao    echo "$MODULE is not loaded!"
142ee67178SXianjun Jiao    return 1
152ee67178SXianjun Jiao  fi
162ee67178SXianjun Jiao}
172ee67178SXianjun Jiao
182ee67178SXianjun Jiaonum_arg=$#
192ee67178SXianjun Jiaoecho "num_arg " $num_arg
202ee67178SXianjun Jiao
212ee67178SXianjun Jiaofor input_var in "$@"
222ee67178SXianjun Jiaodo
232ee67178SXianjun Jiao    last_input=$input_var
242ee67178SXianjun Jiao#    echo $last_input
252ee67178SXianjun Jiaodone
262ee67178SXianjun Jiao
272ee67178SXianjun Jiaoif [ -z $last_input ]
282ee67178SXianjun Jiaothen
292ee67178SXianjun Jiao	last_input="xxxxxxxxx"
302ee67178SXianjun Jiao  test_mode=0
312ee67178SXianjun Jiaoelse
322ee67178SXianjun Jiao  if [ $1 -eq 1 ]
332ee67178SXianjun Jiao  then
342ee67178SXianjun Jiao    test_mode=1
352ee67178SXianjun Jiao  else
362ee67178SXianjun Jiao    test_mode=0
372ee67178SXianjun Jiao  fi
382ee67178SXianjun Jiaofi
392ee67178SXianjun Jiaoecho last_input $last_input
402ee67178SXianjun Jiaoecho test_mode $test_mode
41*7e3e6749Sweiliudepmod
422ee67178SXianjun Jiaomodprobe mac80211
43*7e3e6749Sweiliulsmod
442ee67178SXianjun Jiao# dmesg -c
452ee67178SXianjun Jiao
462ee67178SXianjun JiaoPROG=sdr
472ee67178SXianjun Jiaormmod $PROG
482ee67178SXianjun Jiao
49*7e3e6749Sweiliu
50*7e3e6749Sweiliu# mv ad9361 driver to local folder, to prevent booting issue
51*7e3e6749Sweiliuif [ -f /lib/modules/$(uname -r)/ad9361_drv.ko ]; then
52*7e3e6749Sweiliu   mv /lib/modules/$(uname -r)/ad9361_drv.ko .
53*7e3e6749Sweiliufi
54*7e3e6749SweiliuSUBMODULE=ad9361_drv
55*7e3e6749Sweiliuif [ $last_input == "remote" ]
56*7e3e6749Sweiliu  then
57*7e3e6749Sweiliu    rm $SUBMODULE.ko
58*7e3e6749Sweiliu    sync
59*7e3e6749Sweiliu    wget ftp://192.168.10.1/driver/ad9361/$SUBMODULE.ko
60*7e3e6749Sweiliu    sync
61*7e3e6749Sweiliufi
62*7e3e6749Sweiliurmmod $SUBMODULE
63*7e3e6749Sweiliuinsmod $SUBMODULE.ko
64*7e3e6749Sweiliu
65*7e3e6749Sweiliuecho check $SUBMODULE module is loaded or not
66*7e3e6749SweiliucheckModule $SUBMODULE
67*7e3e6749Sweiliuif [ $? -eq 1 ]
68*7e3e6749Sweiliuthen
69*7e3e6749Sweiliu  return
70*7e3e6749Sweiliufi
71*7e3e6749Sweiliusleep 1
72*7e3e6749Sweiliulsmod
73*7e3e6749Sweiliu
74*7e3e6749Sweiliu# mv xilinx dma driver to local folder, to prevent booting issue
75*7e3e6749Sweiliuif [ -f /lib/modules/$(uname -r)/xilinx_dma.ko ]; then
76*7e3e6749Sweiliu   mv /lib/modules/$(uname -r)/xilinx_dma.ko .
77*7e3e6749Sweiliufi
78*7e3e6749SweiliuSUBMODULE=xilinx_dma
79*7e3e6749Sweiliuif [ $last_input == "remote" ]
80*7e3e6749Sweiliu  then
81*7e3e6749Sweiliu    rm $SUBMODULE.ko
82*7e3e6749Sweiliu    sync
83*7e3e6749Sweiliu    wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko
84*7e3e6749Sweiliu    sync
85*7e3e6749Sweiliufi
86*7e3e6749Sweiliurmmod $SUBMODULE
87*7e3e6749Sweiliuinsmod $SUBMODULE.ko
88*7e3e6749Sweiliu
89*7e3e6749Sweiliu#sleep 1
90*7e3e6749Sweiliu
91*7e3e6749Sweiliuecho check $SUBMODULE module is loaded or not
92*7e3e6749SweiliucheckModule $SUBMODULE
93*7e3e6749Sweiliuif [ $? -eq 1 ]
94*7e3e6749Sweiliuthen
95*7e3e6749Sweiliu  return
96*7e3e6749Sweiliufi
97*7e3e6749Sweiliusleep 1
98*7e3e6749Sweiliulsmod
99*7e3e6749Sweiliu
1002ee67178SXianjun Jiao# before drive ad9361, let's bring up duc and make sure dac is connected to ad9361 dma
1012ee67178SXianjun JiaoSUBMODULE=tx_intf
1022ee67178SXianjun Jiaoif [ $last_input == "remote" ]
1032ee67178SXianjun Jiao  then
1042ee67178SXianjun Jiao    rm $SUBMODULE.ko
1052ee67178SXianjun Jiao    sync
1062ee67178SXianjun Jiao    wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko
1072ee67178SXianjun Jiao    sync
1082ee67178SXianjun Jiaofi
1092ee67178SXianjun Jiaormmod $SUBMODULE
1102ee67178SXianjun Jiaoinsmod $SUBMODULE.ko
1112ee67178SXianjun Jiao
1122ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not
1132ee67178SXianjun JiaocheckModule $SUBMODULE
1142ee67178SXianjun Jiaoif [ $? -eq 1 ]
1152ee67178SXianjun Jiaothen
1162ee67178SXianjun Jiao  return
1172ee67178SXianjun Jiaofi
1182ee67178SXianjun Jiaosleep 0.5
1192ee67178SXianjun Jiao
12056fcab20SXianjun Jiao# SUBMODULE=ad9361_drv
12156fcab20SXianjun Jiao# if [ $last_input == "remote" ]
12256fcab20SXianjun Jiao#   then
12356fcab20SXianjun Jiao#     rm $SUBMODULE.ko
12456fcab20SXianjun Jiao#     sync
12556fcab20SXianjun Jiao#     wget ftp://192.168.10.1/driver/ad9361/$SUBMODULE.ko
12656fcab20SXianjun Jiao#     sync
12756fcab20SXianjun Jiao# fi
12856fcab20SXianjun Jiao# rmmod $SUBMODULE
12956fcab20SXianjun Jiao# insmod $SUBMODULE.ko
1302ee67178SXianjun Jiao
13156fcab20SXianjun Jiao# echo check $SUBMODULE module is loaded or not
13256fcab20SXianjun Jiao# checkModule $SUBMODULE
13356fcab20SXianjun Jiao# if [ $? -eq 1 ]
13456fcab20SXianjun Jiao# then
13556fcab20SXianjun Jiao#   return
13656fcab20SXianjun Jiao# fi
13756fcab20SXianjun Jiao# sleep 1
1382ee67178SXianjun Jiao
139b73660adSXianjun Jiaoecho "set RF frontend"
140795157abSXianjun Jiao# if [ $last_input == "remote" ]
141795157abSXianjun Jiao#   then
142795157abSXianjun Jiao#     rm rf_init.sh
143795157abSXianjun Jiao#     sync
144795157abSXianjun Jiao#     wget ftp://192.168.10.1/user_space/rf_init.sh
145795157abSXianjun Jiao#     sync
146795157abSXianjun Jiao#     chmod +x rf_init.sh
147795157abSXianjun Jiao#     sync
148795157abSXianjun Jiao# fi
1492ee67178SXianjun Jiao./rf_init.sh
1502ee67178SXianjun Jiao
1512ee67178SXianjun Jiao#sleep 1
1522ee67178SXianjun Jiao
1532ee67178SXianjun JiaoSUBMODULE=rx_intf
1542ee67178SXianjun Jiaoif [ $last_input == "remote" ]
1552ee67178SXianjun Jiao  then
1562ee67178SXianjun Jiao    rm $SUBMODULE.ko
1572ee67178SXianjun Jiao    sync
1582ee67178SXianjun Jiao    wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko
1592ee67178SXianjun Jiao    sync
1602ee67178SXianjun Jiaofi
1612ee67178SXianjun Jiaormmod $SUBMODULE
1622ee67178SXianjun Jiaoinsmod $SUBMODULE.ko
1632ee67178SXianjun Jiao
1642ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not
1652ee67178SXianjun JiaocheckModule $SUBMODULE
1662ee67178SXianjun Jiaoif [ $? -eq 1 ]
1672ee67178SXianjun Jiaothen
1682ee67178SXianjun Jiao  return
1692ee67178SXianjun Jiaofi
1702ee67178SXianjun Jiao
1712ee67178SXianjun JiaoSUBMODULE=openofdm_tx
1722ee67178SXianjun Jiaoif [ $last_input == "remote" ]
1732ee67178SXianjun Jiao  then
1742ee67178SXianjun Jiao    rm $SUBMODULE.ko
1752ee67178SXianjun Jiao    sync
1762ee67178SXianjun Jiao    wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko
1772ee67178SXianjun Jiao    sync
1782ee67178SXianjun Jiaofi
1792ee67178SXianjun Jiaormmod $SUBMODULE
1802ee67178SXianjun Jiaoinsmod $SUBMODULE.ko
1812ee67178SXianjun Jiao
1822ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not
1832ee67178SXianjun JiaocheckModule $SUBMODULE
1842ee67178SXianjun Jiaoif [ $? -eq 1 ]
1852ee67178SXianjun Jiaothen
1862ee67178SXianjun Jiao  return
1872ee67178SXianjun Jiaofi
1882ee67178SXianjun Jiao
1892ee67178SXianjun JiaoSUBMODULE=openofdm_rx
1902ee67178SXianjun Jiaoif [ $last_input == "remote" ]
1912ee67178SXianjun Jiao  then
1922ee67178SXianjun Jiao    rm $SUBMODULE.ko
1932ee67178SXianjun Jiao    sync
1942ee67178SXianjun Jiao    wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko
1952ee67178SXianjun Jiao    sync
1962ee67178SXianjun Jiaofi
1972ee67178SXianjun Jiaormmod $SUBMODULE
1982ee67178SXianjun Jiaoinsmod $SUBMODULE.ko
1992ee67178SXianjun Jiao
2002ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not
2012ee67178SXianjun JiaocheckModule $SUBMODULE
2022ee67178SXianjun Jiaoif [ $? -eq 1 ]
2032ee67178SXianjun Jiaothen
2042ee67178SXianjun Jiao  return
2052ee67178SXianjun Jiaofi
2062ee67178SXianjun Jiao
2072ee67178SXianjun JiaoSUBMODULE=xpu
2082ee67178SXianjun Jiaoif [ $last_input == "remote" ]
2092ee67178SXianjun Jiao  then
2102ee67178SXianjun Jiao    rm $SUBMODULE.ko
2112ee67178SXianjun Jiao    sync
2122ee67178SXianjun Jiao    wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko
2132ee67178SXianjun Jiao    sync
2142ee67178SXianjun Jiaofi
2152ee67178SXianjun Jiaormmod $SUBMODULE
2162ee67178SXianjun Jiaoinsmod $SUBMODULE.ko
2172ee67178SXianjun Jiao
2182ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not
2192ee67178SXianjun JiaocheckModule $SUBMODULE
2202ee67178SXianjun Jiaoif [ $? -eq 1 ]
2212ee67178SXianjun Jiaothen
2222ee67178SXianjun Jiao  return
2232ee67178SXianjun Jiaofi
2242ee67178SXianjun Jiaosleep 0.5
2252ee67178SXianjun Jiao
2262ee67178SXianjun JiaoPROG=sdr
2272ee67178SXianjun Jiaoif [ $last_input == "remote" ]
2282ee67178SXianjun Jiao  then
2292ee67178SXianjun Jiao    rm $PROG.ko
2302ee67178SXianjun Jiao    sync
2312ee67178SXianjun Jiao    wget ftp://192.168.10.1/driver/$PROG.ko
2322ee67178SXianjun Jiao    sync
2332ee67178SXianjun Jiaofi
2342ee67178SXianjun Jiao
2352ee67178SXianjun Jiaormmod $PROG
2362ee67178SXianjun Jiaoecho insert $PROG.ko test_mode=$test_mode
2372ee67178SXianjun Jiaoinsmod $PROG.ko test_mode=$test_mode
2382ee67178SXianjun Jiao
2392ee67178SXianjun Jiaoecho check $PROG module is loaded or not
2402ee67178SXianjun JiaocheckModule $PROG
2412ee67178SXianjun Jiaoif [ $? -eq 1 ]
2422ee67178SXianjun Jiaothen
2432ee67178SXianjun Jiao  return
2442ee67178SXianjun Jiaofi
2452ee67178SXianjun Jiao
2462ee67178SXianjun Jiaoecho the end
2472ee67178SXianjun Jiaodmesg
2482ee67178SXianjun Jiao
2492ee67178SXianjun Jiao# dmesg -c
2502ee67178SXianjun Jiao# sleep 0.1
2512ee67178SXianjun Jiao# ifconfig sdr0 up
252