diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index 3af9035fe69bbab8d4cece0238bead64adcd1bac..9958a117d7a101231746c320729b3ac5f076d085 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -96,6 +96,8 @@ Options --install-system-files Install OpenArInterface required files in Linux system (will ask root password) +--noS1 + Compiles oaisim or lte-softmodem without S1 interface, using direct link to IP instead Usage (first build): oaisim (eNB + UE): ./build_oai -I -g --oaisim -x --install-system-files Eurecom EXMIMO + COTS UE : ./build_oai -I -g --eNB --EPC -x --install-system-files @@ -190,6 +192,10 @@ function main() { INSTALL_SYSTEM_FILES=1 echo_info "Will copy OpenAirInterface files in Linux directories" shift;; + --noS1) + NOS1=1 + echo_info "Will compile without S1 interface" + shift;; -h | --help) print_help exit 1;; @@ -264,43 +270,47 @@ function main() { echo_info "3. building the compilation directives ..." DIR=$OPENAIR_DIR/cmake_targets + if [ "$NOS1" = "1" ] ; then + lte_build_dir=lte_noS1_build_oai + lte_exec=lte-softmodem-nos1 + else + lte_build_dir=lte_build_oai + lte_exec=lte-softmodem + fi if [ "$eNB" = "1" -o "$UE" = "1" ] ; then + # LTE softmodem compilation - [ "$CLEAN" = "1" ] && rm -rf $DIR/lte_build_oai/build - mkdir -p $DIR/lte_build_oai/build - cmake_file=$DIR/lte_build_oai/CMakeLists.txt - echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file + [ "$CLEAN" = "1" ] && rm -rf $DIR/$lte_build_dir/build + mkdir -p $DIR/$lte_build_dir/build + cmake_file=$DIR/$lte_build_dir/CMakeLists.txt + echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file + if [ "$NOS1" = "1" ] ; then + cat $DIR/$lte_build_dir/CMakeLists.template >> $cmake_file + fi echo "set ( XFORMS $XFORMS )" >> $cmake_file echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file - echo 'set(PACKAGE_NAME "\"lte-softmodem\"")' >> $cmake_file + echo "set(PACKAGE_NAME \"${lte_exec}\")" >> $cmake_file echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file - cd $DIR/lte_build_oai/build - cmake .. - echo_info "Compiling LTE softmodem" - compilations \ - lte_build_oai lte-softmodem \ - lte-softmodem $dbin/lte-softmodem.$REL - - # LTE softmodem (no S1 interface) compilation - [ "$CLEAN" = "1" ] && rm -rf $DIR/lte_noS1_build_oai/build - mkdir -p $DIR/lte_noS1_build_oai/build - cd $DIR/lte_noS1_build_oai/build + cd $DIR/$lte_build_dir/build cmake .. - echo_info "Compiling LTE softmodem (w/o S1 interface)" - compilations \ - lte_noS1_build_oai lte-softmodem-nos1 \ - lte-softmodem-nos1 $dbin/lte-softmodem-nos1 + echo_info "Compiling $lte_exec" compilations \ - lte_noS1_build_oai nasmesh \ - CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko - compilations \ - lte_noS1_build_oai rb_tool \ - rb_tool $dbin/rb_tool - cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin + $lte_build_dir $lte_exec \ + $lte_exec $dbin/$lte_exec.$REL + + if [ "$NOS1" = "1" ] ; then + compilations \ + $lte_build_dir nasmesh \ + CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko + compilations \ + $lte_build_dir rb_tool \ + rb_tool $dbin/rb_tool + cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin + fi fi if [ "$UE" = 1 ] ; then @@ -375,102 +385,101 @@ function main() { if [ "$HW" = "EXMIMO" -a "$EPC" = "0" ] ; then echo_info "Compiling Express MIMO 2 board drivers" - mkdir -p $DIR/lte_noS1_build_oai/build - cd $DIR/lte_noS1_build_oai/build + mkdir -p $DIR/$lte_build_dir/build + cd $DIR/$lte_build_dir/build cmake .. compilations \ - lte_noS1_build_oai openair_rf \ + $lte_build_dir openair_rf \ CMakeFiles/openair_rf/openair_rf.ko $dbin/openair_rf.ko compilations \ - lte_noS1_build_oai updatefw \ + $lte_build_dir updatefw \ updatefw $dbin/updatefw - make -C $OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build oarf > $dlog/oarf.txt 2>&1 - cp $OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/*.oct $dbin - echo_success "oarf tools compiled" + make -C $OPENAIR_DIR/cmake_targets/$lte_build_dir/build oarf > $dlog/oarf.txt 2>&1 + cp $OPENAIR_DIR/cmake_targets/$lte_build_dir/build/*.oct $dbin + if [ -s $dbin/oarf_config_exmimo.oct ] ; then + echo_success "oarf tools compiled" + else + echo_error "oarf tools compilation failed" + fi cp $OPENAIR_DIR/cmake_targets/tools/init_exmimo2 $dbin fi if [ "$oaisim" = "1" ] ; then dconf=$OPENAIR_DIR/targets/bin + if [ "$NOS1" = "1" ] ; then + oaisim_build_dir=oaisim_noS1_build_oai + oaisim_exec=oaisim_nos1 + else + oaisim_build_dir=oaisim_build_oai + oaisim_exec=oaisim + fi - [ "$CLEAN" = "1" ] && rm -rf $DIR/at_commands/build - - echo_info "Compiling at_nas_ue" - mkdir -p $DIR/at_commands/build - cd $DIR/at_commands/build - cmake .. - compilations \ - at_commands at_nas_ue \ - at_nas_ue $dbin/at_nas_ue - - echo_info "Compiling oaisim" - cmake_file=$DIR/oaisim_build_oai/CMakeLists.txt - cp $DIR/oaisim_build_oai/CMakeLists.template $cmake_file + echo_info "Compiling $oaisim_exec ($oaisim_build_dir)" + cmake_file=$DIR/$oaisim_build_dir/CMakeLists.txt + cp $DIR/$oaisim_build_dir/CMakeLists.template $cmake_file echo "set ( XFORMS $XFORMS )" >> $cmake_file echo "set ( PRINT_STATS $PRINT_STATS )" >> $cmake_file echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file - [ "$CLEAN" = "1" ] && rm -rf $DIR/oaisim_build_oai/build - mkdir -p $DIR/oaisim_build_oai/build - cd $DIR/oaisim_build_oai/build - cmake .. - compilations \ - oaisim_build_oai oaisim \ - oaisim $dbin/oaisim.$REL - - # ue_ip driver compilation - echo_info "Compiling UE specific part (ue_ip driver and usim tools)" - compilations \ - oaisim_build_oai ue_ip \ - CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko - - [ "$CLEAN" = "1" ] && rm -rf $DIR/nas_sim_tools/build - mkdir -p $DIR/nas_sim_tools/build - cd $DIR/nas_sim_tools/build + [ "$CLEAN" = "1" ] && rm -rf $DIR/$oaisim_build_dir/build + mkdir -p $DIR/$oaisim_build_dir/build + cd $DIR/$oaisim_build_dir/build cmake .. compilations \ - nas_sim_tools usim \ - usim $dbin/usim - compilations \ - nas_sim_tools nvram \ - nvram $dbin/nvram - - # generate USIM data - if [ -f $dbin/nvram ]; then - install_nas_tools $dbin $dconf + $oaisim_build_dir $oaisim_exec \ + $oaisim_exec $dbin/$oaisim_exec.$REL + + if [ "$NOS1" != "1" ] ; then + + [ "$CLEAN" = "1" ] && rm -rf $DIR/at_commands/build + echo_info "Compiling at_nas_ue" + mkdir -p $DIR/at_commands/build + cd $DIR/at_commands/build + cmake .. + compilations \ + at_commands at_nas_ue \ + at_nas_ue $dbin/at_nas_ue + + # ue_ip driver compilation + echo_info "Compiling UE specific part (ue_ip driver and usim tools)" + compilations \ + oaisim_build_oai ue_ip \ + CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko + + [ "$CLEAN" = "1" ] && rm -rf $DIR/nas_sim_tools/build + mkdir -p $DIR/nas_sim_tools/build + cd $DIR/nas_sim_tools/build + cmake .. + compilations \ + nas_sim_tools usim \ + usim $dbin/usim + compilations \ + nas_sim_tools nvram \ + nvram $dbin/nvram + + # generate USIM data + if [ -f $dbin/nvram ]; then + install_nas_tools $dbin $dconf + else + echo_warning "not generated UE NAS files: binaries not found" + fi else - echo_warning "not generated UE NAS files: binaries not found" - fi - echo_info "Compiling oaisim_nos1" - cmake_file=$DIR/oaisim_noS1_build_oai/CMakeLists.txt - cp $DIR/oaisim_noS1_build_oai/CMakeLists.template $cmake_file - echo "set ( XFORMS $XFORMS )" >> $cmake_file - echo "set ( PRINT_STATS $PRINT_STATS )" >> $cmake_file - echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file - echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file - echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file - [ "$CLEAN" = "1" ] && rm -rf $DIR/oaisim_noS1_build_oai/build - mkdir -p $DIR/oaisim_noS1_build_oai/build - cd $DIR/oaisim_noS1_build_oai/build - cmake .. - compilations \ - oaisim_noS1_build_oai oaisim_nos1 \ - oaisim_nos1 $dbin/oaisim_nos1.$REL + compilations \ + $oaisim_build_dir rb_tool \ + rb_tool $dbin/rb_tool - compilations \ - oaisim_noS1_build_oai rb_tool \ - rb_tool $dbin/rb_tool + # nasmesh driver compilation + compilations \ + $oaisim_build_dir nasmesh \ + CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko - # nasmesh driver compilation - compilations \ - oaisim_noS1_build_oai nasmesh \ - CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko - #oai_nw_drv - compilations \ - oaisim_noS1_build_oai oai_nw_drv \ - CMakeFiles/oai_nw_drv/oai_nw_drv.ko $dbin/oai_nw_drv.ko + #oai_nw_drv + compilations \ + $oaisim_build_dir oai_nw_drv \ + CMakeFiles/oai_nw_drv/oai_nw_drv.ko $dbin/oai_nw_drv.ko + fi cmake_file=$DIR/oaisim_mme_build_oai/CMakeLists.txt cp $DIR/oaisim_mme_build_oai/CMakeLists.template $cmake_file diff --git a/cmake_targets/lte_noS1_build_oai/CMakeLists.template b/cmake_targets/lte_noS1_build_oai/CMakeLists.template new file mode 100644 index 0000000000000000000000000000000000000000..c8fc68da529fa4db87461e2b27cfeab044165061 --- /dev/null +++ b/cmake_targets/lte_noS1_build_oai/CMakeLists.template @@ -0,0 +1,9 @@ +set(ENABLE_ITTI True) +set(ENABLE_USE_MME False) +set(PDCP_USE_NETLINK True) +set(LINK_ENB_PDCP_TO_IP_DRIVER True) +set(LINK_ENB_PDCP_TO_GTPV1U False) +set(PDCP_USE_NETLINK_QUEUES False) +set(LINUX True) +set(SECU False) +set(NAS_UE False) diff --git a/cmake_targets/lte_noS1_build_oai/CMakeLists.txt b/cmake_targets/lte_noS1_build_oai/CMakeLists.txt deleted file mode 100644 index 305885f58c9e6ae820747a719e9222325eb26fa3..0000000000000000000000000000000000000000 --- a/cmake_targets/lte_noS1_build_oai/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -cmake_minimum_required(VERSION 2.8) -set(XFORMS True) -set(RRC_ASN1_VERSION "Rel10") -set(ENABLE_VCD_FIFO False ) -set(RF_BOARD "ETHERNET") -set(ENABLE_ITTI True) -set(ENABLE_USE_MME False) -set(PDCP_USE_NETLINK True) -set(LINK_ENB_PDCP_TO_IP_DRIVER True) -set(LINK_ENB_PDCP_TO_GTPV1U False) -set(PDCP_USE_NETLINK_QUEUES False) -set(LINUX True) -set(SECU False) -set(NAS_UE False) -set(LOWLATENCY False) -set(PACKAGE_NAME "\"lte-softmodem-nos1\"") -include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)