branch LG_PRE_RELEASE_0.3 reintegration
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7116 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
+253
-175
@@ -27,7 +27,7 @@
|
|||||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
# file build_oai.bash
|
# file build_oai
|
||||||
# brief OAI automated build tool that can be used to install, compile, run OAI.
|
# brief OAI automated build tool that can be used to install, compile, run OAI.
|
||||||
# author Navid Nikaein, Lionel GAUTHIER, Laurent Thomas
|
# author Navid Nikaein, Lionel GAUTHIER, Laurent Thomas
|
||||||
|
|
||||||
@@ -37,69 +37,127 @@
|
|||||||
################################
|
################################
|
||||||
ORIGIN_PATH=$PWD
|
ORIGIN_PATH=$PWD
|
||||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||||
source $THIS_SCRIPT_PATH/tools/build_helper.bash
|
source $THIS_SCRIPT_PATH/tools/build_helper
|
||||||
|
|
||||||
|
MSC_GEN="False"
|
||||||
XFORMS="False"
|
XFORMS="False"
|
||||||
VCD_TIMING="False"
|
VCD_TIMING="False"
|
||||||
REL="Rel10"
|
REL="Rel10"
|
||||||
HW="EXMIMO"
|
HW="EXMIMO"
|
||||||
|
|
||||||
until [ -z "$1" ]
|
function print_help() {
|
||||||
do
|
echo_info '
|
||||||
|
This program installs OpenAirInterface Software
|
||||||
|
You should have ubuntu 14.xx, updated, and the Linux kernel >= 3.14
|
||||||
|
Options
|
||||||
|
-h
|
||||||
|
This help
|
||||||
|
-c | --clean
|
||||||
|
Erase all files to make a rebuild from start"
|
||||||
|
-C | --clean-all
|
||||||
|
Erase all files made by previous compilations, installations"
|
||||||
|
--clean-kernel
|
||||||
|
Erase previously installed features in kernel: iptables, drivers, ...
|
||||||
|
-I | --install-external-packages
|
||||||
|
Installs required packages such as LibXML, asn1.1 compiler, freediameter, ...
|
||||||
|
This option will require root password
|
||||||
|
--install-optional-packages
|
||||||
|
Install useful but not mandatory packages such as valgrind
|
||||||
|
-g | --run-with-gdb
|
||||||
|
Add debugging symbols to compilation directives
|
||||||
|
-h | --help
|
||||||
|
Print this help
|
||||||
|
--eNB
|
||||||
|
Makes the eNB LTE softmodem
|
||||||
|
--UE
|
||||||
|
Makes the UE softmodem
|
||||||
|
--EPC
|
||||||
|
Makes the EPC (MME-SPGW, HSS)
|
||||||
|
-r | --3gpp-release
|
||||||
|
default is Rel10,
|
||||||
|
Rel8 limits the implementation to 3GPP Release 8 version
|
||||||
|
-w | --hardware
|
||||||
|
EXMIMO (Default), USRP, None
|
||||||
|
Adds this RF board support (in external packages installation and in compilation)
|
||||||
|
--oaisim
|
||||||
|
Makes the oaisim simulator
|
||||||
|
--phy_simulators
|
||||||
|
Makes the unitary tests Layer 1 simulators
|
||||||
|
--core_simulators
|
||||||
|
Makes the core security features unitary simulators
|
||||||
|
-s | --check
|
||||||
|
runs a set of auto-tests based on simulators and several compilation tests
|
||||||
|
-V | --vcd
|
||||||
|
Adds a debgging facility to the binary files: GUI with major internal synchronization events
|
||||||
|
-x | --xforms
|
||||||
|
Adds a software oscilloscope feature to the produced binaries
|
||||||
|
--install-system-files
|
||||||
|
Install OpenArInterface required files in Linux system
|
||||||
|
(will ask root password)
|
||||||
|
Typical Options for a quick startup with a COTS UE and Eurecom RF board: build_oai -I -g -eNB -EPC -x --install-system-files'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
until [ -z "$1" ]
|
||||||
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-c | --clean)
|
-c | --clean)
|
||||||
CLEAN=1
|
CLEAN=1
|
||||||
clean_all_files
|
|
||||||
echo_info "Erased all previously producted files"
|
|
||||||
shift;;
|
shift;;
|
||||||
--clean-kernel)
|
-C | --clean-all)
|
||||||
clean_kernel
|
CLEAN_ALL=1
|
||||||
echo_info "Erased iptables config and removed modules from kernel"
|
|
||||||
shift;;
|
shift;;
|
||||||
-I | --install-external-packages)
|
--clean-kernel)
|
||||||
|
clean_kernel
|
||||||
|
echo_info "Erased iptables config and removed modules from kernel"
|
||||||
|
shift;;
|
||||||
|
-I | --install-external-packages)
|
||||||
INSTALL_EXTERNAL=1
|
INSTALL_EXTERNAL=1
|
||||||
echo_info "Will install external packages"
|
echo_info "Will install external packages"
|
||||||
shift;;
|
shift;;
|
||||||
--install-optional-packages)
|
--install-optional-packages)
|
||||||
INSTALL_OPTIONAL=1
|
INSTALL_OPTIONAL=1
|
||||||
echo_info "Will install optional packages"
|
echo_info "Will install optional packages"
|
||||||
shift;;
|
shift;;
|
||||||
-g | --run-with-gdb)
|
-g | --run-with-gdb)
|
||||||
GDB=1
|
GDB=1
|
||||||
echo_info "Will Compile with gdb symbols"
|
echo_info "Will Compile with gdb symbols"
|
||||||
shift;;
|
shift;;
|
||||||
--eNB)
|
--eNB)
|
||||||
eNB=1
|
eNB=1
|
||||||
echo_info "Will compile eNB"
|
echo_info "Will compile eNB"
|
||||||
shift;;
|
shift;;
|
||||||
--UE)
|
--UE)
|
||||||
UE=1
|
UE=1
|
||||||
echo_info "Will compile UE"
|
echo_info "Will compile UE"
|
||||||
shift;;
|
shift;;
|
||||||
--EPC)
|
--EPC)
|
||||||
EPC=1
|
EPC=1
|
||||||
echo_info "Will compile EPC"
|
echo_info "Will compile EPC"
|
||||||
shift;;
|
shift;;
|
||||||
-r | --3gpp-release)
|
-r | --3gpp-release)
|
||||||
REL=$2
|
REL=$2
|
||||||
echo_info "setting release to: $REL"
|
echo_info "setting release to: $REL"
|
||||||
shift 2;;
|
shift 2;;
|
||||||
-w | --hardware)
|
-w | --hardware)
|
||||||
HW="$2" #"${i#*=}"
|
HW="$2" #"${i#*=}"
|
||||||
|
# Use OAI_USRP as the key work USRP is used inside UHD driver
|
||||||
|
[ "$HW" == "USRP" ] && HW=OAI_USRP
|
||||||
echo_info "setting hardware to: $HW"
|
echo_info "setting hardware to: $HW"
|
||||||
shift 2;;
|
shift 2;;
|
||||||
--oaisim)
|
--oaisim)
|
||||||
oaisim=1
|
oaisim=1
|
||||||
echo_info "Will compile oaisim and drivers nasmesh, ..."
|
echo_info "Will compile oaisim and drivers nasmesh, ..."
|
||||||
shift;;
|
shift;;
|
||||||
--phy_simulators)
|
--phy_simulators)
|
||||||
SIMUS_PHY=1
|
SIMUS_PHY=1
|
||||||
echo_info "Will compile dlsim, ulsim, ..."
|
echo_info "Will compile dlsim, ulsim, ..."
|
||||||
shift;;
|
shift;;
|
||||||
--core_simulators)
|
--core_simulators)
|
||||||
SIMUS_CORE=1
|
SIMUS_CORE=1
|
||||||
echo_info "Will compile security unitary tests"
|
echo_info "Will compile security unitary tests"
|
||||||
shift;;
|
shift;;
|
||||||
-s | --check)
|
-s | --check)
|
||||||
OAI_TEST=1
|
OAI_TEST=1
|
||||||
echo_info "Will run auto-tests"
|
echo_info "Will run auto-tests"
|
||||||
@@ -114,10 +172,10 @@ do
|
|||||||
EXE_ARGUMENTS="$EXE_ARGUMENTS -d"
|
EXE_ARGUMENTS="$EXE_ARGUMENTS -d"
|
||||||
echo_info "Will generate the software oscilloscope features"
|
echo_info "Will generate the software oscilloscope features"
|
||||||
shift;;
|
shift;;
|
||||||
--install-system-files)
|
--install-system-files)
|
||||||
INSTALL_SYSTEM_FILES=1
|
INSTALL_SYSTEM_FILES=1
|
||||||
echo_info "Will copy OpenAirInterface files in Linux directories"
|
echo_info "Will copy OpenAirInterface files in Linux directories"
|
||||||
shift;;
|
shift;;
|
||||||
-h | --help)
|
-h | --help)
|
||||||
print_help
|
print_help
|
||||||
exit 1;;
|
exit 1;;
|
||||||
@@ -126,51 +184,68 @@ do
|
|||||||
echo_fatal "Unknown option $1"
|
echo_fatal "Unknown option $1"
|
||||||
break;;
|
break;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
# setting and printing OAI envs, we should check here
|
# setting and printing OAI envs, we should check here
|
||||||
############################################
|
############################################
|
||||||
|
|
||||||
echo_info "2. Setting the OAI PATHS ..."
|
echo_info "2. Setting the OAI PATHS ..."
|
||||||
|
|
||||||
set_openair_env
|
set_openair_env
|
||||||
cecho "OPENAIR_HOME = $OPENAIR_HOME" $green
|
cecho "OPENAIR_DIR = $OPENAIR_DIR" $green
|
||||||
|
|
||||||
dbin=$OPENAIR_HOME/targets/bin
|
# for conf files copy in this bash script
|
||||||
dlog=$OPENAIR_HOME/cmake_targets/log
|
if [ -d /usr/lib/freeDiameter ]; then
|
||||||
mkdir -p $dbin $dlog
|
export FREEDIAMETER_PREFIX=/usr
|
||||||
|
else
|
||||||
if [ "$INSTALL_EXTERNAL" = "1" ] ; then
|
if [ -d /usr/local/lib/freeDiameter ]; then
|
||||||
echo_info "Installing packages"
|
export FREEDIAMETER_PREFIX=/usr/local
|
||||||
check_install_oai_software
|
else
|
||||||
echo_info "Making X.509 certificates"
|
echo_warning "FreeDiameter prefix not found, install freeDiameter if EPC, HSS"
|
||||||
make_certs eur
|
fi
|
||||||
if [ "$HW" == "USRP" ] ; then
|
fi
|
||||||
echo_info "installing packages for USRP support"
|
|
||||||
check_install_usrp_uhd_driver
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$INSTALL_OPTIONAL" = "1" ] ; then
|
|
||||||
echo_info "Installing optional packages"
|
|
||||||
check_install_additional_tools
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo_info "3. building the compilation directives ..."
|
|
||||||
|
|
||||||
DIR=$OPENAIR_HOME/cmake_targets
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$eNB" = "1" -o "UE" = "1" ] ; then
|
if [ "$CLEAN_ALL" = "1" ] ; then
|
||||||
|
clean_all_files
|
||||||
|
echo_info "Erased all previously producted files"
|
||||||
|
fi
|
||||||
|
|
||||||
|
dbin=$OPENAIR_DIR/targets/bin
|
||||||
|
dlog=$OPENAIR_DIR/cmake_targets/log
|
||||||
|
mkdir -p $dbin $dlog
|
||||||
|
|
||||||
|
if [ "$INSTALL_EXTERNAL" = "1" ] ; then
|
||||||
|
echo_info "Installing packages"
|
||||||
|
check_install_oai_software
|
||||||
|
echo_info "Making X.509 certificates"
|
||||||
|
make_certs eur
|
||||||
|
if [ "$HW" == "OAI_USRP" ] ; then
|
||||||
|
echo_info "installing packages for USRP support"
|
||||||
|
check_install_usrp_uhd_driver
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$INSTALL_OPTIONAL" = "1" ] ; then
|
||||||
|
echo_info "Installing optional packages"
|
||||||
|
check_install_additional_tools
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo_info "3. building the compilation directives ..."
|
||||||
|
|
||||||
|
DIR=$OPENAIR_DIR/cmake_targets
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$eNB" = "1" -o "UE" = "1" ] ; then
|
||||||
# LTE softmodem compilation
|
# LTE softmodem compilation
|
||||||
mkdir -p $DIR/lte_build_oai/build
|
mkdir -p $DIR/lte_build_oai/build
|
||||||
cmake_file=$DIR/lte_build_oai/CMakeLists.txt
|
cmake_file=$DIR/lte_build_oai/CMakeLists.txt
|
||||||
echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
|
echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
|
||||||
echo "set(XFORMS $XFORMS )" >> $cmake_file
|
echo "set(XFORMS $XFORMS )" >> $cmake_file
|
||||||
echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
|
echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
|
||||||
echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
|
echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
|
||||||
echo "set(RF_BOARD \"${HW}\")" >> $cmake_file
|
echo "set(RF_BOARD \"${HW}\")" >> $cmake_file
|
||||||
echo 'set(PACKAGE_NAME "\"lte-softmodem\"")' >> $cmake_file
|
echo 'set(PACKAGE_NAME "\"lte-softmodem\"")' >> $cmake_file
|
||||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||||
cd $DIR/lte_build_oai/build
|
cd $DIR/lte_build_oai/build
|
||||||
@@ -180,9 +255,9 @@ if [ "$eNB" = "1" -o "UE" = "1" ] ; then
|
|||||||
lte_build_oai lte-softmodem \
|
lte_build_oai lte-softmodem \
|
||||||
lte-softmodem lte-softmodem.$REL
|
lte-softmodem lte-softmodem.$REL
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$UE" = 1 ] ; then
|
if [ "$UE" = 1 ] ; then
|
||||||
# ue_ip driver compilation
|
# ue_ip driver compilation
|
||||||
echo_info "Compiling UE specific part"
|
echo_info "Compiling UE specific part"
|
||||||
compilations \
|
compilations \
|
||||||
@@ -194,44 +269,44 @@ if [ "$UE" = 1 ] ; then
|
|||||||
compilations \
|
compilations \
|
||||||
lte_build_oai nvram \
|
lte_build_oai nvram \
|
||||||
nvram $dbin/nvram
|
nvram $dbin/nvram
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$SIMUS_PHY" = "1" -o "$SIMUS_CORE" = "1" ] ; then
|
if [ "$SIMUS_PHY" = "1" -o "$SIMUS_CORE" = "1" ] ; then
|
||||||
cd $OPENAIR_DIR/cmake_targets/lte-simulators
|
cd $OPENAIR_DIR/cmake_targets/lte-simulators
|
||||||
[ "$CLEAN" = "1" ] && rm -rf build
|
[ "$CLEAN" = "1" ] && rm -rf build
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
rm -f *sim
|
rm -f *sim
|
||||||
cmake ..
|
cmake ..
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$SIMUS_PHY" = "1" ] ; then
|
if [ "$SIMUS_PHY" = "1" ] ; then
|
||||||
# lte unitary simulators compilation
|
# lte unitary simulators compilation
|
||||||
echo_info "Compiling unitary tests simulators"
|
echo_info "Compiling unitary tests simulators"
|
||||||
simlist="dlsim ulsim pucchsim prachsim pdcchsim pbchsim mbmssim"
|
simlist="dlsim ulsim pucchsim prachsim pdcchsim pbchsim mbmssim"
|
||||||
for f in $simlist ; do
|
for f in $simlist ; do
|
||||||
compilations \
|
compilations \
|
||||||
lte-simulators $f \
|
lte-simulators $f \
|
||||||
$f $dbin/$f.$REL
|
$f $dbin/$f.$REL
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Core simulators
|
# Core simulators
|
||||||
#############
|
#############
|
||||||
if [ "$SIMUS_CORE" = "1" ] ; then
|
if [ "$SIMUS_CORE" = "1" ] ; then
|
||||||
# lte unitary simulators compilation
|
# lte unitary simulators compilation
|
||||||
echo_info "Compiling unitary tests simulators"
|
echo_info "Compiling unitary tests simulators"
|
||||||
simlist="secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
|
simlist="secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
|
||||||
for f in $simlist ; do
|
for f in $simlist ; do
|
||||||
compilations \
|
compilations \
|
||||||
lte-simulators test_$f \
|
lte-simulators test_$f \
|
||||||
test_$f $dbin/test_$f.$REL
|
test_$f $dbin/test_$f.$REL
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# EXMIMO drivers & firmware loader
|
# EXMIMO drivers & firmware loader
|
||||||
###############
|
###############
|
||||||
if [ "$HW" = "EXMIMO" -a "$UE$eNB" != "" ] ; then
|
if [ "$HW" = "EXMIMO" -a "$UE$eNB" != "" ] ; then
|
||||||
echo_info "Compiling Express MIMO 2 board drivers"
|
echo_info "Compiling Express MIMO 2 board drivers"
|
||||||
compilations \
|
compilations \
|
||||||
lte_build_oai openair_rf \
|
lte_build_oai openair_rf \
|
||||||
@@ -239,9 +314,9 @@ if [ "$HW" = "EXMIMO" -a "$UE$eNB" != "" ] ; then
|
|||||||
compilations \
|
compilations \
|
||||||
lte_build_oai updatefw \
|
lte_build_oai updatefw \
|
||||||
updatefw $dbin/updatefw
|
updatefw $dbin/updatefw
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$oaisim" = "1" ] ; then
|
if [ "$oaisim" = "1" ] ; then
|
||||||
echo_info "Compiling oaisim"
|
echo_info "Compiling oaisim"
|
||||||
cmake_file=$DIR/oaisim_build_oai/CMakeLists.txt
|
cmake_file=$DIR/oaisim_build_oai/CMakeLists.txt
|
||||||
cp $DIR/oaisim_build_oai/CMakeLists.template $cmake_file
|
cp $DIR/oaisim_build_oai/CMakeLists.template $cmake_file
|
||||||
@@ -276,95 +351,95 @@ if [ "$oaisim" = "1" ] ; then
|
|||||||
compilations \
|
compilations \
|
||||||
oaisim_mme_build_oai oaisim_mme \
|
oaisim_mme_build_oai oaisim_mme \
|
||||||
oaisim_mme $dbin/oaisim_mme.$REL
|
oaisim_mme $dbin/oaisim_mme.$REL
|
||||||
fi
|
|
||||||
|
|
||||||
# EPC compilation
|
|
||||||
##################
|
|
||||||
if [ "$EPC" = "1" ] ; then
|
|
||||||
echo_info "Compiling EPC"
|
|
||||||
cmake_file=$DIR/epc_build_oai/CMakeLists.txt
|
|
||||||
cp $DIR/epc_build_oai/CMakeLists.template $cmake_file
|
|
||||||
echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
|
|
||||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
|
||||||
mkdir -p $DIR/epc_build_oai/build
|
|
||||||
cd $DIR/epc_build_oai/build
|
|
||||||
cmake ..
|
|
||||||
compilations \
|
|
||||||
epc_build_oai mme_gw \
|
|
||||||
mme_gw $dbin/mme_gw.$REL
|
|
||||||
# Only integrated mme+sgw+pgw is operational today
|
|
||||||
# compilations \
|
|
||||||
# epc_build_oai oai_sgw \
|
|
||||||
# oai_sgw $dbin/oai_sgw.$REL
|
|
||||||
compilations \
|
|
||||||
epc_build_oai xt_GTPUAH_lib \
|
|
||||||
libxt_GTPUAH_lib.so $dbin
|
|
||||||
compilations \
|
|
||||||
epc_build_oai xt_GTPURH_lib \
|
|
||||||
libxt_GTPURH_lib.so $dbin
|
|
||||||
compilations \
|
|
||||||
epc_build_oai xt_GTPURH \
|
|
||||||
CMakeFiles/xt_GTPURH/xt_GTPURH.ko $dbin
|
|
||||||
compilations \
|
|
||||||
epc_build_oai xt_GTPUAH \
|
|
||||||
CMakeFiles/xt_GTPUAH/xt_GTPUAH.ko $dbin
|
|
||||||
|
|
||||||
if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then
|
|
||||||
# Example HSS and EPC run on the same host
|
|
||||||
$OPENAIR_HOME/cmake_targets/tools/build_hss --clean --debug --install-hss-files --transport-tcp-only --transport-prefer-tcp --fqdn `hostname --fqdn` --connect-to-mme `hostname --fqdn`
|
|
||||||
# example HHS and EPC run on separate hosts (can use SCTP)
|
|
||||||
# $OPENAIR_HOME/cmake_targets/tools/build_hss --clean --debug --install-hss-files
|
|
||||||
else
|
|
||||||
# Example HSS and EPC run on the same host
|
|
||||||
$OPENAIR_HOME/cmake_targets/tools/build_hss --debug --transport-tcp-only --transport-prefer-tcp --fqdn `hostname --fqdn` --connect-to-mme `hostname --fqdn`
|
|
||||||
# example HHS and EPC run on separate hosts (can use SCTP)
|
|
||||||
# $OPENAIR_HOME/cmake_targets/tools/build_hss --debug
|
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then
|
# EPC compilation
|
||||||
|
##################
|
||||||
|
if [ "$EPC" = "1" ] ; then
|
||||||
|
echo_info "Compiling EPC"
|
||||||
|
cmake_file=$DIR/epc_build_oai/CMakeLists.txt
|
||||||
|
cp $DIR/epc_build_oai/CMakeLists.template $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/epc_build_oai/build
|
||||||
|
mkdir -p $DIR/epc_build_oai/build
|
||||||
|
cd $DIR/epc_build_oai/build
|
||||||
|
cmake ..
|
||||||
|
compilations \
|
||||||
|
epc_build_oai mme_gw \
|
||||||
|
mme_gw $dbin/mme_gw.$REL
|
||||||
|
# Only integrated mme+sgw+pgw is operational today
|
||||||
|
# compilations \
|
||||||
|
# epc_build_oai oai_sgw \
|
||||||
|
# oai_sgw $dbin/oai_sgw.$REL
|
||||||
|
compilations \
|
||||||
|
epc_build_oai xt_GTPUAH_lib \
|
||||||
|
libxt_GTPUAH_lib.so $dbin
|
||||||
|
compilations \
|
||||||
|
epc_build_oai xt_GTPURH_lib \
|
||||||
|
libxt_GTPURH_lib.so $dbin
|
||||||
|
compilations \
|
||||||
|
epc_build_oai xt_GTPURH \
|
||||||
|
CMakeFiles/xt_GTPURH/xt_GTPURH.ko $dbin
|
||||||
|
compilations \
|
||||||
|
epc_build_oai xt_GTPUAH \
|
||||||
|
CMakeFiles/xt_GTPUAH/xt_GTPUAH.ko $dbin
|
||||||
|
|
||||||
|
|
||||||
|
# Example HSS and EPC run on the same host
|
||||||
|
if [ "$CLEAN" = "1" ]; then
|
||||||
|
$OPENAIR_DIR/cmake_targets/tools/build_hss --clean --debug --transport-tcp-only --transport-prefer-tcp --fqdn `hostname --fqdn` --connect-to-mme `hostname --fqdn`
|
||||||
|
else
|
||||||
|
$OPENAIR_DIR/cmake_targets/tools/build_hss --debug --transport-tcp-only --transport-prefer-tcp --fqdn `hostname --fqdn` --connect-to-mme `hostname --fqdn`
|
||||||
|
fi
|
||||||
|
# example HHS and EPC run on separate hosts (can use SCTP)
|
||||||
|
# $OPENAIR_DIR/cmake_targets/tools/build_hss --debug
|
||||||
|
|
||||||
echo_info "Copying iptables libraries into system directory: /lib/xtables"
|
echo_info "Copying iptables libraries into system directory: /lib/xtables"
|
||||||
if [ -f $dbin/libxt_GTPURH_lib.so ] ; then
|
if [ -f $dbin/libxt_GTPURH_lib.so ] ; then
|
||||||
$SUDO rm -f /lib/xtables/libxt_GTPURH.so /lib/xtables/libxt_GTPUAH.s
|
$SUDO rm -f /lib/xtables/libxt_GTPURH.so /lib/xtables/libxt_GTPUAH.so
|
||||||
$SUDO ln -s $dbin/libxt_GTPURH_lib.so /lib/xtables/libxt_GTPURH.so
|
$SUDO ln -s $dbin/libxt_GTPURH_lib.so /lib/xtables/libxt_GTPURH.so
|
||||||
$SUDO ln -s $dbin/libxt_GTPUAH_lib.so /lib/xtables/libxt_GTPUAH.so
|
$SUDO ln -s $dbin/libxt_GTPUAH_lib.so /lib/xtables/libxt_GTPUAH.so
|
||||||
else
|
else
|
||||||
echo_warning "not installed GTP-U iptables: binaries not found"
|
echo_warning "not installed GTP-U iptables: binaries not found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dconf=$OPENAIR_TARGETS/bin
|
dconf=$OPENAIR_TARGETS/bin
|
||||||
mkdir -p $dconf
|
mkdir -p $dconf
|
||||||
#LG??? cp $ORIGIN_PATH/$CONFIG_FILE $dconf || echo_fatal "config file $ORIGIN_PATH/$CONFIG_FILE not found"
|
#cp $ORIGIN_PATH/$CONFIG_FILE $dconf || echo_error "config file $ORIGIN_PATH/$CONFIG_FILE not found"
|
||||||
|
|
||||||
# generate USIM data
|
# generate USIM data
|
||||||
if [ -f $dbin/nvram ]; then
|
if [ -f $dbin/nvram ]; then
|
||||||
install_nas_tools $dbin $dconf
|
install_nas_tools $dbin $dconf
|
||||||
else
|
else
|
||||||
echo_warning "not generated UE NAS files: binaries not found"
|
echo_warning "not generated UE NAS files: binaries not found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Do EPC
|
# Do EPC
|
||||||
if [ -f $DIR/epc_build_oai/build/epc_s6a.conf ] ; then
|
if [ -f $DIR/epc_build_oai/build/mme_fd.conf ] ; then
|
||||||
cp $DIR/epc_build_oai/build/epc.*.conf $dconf
|
cp $DIR/epc_build_oai/build/epc.*.conf $dconf
|
||||||
$SUDO cp $DIR/epc_build_oai/build/epc_s6a.conf /usr/local/etc/freeDiameter
|
$SUDO cp -uv $DIR/epc_build_oai/build/mme_fd.conf $FREEDIAMETER_PREFIX/etc/freeDiameter
|
||||||
else
|
else
|
||||||
echo_warning "not installed EPC config files: not found"
|
echo_warning "not installed EPC config files: not found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Do HSS
|
# Do HSS
|
||||||
# bash doesn't like space char around = char
|
# bash doesn't like space char around = char
|
||||||
#cp $DIR/hss_build/hss.conf $dbin
|
cp -uv $DIR/hss_build/build/hss.conf $dbin
|
||||||
#$SUDO cp $DIR/hss_build/build/hss_fd.conf $DIR/hss_build/acl.conf /usr/local/etc/freeDiameter
|
$SUDO cp -uv $DIR/hss_build/build/hss_fd.conf $DIR/hss_build/build/acl.conf $FREEDIAMETER_PREFIX/etc/freeDiameter
|
||||||
|
|
||||||
if [ -f $dbin/hss.conf ] ; then
|
# if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then
|
||||||
sed -e 's/ *= */=/' $dbin/hss.conf > $dconf/hss.conf.nospace
|
# if [ -f $dbin/hss.conf ] ; then
|
||||||
source $dconf/hss.conf.nospace
|
# sed -e 's/ *= */=/' $dbin/hss.conf > $dconf/hss.conf.nospace
|
||||||
rm -f $dconf/hss.conf.nospace
|
# source $dconf/hss.conf.nospace
|
||||||
create_hss_database root linux "$MYSQL_user" "$MYSQL_pass" "$MYSQL_db"
|
# rm -f $dconf/hss.conf.nospace
|
||||||
else
|
# create_hss_database root linux "$MYSQL_user" "$MYSQL_pass" "$MYSQL_db"
|
||||||
echo_warning "not created HSS database: config not found"
|
# else
|
||||||
fi
|
# echo_warning "not created HSS database: config not found"
|
||||||
|
# fi
|
||||||
|
# fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Auto-tests
|
# Auto-tests
|
||||||
@@ -376,3 +451,6 @@ if [ "$OAI_TEST" = "1" ]; then
|
|||||||
else
|
else
|
||||||
echo_info "10. Bypassing the Tests ..."
|
echo_info "10. Bypassing the Tests ..."
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user