diff --git a/cmake_targets/tools/run_enb_s1_usrp b/cmake_targets/tools/run_enb_s1_usrp new file mode 100755 index 0000000000..cf6865ea6e --- /dev/null +++ b/cmake_targets/tools/run_enb_s1_usrp @@ -0,0 +1,174 @@ +#!/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 . +# +# 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_usrp +# brief run script for eNB USRP. +# 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_usrp -c config_file [OPTION]..." + echo_error "Run the eNB executable, hardware target is USRP." + 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_usrp_itti.log" + shift 1; + else + shift 2; + fi + echo "setting ITTI dump file to: $ITTI_DUMP_FILE" + exe_arguments="$exe_arguments -K $ITTI_DUMP_FILE" + ;; + -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 + + + set_openair_env + cecho "OPENAIR_DIR = $OPENAIR_DIR" $green + + + if [ ! -e $OPENAIR_DIR/targets/bin/lte-softmodem ]; then + echo_fatal "Cannot find $OPENAIR_DIR/targets/bin/lte-softmodem executable" + fi + + + if [ $run_gdb -eq 0 ]; then + exec $OPENAIR_DIR/targets/bin/lte-softmodem `echo $exe_arguments` 2>&1 > /tmp/lte_softmodem.stdout.txt + else + touch ~/.gdb_lte_softmodem + chmod 777 ~/.gdb_lte_softmodem + echo "file $OPENAIR_DIR/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 "$@" +