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 294a12fa04SXianjun Jiao last_input="unset" 302ee67178SXianjun Jiao test_mode=0 312ee67178SXianjun Jiaoelse 322ee67178SXianjun Jiao if [ $1 -eq 1 ] 332ee67178SXianjun Jiao then 342ee67178SXianjun Jiao test_mode=1 354a12fa04SXianjun Jiao elif [ $1 -eq 2 ] 364a12fa04SXianjun Jiao then 374a12fa04SXianjun Jiao test_mode=2 384a12fa04SXianjun Jiao elif [ $1 -eq 3 ] 394a12fa04SXianjun Jiao then 404a12fa04SXianjun Jiao test_mode=3 414a12fa04SXianjun Jiao elif [ $1 -eq 4 ] 424a12fa04SXianjun Jiao then 434a12fa04SXianjun Jiao test_mode=4 444a12fa04SXianjun Jiao elif [ $1 -eq 5 ] 454a12fa04SXianjun Jiao then 464a12fa04SXianjun Jiao test_mode=5 474a12fa04SXianjun Jiao elif [ $1 -eq 6 ] 484a12fa04SXianjun Jiao then 494a12fa04SXianjun Jiao test_mode=6 504a12fa04SXianjun Jiao elif [ $1 -eq 7 ] 514a12fa04SXianjun Jiao then 524a12fa04SXianjun Jiao test_mode=7 532ee67178SXianjun Jiao else 542ee67178SXianjun Jiao test_mode=0 552ee67178SXianjun Jiao fi 562ee67178SXianjun Jiaofi 574a12fa04SXianjun Jiao 584a12fa04SXianjun Jiao#if ((($test_mode & 0x2) != 0)); then 594a12fa04SXianjun Jiao tx_offset_tuning_enable=0 604a12fa04SXianjun Jiao#else 614a12fa04SXianjun Jiao# tx_offset_tuning_enable=1 624a12fa04SXianjun Jiao#fi 634a12fa04SXianjun Jiao 642ee67178SXianjun Jiaoecho last_input $last_input 652ee67178SXianjun Jiaoecho test_mode $test_mode 664a12fa04SXianjun Jiaoecho tx_offset_tuning_enable $tx_offset_tuning_enable 674a12fa04SXianjun Jiao 684a12fa04SXianjun Jiaoservice network-manager stop 694a12fa04SXianjun Jiao 707e3e6749Sweiliudepmod 712ee67178SXianjun Jiaomodprobe mac80211 727e3e6749Sweiliulsmod 732ee67178SXianjun Jiao# dmesg -c 742ee67178SXianjun Jiao 752ee67178SXianjun JiaoPROG=sdr 762ee67178SXianjun Jiaormmod $PROG 772ee67178SXianjun Jiao 787e3e6749Sweiliu 797e3e6749Sweiliu# mv ad9361 driver to local folder, to prevent booting issue 807e3e6749Sweiliuif [ -f /lib/modules/$(uname -r)/ad9361_drv.ko ]; then 817e3e6749Sweiliu mv /lib/modules/$(uname -r)/ad9361_drv.ko . 827e3e6749Sweiliufi 837e3e6749SweiliuSUBMODULE=ad9361_drv 847e3e6749Sweiliurmmod $SUBMODULE 857e3e6749Sweiliuinsmod $SUBMODULE.ko 867e3e6749Sweiliu 877e3e6749Sweiliuecho check $SUBMODULE module is loaded or not 887e3e6749SweiliucheckModule $SUBMODULE 897e3e6749Sweiliuif [ $? -eq 1 ] 907e3e6749Sweiliuthen 917e3e6749Sweiliu return 927e3e6749Sweiliufi 937e3e6749Sweiliusleep 1 947e3e6749Sweiliulsmod 957e3e6749Sweiliu 967e3e6749Sweiliu# mv xilinx dma driver to local folder, to prevent booting issue 977e3e6749Sweiliuif [ -f /lib/modules/$(uname -r)/xilinx_dma.ko ]; then 987e3e6749Sweiliu mv /lib/modules/$(uname -r)/xilinx_dma.ko . 997e3e6749Sweiliufi 1007e3e6749SweiliuSUBMODULE=xilinx_dma 1017e3e6749Sweiliurmmod $SUBMODULE 1027e3e6749Sweiliuinsmod $SUBMODULE.ko 1037e3e6749Sweiliu 1047e3e6749Sweiliu#sleep 1 1057e3e6749Sweiliu 1067e3e6749Sweiliuecho check $SUBMODULE module is loaded or not 1077e3e6749SweiliucheckModule $SUBMODULE 1087e3e6749Sweiliuif [ $? -eq 1 ] 1097e3e6749Sweiliuthen 1107e3e6749Sweiliu return 1117e3e6749Sweiliufi 1127e3e6749Sweiliusleep 1 1137e3e6749Sweiliulsmod 1147e3e6749Sweiliu 1152ee67178SXianjun Jiao# before drive ad9361, let's bring up duc and make sure dac is connected to ad9361 dma 1162ee67178SXianjun JiaoSUBMODULE=tx_intf 1172ee67178SXianjun Jiaoif [ $last_input == "remote" ] 1182ee67178SXianjun Jiao then 1192ee67178SXianjun Jiao rm $SUBMODULE.ko 1202ee67178SXianjun Jiao sync 1212ee67178SXianjun Jiao wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko 1222ee67178SXianjun Jiao sync 1232ee67178SXianjun Jiaofi 1242ee67178SXianjun Jiaormmod $SUBMODULE 1252ee67178SXianjun Jiaoinsmod $SUBMODULE.ko 1262ee67178SXianjun Jiao 1272ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not 1282ee67178SXianjun JiaocheckModule $SUBMODULE 1292ee67178SXianjun Jiaoif [ $? -eq 1 ] 1302ee67178SXianjun Jiaothen 1312ee67178SXianjun Jiao return 1322ee67178SXianjun Jiaofi 1332ee67178SXianjun Jiaosleep 0.5 1342ee67178SXianjun Jiao 1352ee67178SXianjun Jiao 1362ee67178SXianjun Jiao 137b73660adSXianjun Jiaoecho "set RF frontend" 138795157abSXianjun Jiao# if [ $last_input == "remote" ] 139795157abSXianjun Jiao# then 140795157abSXianjun Jiao# rm rf_init.sh 141795157abSXianjun Jiao# sync 142795157abSXianjun Jiao# wget ftp://192.168.10.1/user_space/rf_init.sh 143795157abSXianjun Jiao# sync 144795157abSXianjun Jiao# chmod +x rf_init.sh 145795157abSXianjun Jiao# sync 146795157abSXianjun Jiao# fi 1474a12fa04SXianjun Jiao 1484a12fa04SXianjun Jiao# if [ $tx_offset_tuning_enable = "1" ] 1494a12fa04SXianjun Jiao# then 1504a12fa04SXianjun Jiao ./rf_init_11n.sh 1514a12fa04SXianjun Jiao# else 1524a12fa04SXianjun Jiao# ./rf_init.sh tx_offset_tuning_disable 1534a12fa04SXianjun Jiao# fi 1542ee67178SXianjun Jiao 1552ee67178SXianjun Jiao#sleep 1 1562ee67178SXianjun Jiao 1572ee67178SXianjun JiaoSUBMODULE=rx_intf 1582ee67178SXianjun Jiaoif [ $last_input == "remote" ] 1592ee67178SXianjun Jiao then 1602ee67178SXianjun Jiao rm $SUBMODULE.ko 1612ee67178SXianjun Jiao sync 1622ee67178SXianjun Jiao wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko 1632ee67178SXianjun Jiao sync 1642ee67178SXianjun Jiaofi 1652ee67178SXianjun Jiaormmod $SUBMODULE 1662ee67178SXianjun Jiaoinsmod $SUBMODULE.ko 1672ee67178SXianjun Jiao 1682ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not 1692ee67178SXianjun JiaocheckModule $SUBMODULE 1702ee67178SXianjun Jiaoif [ $? -eq 1 ] 1712ee67178SXianjun Jiaothen 1722ee67178SXianjun Jiao return 1732ee67178SXianjun Jiaofi 1742ee67178SXianjun Jiao 1752ee67178SXianjun JiaoSUBMODULE=openofdm_tx 1762ee67178SXianjun Jiaoif [ $last_input == "remote" ] 1772ee67178SXianjun Jiao then 1782ee67178SXianjun Jiao rm $SUBMODULE.ko 1792ee67178SXianjun Jiao sync 1802ee67178SXianjun Jiao wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko 1812ee67178SXianjun Jiao sync 1822ee67178SXianjun Jiaofi 1832ee67178SXianjun Jiaormmod $SUBMODULE 1842ee67178SXianjun Jiaoinsmod $SUBMODULE.ko 1852ee67178SXianjun Jiao 1862ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not 1872ee67178SXianjun JiaocheckModule $SUBMODULE 1882ee67178SXianjun Jiaoif [ $? -eq 1 ] 1892ee67178SXianjun Jiaothen 1902ee67178SXianjun Jiao return 1912ee67178SXianjun Jiaofi 1922ee67178SXianjun Jiao 1932ee67178SXianjun JiaoSUBMODULE=openofdm_rx 1942ee67178SXianjun Jiaoif [ $last_input == "remote" ] 1952ee67178SXianjun Jiao then 1962ee67178SXianjun Jiao rm $SUBMODULE.ko 1972ee67178SXianjun Jiao sync 1982ee67178SXianjun Jiao wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko 1992ee67178SXianjun Jiao sync 2002ee67178SXianjun Jiaofi 2012ee67178SXianjun Jiaormmod $SUBMODULE 2022ee67178SXianjun Jiaoinsmod $SUBMODULE.ko 2032ee67178SXianjun Jiao 2042ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not 2052ee67178SXianjun JiaocheckModule $SUBMODULE 2062ee67178SXianjun Jiaoif [ $? -eq 1 ] 2072ee67178SXianjun Jiaothen 2082ee67178SXianjun Jiao return 2092ee67178SXianjun Jiaofi 2102ee67178SXianjun Jiao 2112ee67178SXianjun JiaoSUBMODULE=xpu 2122ee67178SXianjun Jiaoif [ $last_input == "remote" ] 2132ee67178SXianjun Jiao then 2142ee67178SXianjun Jiao rm $SUBMODULE.ko 2152ee67178SXianjun Jiao sync 2162ee67178SXianjun Jiao wget ftp://192.168.10.1/driver/$SUBMODULE/$SUBMODULE.ko 2172ee67178SXianjun Jiao sync 2182ee67178SXianjun Jiaofi 2192ee67178SXianjun Jiaormmod $SUBMODULE 2202ee67178SXianjun Jiaoinsmod $SUBMODULE.ko 2212ee67178SXianjun Jiao 2222ee67178SXianjun Jiaoecho check $SUBMODULE module is loaded or not 2232ee67178SXianjun JiaocheckModule $SUBMODULE 2242ee67178SXianjun Jiaoif [ $? -eq 1 ] 2252ee67178SXianjun Jiaothen 2262ee67178SXianjun Jiao return 2272ee67178SXianjun Jiaofi 2282ee67178SXianjun Jiaosleep 0.5 2292ee67178SXianjun Jiao 2302ee67178SXianjun JiaoPROG=sdr 2312ee67178SXianjun Jiaoif [ $last_input == "remote" ] 2322ee67178SXianjun Jiao then 2332ee67178SXianjun Jiao rm $PROG.ko 2342ee67178SXianjun Jiao sync 2352ee67178SXianjun Jiao wget ftp://192.168.10.1/driver/$PROG.ko 2362ee67178SXianjun Jiao sync 2372ee67178SXianjun Jiaofi 2382ee67178SXianjun Jiao 2392ee67178SXianjun Jiaormmod $PROG 2402ee67178SXianjun Jiaoecho insert $PROG.ko test_mode=$test_mode 2412ee67178SXianjun Jiaoinsmod $PROG.ko test_mode=$test_mode 2422ee67178SXianjun Jiao 2432ee67178SXianjun Jiaoecho check $PROG module is loaded or not 2442ee67178SXianjun JiaocheckModule $PROG 2452ee67178SXianjun Jiaoif [ $? -eq 1 ] 2462ee67178SXianjun Jiaothen 2472ee67178SXianjun Jiao return 2482ee67178SXianjun Jiaofi 2492ee67178SXianjun Jiao 250*8a2eaff3Sthavingaif ps -p $(</tmp/check_calib_inf.pid) > /dev/null 251*8a2eaff3Sthavingathen 252*8a2eaff3Sthavinga kill $(</tmp/check_calib_inf.pid) 253*8a2eaff3Sthavingafi 254*8a2eaff3Sthavinga./check_calib_inf.sh 255*8a2eaff3Sthavinga 2562ee67178SXianjun Jiaoecho the end 2572ee67178SXianjun Jiaodmesg 2582ee67178SXianjun Jiao 2592ee67178SXianjun Jiao# dmesg -c 2602ee67178SXianjun Jiao# sleep 0.1 2612ee67178SXianjun Jiao# ifconfig sdr0 up 262