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