From d6c7a4dd30a28d52d393ce1c121c8f7b0e92a723 Mon Sep 17 00:00:00 2001 From: Navid Nikaein <navid.nikaein@eurecom.fr> Date: Fri, 12 Sep 2014 22:20:07 +0000 Subject: [PATCH] * update OAI build scripts git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5785 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- targets/Makefile.common | 22 +++---- targets/build_helper.bash | 80 ++++++++++++++++--------- targets/build_oai.bash | 122 ++++++++++++++++++++++++-------------- 3 files changed, 137 insertions(+), 87 deletions(-) diff --git a/targets/Makefile.common b/targets/Makefile.common index 84a42ef27b..8e49f6f977 100644 --- a/targets/Makefile.common +++ b/targets/Makefile.common @@ -1,6 +1,4 @@ - # This file gathers compilation directive shared between lte-softmodem and oaisim - COMMON_UTILS_DIR = $(OPENAIR_HOME)/common/utils UE_NAS_DIR = $(OPENAIR_HOME)/openair-cn/NAS S1AP_DIR = $(OPENAIR_HOME)/openair-cn/S1AP @@ -58,9 +56,8 @@ endif endif endif -ifdef JF CFLAGS += -DJUMBO_FRAME -endif +COMMON_CFLAGS += -DMAX_NUM_CCs=1 ifeq ($(ENABLE_RAL), 1) CFLAGS += -DENABLE_RAL @@ -70,11 +67,11 @@ ifeq ($(LIBCONFIG_LONG),1) CFLAGS += -DLIBCONFIG_LONG endif -COMMON_CFLAGS += -DMAX_NUM_CCs=1 -ifdef USE_MME +# add R9 +ifeq ($(USE_MME), R10) COMMON_CFLAGS += -DENABLE_USE_MME ENABLE_ITTI = 1 -ifdef LINK_PDCP_TO_GTPV1U +ifeq ($(LINK_PDCP_TO_GTPV1U), 1) COMMON_CFLAGS += -DLINK_PDCP_TO_GTPV1U # COMMON_CFLAGS += -I$(UDP_DIR) # COMMON_CFLAGS += -I$(GTPV1U_DIR) @@ -82,7 +79,7 @@ ifdef LINK_PDCP_TO_GTPV1U endif endif -ifdef ENABLE_ITTI +ifeq ($(ENABLE_ITTI),1) COMMON_CFLAGS += -DENABLE_ITTI COMMON_CFLAGS += -DUSER_MODE COMMON_CFLAGS += -I$(OPENAIR1_DIR) @@ -92,7 +89,7 @@ COMMON_CFLAGS += $(UTILS_incl) SHARED_DEPENDENCIES += $(ITTI_MESSAGES_H) endif -ifdef USE_MME +ifeq ($(USE_MME), R10) LIBS += $(UE_NAS_OBJ_DIR)/libuenas.a $(SECU_OBJ_DIR)/libsecu.a LIBS += $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a -lsctp -lcrypt LIBS += $(UDP_OBJ_DIR)/libudp.a $(GTPV1U_OBJ_DIR)/libgtpv1u.a @@ -141,7 +138,7 @@ S1AP_CFLAGS += -I$(TOP_DIR) S1AP_CFLAGS += $(UTIL_incl) export S1AP_CFLAGS -X2AP_CFLAGS = $(COMMON_CFLAGS) $(COMMON_MME_CFLAGS) +X2AP_CFLAGS = $(COMMON_CFLAGS) X2AP_CFLAGS += -DENB_MODE X2AP_CFLAGS += -I$(TOP_DIR) X2AP_CFLAGS += $(UTIL_incl) @@ -198,13 +195,10 @@ endif export COMMON_CFLAGS -ifdef ENABLE_ITTI +ifeq ($(ENABLE_ITTI),1) CFLAGS += $(COMMON_CFLAGS) $(COMMON_MME_CFLAGS) $(TARGETS_COMMON_incl) - OBJ += $(TARGETS_COMMON_OBJS) -endif -ifdef ENABLE_ITTI gccxml_available = $(shell if [ `gccxml --version | grep GCC-XML -c` = "0" ]; then echo "0" ; else echo "1" ; fi ) ifeq ($(gccxml_available), 0) $(error gccxml is missing, please install) diff --git a/targets/build_helper.bash b/targets/build_helper.bash index b6d498edd2..bbf5082619 100755 --- a/targets/build_helper.bash +++ b/targets/build_helper.bash @@ -41,6 +41,7 @@ E_NOTROOT=67 NUM_CPU=`cat /proc/cpuinfo | grep processor | wc -l` OAI_INSTALLED=1 PWD=`pwd` + check_for_root_rights() { if [[ $EUID -eq 0 ]]; then echo "Run as a sudoers" @@ -513,7 +514,9 @@ compile_ltesoftmodem() { if [ -f Makefile ]; then echo "Compiling for EXMIMO target (default)..." echo "Compiling directives: $SOFTMODEM_DIRECTIVES" - make cleanall > /dev/null 2>&1 + if [ $1 = 1 ]; then + make cleanall > /dev/null 2>&1 + fi make $SOFTMODEM_DIRECTIVES make -j $NUM_CPU $SOFTMODEM_DIRECTIVES if [ $? -ne 0 ]; then @@ -533,7 +536,9 @@ compile_oaisim() { cd $OPENAIR_TARGETS/SIMU/USER if [ -f Makefile ]; then echo "Compiling for oaisim target ($OAISIM_DIRECTIVES)" - make cleanall > /dev/null + if [ $1 = 1 ]; then + make cleanall > /dev/null + fi make $OAISIM_DIRECTIVES make -j $NUM_CPU $OAISIM_DIRECTIVES if [ $? -ne 0 ]; then @@ -553,7 +558,9 @@ compile_unisim() { cd $OPENAIR1_DIR/SIMULATION/LTE_PHY if [ -f Makefile ]; then echo "Compiling for UNISIM target ..." - make cleanall + if [ $1 = 1 ]; then + make cleanall + fi make -j $NUM_CPU all if [ $? -ne 0 ]; then echo_error "Build unisim failed, returning" @@ -658,10 +665,11 @@ check_for_mbmssim_executable() { # 1. check if the executable functions exist ############################################### -install_ltesoftmodem_() { - if [ $1 = "RTAI" ] ; then +install_ltesoftmodem() { + # RT + if [ $1 = "RTAI" ]; then if [ ! -f /tmp/init_rt_done.tmp ]; then - echo_warning "Step1: insert RTAI modules" + echo_info " 8.1 Insert RTAI modules" insmod /usr/realtime/modules/rtai_hal.ko > /dev/null 2>&1 insmod /usr/realtime/modules/rtai_sched.ko > /dev/null 2>&1 insmod /usr/realtime/modules/rtai_sem.ko > /dev/null 2>&1 @@ -670,39 +678,48 @@ install_ltesoftmodem_() { touch /tmp/init_rt_done.tmp chmod 666 /tmp/init_rt_done.tmp else - echo_warning "RTAI modules already inserted" + echo_warning " 8.1 RTAI modules already inserted" fi else if [ $1 = "RT_PREEMPT" ]; then - echo_warning "Step1: setup RT_PREMMPT" + echo_info " 8.1 setup RT_PREMMPT" fi fi - - echo_warning "Step2: creating RTAI fifos" - for i in `seq 0 64`; do - have_rtfX=`ls /dev/ |grep -c rtf$$i`; - if [ "$$have_rtfX" -eq 0 ] ;then - mknod -m 666 /dev/rtf$$i c 150 $$i; - fi; - done - echo_warning "Step3: build lte-softmodemdrivers" - cd $OPENAIR_TARGETS/ARCH/EXMIMO/DRIVER/eurecom && make clean && make || exit 1 - cd $OPENAIR_TARGETS/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT && make clean && make || exit 1 - if [ $2 = 0 ]; then - cd $OPENAIR2_DIR && make clean && make nasmesh_netlink.ko || exit 1 - cd $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL && make clean && make || exit 1 + #HW + if [ $2 = "EXMIMO" ]; then + echo_info " 8.2 [EXMIMO] creating RTAI fifos" + for i in `seq 0 64`; do + have_rtfX=`ls /dev/ |grep -c rtf$i`; + if [ "$have_rtfX" -eq 0 ] ; then + mknod -m 666 /dev/rtf$i c 150 $i; + fi; + done + echo_info " 8.3 [EXMIMO] Build lte-softmodemdrivers" + cd $OPENAIR_TARGETS/ARCH/EXMIMO/DRIVER/eurecom && make clean && make # || exit 1 + cd $OPENAIR_TARGETS/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT && make clean && make # || exit 1 + + echo_info " 8.4 [EXMIMO] Setup RF card" + cd $OPENAIR_TARGETS/RT/USER + . ./init_exmimo2.sh + else + if [ $2 = "USRP" ]; then + echo_info " 8.2 [USRP] " + fi + fi - echo_warning "Step4: setup RF card" - cd $OPENAIR_TARGETS/RT/USER - bash ./init_exmimo2.sh + # ENB_S1 + if [ $3 = 0 ]; then + cd $OPENAIR2_DIR && make clean && make nasmesh_netlink.ko #|| exit 1 + cd $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL && make clean && make # || exit 1 + fi } install_oaisim() { if [ $1 = 0 ]; then - cd $OPENAIR2_DIR && make clean && make nasmesh_netlink.ko || exit 1 - cd $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL && make clean && make || exit 1 + cd $OPENAIR2_DIR && make clean && make nasmesh_netlink.ko #|| exit 1 + cd $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL && make clean && make # || exit 1 fi } @@ -782,6 +799,15 @@ echo_success() { done cecho "$my_string" $green } +echo_info() { + local my_string="" + until [ -z "$1" ] + do + my_string="$my_string$1" + shift + done + cecho "$my_string" $blue +} bash_exec() { output=$($1 2>&1) diff --git a/targets/build_oai.bash b/targets/build_oai.bash index 67b5dfa9cd..757465809a 100755 --- a/targets/build_oai.bash +++ b/targets/build_oai.bash @@ -43,7 +43,7 @@ THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) ##################### # create a bin dir ##################### -echo_warning "1. Creating the bin dir..." +echo_info "1. Creating the bin dir ..." rm -rf bin mkdir -m 777 -p bin @@ -54,28 +54,18 @@ touch bin/${oai_build_date} ################################ # cleanup first ################################ -echo_warning "2. Cleaning ..." +echo_info "2. Cleaning ..." -output=$($SUDO kill -9 `ps -ef | grep oaisim | awk '{print $2}'` ) +$SUDO kill -9 `ps -ef | grep oaisim | awk '{print $2}'` $SUDO kill -9 `ps -ef | grep lte-softmodem | awk '{print $2}'` $SUDO kill -9 `ps -ef | grep dlsim | awk '{print $2}'` $SUDO kill -9 `ps -ef | grep ulsim | awk '{print $2}'` -#if [ $# -eq 0 ]; then - -if [ -z "$1" ]; then - echo "Build OAI" -else - if [ $1 = 0 ]; then - echo "Check the installation, and build OAI" - rm -rf ./.lock_oaibuild - fi -fi ####################################### -# PARAMETERS +# process PARAMETERS ###################################### -echo_warning "3. Setup the parameters" +echo_info "3. Process the parameters" HW="EXMIMO" # EXMIMO, USRP, NONE TARGET="ALL" # ALL, SOFTMODEM, OAISIM, UNISIM, NONE @@ -104,21 +94,55 @@ EMULATION_DEV_INTERFACE="eth0" EMULATION_MULTICAST_GROUP=1 EMULATION_DEV_ADDRESS=`ifconfig $EMULATION_DEV_INTERFACE | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'` -####################################### -# Check the PARAMETERS -###################################### - -echo_success "Parameters : HW=$HW, TARGET=$TARGET, ENB_S1=$ENB_S1, REL=$REL, RT=$RT, DEBUG=$DEBUG" -echo_success "ENB_CONFIG_FILE: $ENB_CONFIG_FILE" +############## script params ##################### -echo "Parameters : HW=$HW, TARGET=$TARGET, ENB_S1=$ENB_S1, REL=$REL, RT=$RT, DEBUG=$DEBUG" >> bin/${oai_build_date} +if [ -f ./.lock_oaibuild ]; then + CLEAN=0 +else + CLEAN=1 +fi + +while [[ $# > 0 ]] +do + key="$1" + shift + case $key in + + c|-c|--clean) + rm -rf ./.lock_oaibuild + CLEAN=1 + ;; + t) + TEST=$1 + shift + ;; + + --default) + DEFAULT=1 + CLEAN=0 + shift + ;; + *) + # unknown option + ;; + esac +done + +echo_info "CLEAN=$CLEAN, TEST=$TEST" + +########## print the PARAMETERS############ + +echo_info "User-defined Parameters : HW=$HW, TARGET=$TARGET, ENB_S1=$ENB_S1, REL=$REL, RT=$RT, DEBUG=$DEBUG" +echo_info "ENB_CONFIG_FILE: $ENB_CONFIG_FILE" + +echo "User-defined Parameters : HW=$HW, TARGET=$TARGET, ENB_S1=$ENB_S1, REL=$REL, RT=$RT, DEBUG=$DEBUG" >> bin/${oai_build_date} echo "ENB_CONFIG_FILE: $ENB_CONFIG_FILE" >> bin/${oai_build_date} ############################################ # compilation directives ############################################ -echo_warning "4. building the compilation directives ..." +echo_info "4. building the compilation directives ..." SOFTMODEM_DIRECTIVES="ENB_S1=$ENB_S1 DEBUG=$DEBUG XFORMS=$XFORMS " OAISIM_DIRECTIVES="ENB_S1=$ENB_S1 DEBUG=$DEBUG XFORMS=$XFORMS " @@ -137,15 +161,21 @@ else OAISIM_DIRECTIVES="$OAISIM_DIRECTIVES Rel10=1 " fi if [ $RT = "RTAI" ]; then - if [ ! -f /usr/realtime/modules ]; then + if [ -f /usr/realtime/modules ]; then SOFTMODEM_DIRECTIVES="$SOFTMODEM_DIRECTIVES HARD_RT=1 " else - echo_success "RTAI doesn't seem to be installed" + echo_warning "RTAI doesn't seem to be installed" RT="RT_PREMPT" SOFTMODEM_DIRECTIVES="$SOFTMODEM_DIRECTIVES RTAI=0 " fi fi +if [ $TARGET != "ALL" ]; then + if [$TARGET != "SOFTMODEM" ]; then + $HW="NONE" + fi +fi + output=$(check_for_machine_type 2>&1) MACHINE_ARCH=$? if [ $MACHINE_ARCH -eq 64 ]; then @@ -153,10 +183,10 @@ if [ $MACHINE_ARCH -eq 64 ]; then OAISIM_DIRECTIVES="$OASIM_DIRECTIVES LIBCONFIG_LONG=1 " fi -echo_success "SOFTMODEM Compilation directive: $SOFTMODEM_DIRECTIVES" -echo_success "OAISIM Compilation directive: $OAISIM_DIRECTIVES" +echo_success "SOFTMODEM Compilation directives: $SOFTMODEM_DIRECTIVES" +echo_success "OAISIM Compilation directives: $OAISIM_DIRECTIVES" -echo "SOFTMODEM Compilation directive: $SOFTMODEM_DIRECTIVES" >> bin/${oai_build_date} +echo "SOFTMODEM Compilation directives: $SOFTMODEM_DIRECTIVES" >> bin/${oai_build_date} echo "OAISIM Compilation directive: $OAISIM_DIRECTIVES" >> bin/${oai_build_date} ############################################ @@ -164,7 +194,7 @@ echo "OAISIM Compilation directive: $OAISIM_DIRECTIVES" >> bin/${oai_build_d ############################################ -echo_warning "5. Checking the OAI PATHS... (TBD)" +echo_info "5. Checking the OAI PATHS ... (TBD)" cecho "OPENAIR_HOME = $OPENAIR_HOME" $green cecho "OPENAIR1_DIR = $OPENAIR1_DIR" $green cecho "OPENAIR2_DIR = $OPENAIR2_DIR" $green @@ -184,31 +214,31 @@ echo "OPENAIR_TARGETS = $OPENAIR_TARGETS" >> bin/${oai_build_date} # check the installation ############################################ -echo_warning "6. Checking the installation ..." +echo_info "6. Checking the installation ..." -output=$(check_install_oai_software >> $OPENAIR_TARGETS/bin/install_log.txt 2>&1 ) +output=$(check_install_oai_software >> bin/install_log.txt 2>&1 ) ############################################ # compile ############################################ -echo_warning "7. compiling and installing the OAI binaries..." +echo_info "7. compiling and installing the OAI binaries ..." softmodem_compiled=1 oaisim_compiled=1 unisim_compiled=1 if [ $TARGET = "ALL" ]; then - output=$(compile_ltesoftmodem >> $OPENAIR_TARGETS/bin/install_log.txt 2>&1 ) + output=$(compile_ltesoftmodem $CLEAN >> bin/install_log.txt 2>&1 ) softmodem_compiled=$? check_for_ltesoftmodem_executable - output=$(compile_oaisim >> $OPENAIR_TARGETS/bin/install_log.txt 2>&1 ) + output=$(compile_oaisim $CLEAN >> bin/install_log.txt 2>&1 ) oaisim_compiled=$? check_for_oaisim_executable - output=$(compile_unisim >> $OPENAIR_TARGETS/bin/install_log.txt 2>&1 ) + output=$(compile_unisim $CLEAN >> bin/install_log.txt 2>&1 ) unisim_compiled=$? check_for_dlsim_executable check_for_ulsim_executable @@ -221,17 +251,17 @@ if [ $TARGET = "ALL" ]; then else if [ $TARGET = "SOFTMODEM" ]; then - output=$(compile_ltesoftmodem >> $OPENAIR_TARGETS/bin/install_log.txt 2>&1 ) + output=$(compile_ltesoftmodem >> bin/install_log.txt 2>&1 ) softmodem_compiled=$? check_for_ltesoftmodem_executable fi if [ $TARGET = "OAISIM" ]; then - output=$(compile_oaisim >> $OPENAIR_TARGETS/bin/install_log.txt 2>&1 ) + output=$(compile_oaisim >> bin/install_log.txt 2>&1 ) oaisim_compiled=$? check_for_oaisim_executable fi if [ $TARGET = "UNISIM" ]; then - output=$(compile_unisim >> $OPENAIR_TARGETS/bin/install_log.txt 2>&1 ) + output=$(compile_unisim >> bin/install_log.txt 2>&1 ) unisim_compiled=$? check_for_dlsim_executable check_for_ulsim_executable @@ -248,20 +278,20 @@ fi # install ############################################ -echo_warning "8. Installing ..." +echo_info "8. Installing ..." if [ $softmodem_compiled = 0 ]; then - echo "target lte-softmodem built " + echo_success "target lte-softmodem built " echo "target lte-softmodem built " >> bin/${oai_build_date} - install_ltesoftmodem $RT $ENB_S1 + output=$(install_ltesoftmodem $RT $HW $ENB_S1 >> bin/install_log.txt 2>&1) fi if [ $oaisim_compiled = 0 ]; then - echo "target oaisim built " + echo_success "target oaisim built " echo "target oaisim built " >> bin/${oai_build_date} - install_oaisim $ENB_S1 + output=$(install_oaisim $ENB_S1 >> bin/install_log.txt 2>&1 ) fi if [ $unisim_compiled = 0 ]; then - echo "target unisim built " + echo_success "target unisim built " echo "target unisim built " >> bin/${oai_build_date} fi @@ -275,10 +305,10 @@ echo "build terminated, see logs is $OPENAIR_TARGETS/bin/install_log.txt" ############################################ if [ $OAI_TEST = 1 ]; then - echo_warning "9. Testing ..." + echo_info "9. Testing ..." python $OPENAIR_TARGETS/TEST/OAI/test01.py else - echo_warning "9. Bypassing the Tests ..." + echo_info "9. Bypassing the Tests ..." fi -- 2.26.2