#!/bin/bash ################################################################################ # OpenAirInterface # Copyright(c) 1999 - 2014 Eurecom # # OpenAirInterface is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) anylater version. # # # OpenAirInterface is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with OpenAirInterface.The full GNU General Public License is # included in this distribution in the file called "COPYING". If not, # see <http://www.gnu.org/licenses/>. # # Contact Information # OpenAirInterface Admin: openair_admin@eurecom.fr # OpenAirInterface Tech : openair_tech@eurecom.fr # OpenAirInterface Dev : openair4g-devel@eurecom.fr # # Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE # ################################################################################ # file run_enb_s1_exmimo # brief run script for eNB EXMIMO. # author Lionel GAUTHIER # company Eurecom # email: lionel.gauthier@eurecom.fr ################################ # include helper functions ################################ THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) source $THIS_SCRIPT_PATH/build_helper function help() { echo_error " " echo_error "Usage: run_enb_s1_exmimo -c config_file [OPTION]..." echo_error "Run the eNB executable, hardware target is EXMIMO." echo_error " " echo_error "Mandatory arguments:" echo_error " -c, -C, --config-file eNB_config_file eNB config file, (see $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF)" echo_error " " echo_error "Options:" echo_error "Mandatory arguments to long options are mandatory for short options too." echo_error " -g, --gdb Run with GDB." echo_error " -h, --help Print this help." echo_error " -K, --itti-dump-file filename ITTI dump file containing all ITTI events occuring during EPC runtime.(can omit file name if last argument)" echo_error " -M, --target-dl-mcs mcs Downlink target MCS." echo_error " -V, --vcd Dump timings of processing in a GTKWave compliant file format." echo_error " -S, --enable-missed-slot Continue execution in case of missed slot." echo_error " -T, --target-ul-mcs mcs Uplink target MCS." echo_error " -x, --xforms Run XFORMS scope windows." } function main() { local -i run_gdb=0 local exe_arguments="" until [ -z "$1" ] do case "$1" in -c | -C | --config-file) CONFIG_FILE=$2 # may be relative path if [ -f $(dirname $(readlink -f $0))/$CONFIG_FILE ]; then CONFIG_FILE=$(dirname $(readlink -f $0))/$CONFIG_FILE echo "setting config file to: $CONFIG_FILE" CONFIG_FILE_ACCESS_OK=1 else # may be absolute path if [ -f $CONFIG_FILE ]; then echo "setting config file to: $CONFIG_FILE" else echo_fatal "config file $CONFIG_FILE not found" fi fi exe_arguments="$exe_arguments -O $CONFIG_FILE" shift 2; ;; -g | --gdb) run_gdb=1 echo "setting GDB flag to: $GDB" shift; ;; -h | --help) help shift; exit 0 ;; -K | --itti-dump-file) ITTI_DUMP_FILE=$2 # can omit file name if last arg on the line if [ "x$ITTI_DUMP_FILE" = "x" ]; then ITTI_DUMP_FILE="/tmp/enb_s1_exmimo_itti.log" fi echo "setting ITTI dump file to: $ITTI_DUMP_FILE" exe_arguments="$exe_arguments -K $ITTI_DUMP_FILE" shift 2; ;; -M | --target-dl-mcs) echo "setting target dl MCS to $2" exe_arguments="$exe_arguments -m $2" shift 2; ;; -V | --vcd) "setting gtk-wave output" exe_arguments="$exe_arguments -V /tmp/oai_gtk_wave.vcd" shift ; ;; -S | --enable-missed-slot) echo "setting continue even if missed slot" exe_arguments="$exe_arguments -S" shift ; ;; -T | --target-ul-mcs) echo "setting target ul MCS to $2" exe_arguments="$exe_arguments -t $2" shift 2; ;; -x | --xforms) exe_arguments="$exe_arguments -d" echo "setting xforms to: $XFORMS" shift; ;; *) echo "Unknown option $1" help exit 0 ;; esac done check_for_root_rights set_openair_env cecho "OPENAIR_HOME = $OPENAIR_HOME" $green cecho "OPENAIR1_DIR = $OPENAIR1_DIR" $green cecho "OPENAIR2_DIR = $OPENAIR2_DIR" $green cecho "OPENAIR3_DIR = $OPENAIR3_DIR" $green cecho "OPENAIRCN_DIR = $OPENAIRCN_DIR" $green cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green if [ ! -e $OPENAIR_TARGETS/bin/lte-softmodem ]; then echo_fatal "Cannot find $OPENAIR_TARGETS/bin/lte-softmodem executable" fi if [ ! -e $OPENAIR_TARGETS/bin/updatefw ]; then echo_fatal "Cannot find $OPENAIR_TARGETS/bin/updatefw executable" fi if [ ! -e $OPENAIR_TARGETS/bin/openair_rf.ko ]; then echo_fatal "Cannot find $OPENAIR_TARGETS/bin/openair_rf.ko kernel module" fi for i in `seq 0 64`; do have_rtfX=`ls /dev/ |grep -c rtf$i`; if [ "$have_rtfX" -eq 0 ] ; then $SUDO mknod -m 666 /dev/rtf$i c 150 $i; fi; done $THIS_SCRIPT_PATH/init_exmimo2.sh if [ $run_gdb -eq 0 ]; then exec $OPENAIR_TARGETS/bin/lte-softmodem `echo $exe_arguments` 2>&1 > /tmp/gdb_lte_softmodem.stdout.txt else touch ~/.gdb_lte_softmodem chmod 777 ~/.gdb_lte_softmodem echo "file $OPENAIR_TARGETS/bin/lte-softmodem" > ~/.gdb_lte_softmodem echo "set args $exe_arguments" >> ~/.gdb_lte_softmodem echo "run" >> ~/.gdb_lte_softmodem cat ~/.gdb_lte_softmodem gdb -n -x ~/.gdb_lte_softmodem 2>&1 > /tmp/gdb_lte_softmodem.stdout.txt fi } main "$@"