Skip to content
Snippets Groups Projects
Commit 4f583e20 authored by Lionel Gauthier's avatar Lionel Gauthier
Browse files

branch LG_PRE_RELEASE_0.3 reintegration

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7116 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent a94678b4
Branches
Tags
No related merge requests found
...@@ -27,7 +27,7 @@ ...@@ -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,20 +37,76 @@ ...@@ -37,20 +37,76 @@
################################ ################################
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"
function print_help() {
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" ] until [ -z "$1" ]
do do
case "$1" in case "$1" in
-c | --clean) -c | --clean)
CLEAN=1 CLEAN=1
clean_all_files shift;;
echo_info "Erased all previously producted files" -C | --clean-all)
CLEAN_ALL=1
shift;; shift;;
--clean-kernel) --clean-kernel)
clean_kernel clean_kernel
...@@ -86,6 +142,8 @@ do ...@@ -86,6 +142,8 @@ do
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)
...@@ -135,10 +193,27 @@ done ...@@ -135,10 +193,27 @@ done
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
# for conf files copy in this bash script
if [ -d /usr/lib/freeDiameter ]; then
export FREEDIAMETER_PREFIX=/usr
else
if [ -d /usr/local/lib/freeDiameter ]; then
export FREEDIAMETER_PREFIX=/usr/local
else
echo_warning "FreeDiameter prefix not found, install freeDiameter if EPC, HSS"
fi
fi
if [ "$CLEAN_ALL" = "1" ] ; then
clean_all_files
echo_info "Erased all previously producted files"
fi
dbin=$OPENAIR_HOME/targets/bin dbin=$OPENAIR_DIR/targets/bin
dlog=$OPENAIR_HOME/cmake_targets/log dlog=$OPENAIR_DIR/cmake_targets/log
mkdir -p $dbin $dlog mkdir -p $dbin $dlog
if [ "$INSTALL_EXTERNAL" = "1" ] ; then if [ "$INSTALL_EXTERNAL" = "1" ] ; then
...@@ -146,7 +221,7 @@ if [ "$INSTALL_EXTERNAL" = "1" ] ; then ...@@ -146,7 +221,7 @@ if [ "$INSTALL_EXTERNAL" = "1" ] ; then
check_install_oai_software check_install_oai_software
echo_info "Making X.509 certificates" echo_info "Making X.509 certificates"
make_certs eur make_certs eur
if [ "$HW" == "USRP" ] ; then if [ "$HW" == "OAI_USRP" ] ; then
echo_info "installing packages for USRP support" echo_info "installing packages for USRP support"
check_install_usrp_uhd_driver check_install_usrp_uhd_driver
fi fi
...@@ -159,7 +234,7 @@ fi ...@@ -159,7 +234,7 @@ fi
echo_info "3. building the compilation directives ..." echo_info "3. building the compilation directives ..."
DIR=$OPENAIR_HOME/cmake_targets DIR=$OPENAIR_DIR/cmake_targets
if [ "$eNB" = "1" -o "UE" = "1" ] ; then if [ "$eNB" = "1" -o "UE" = "1" ] ; then
...@@ -286,6 +361,8 @@ if [ "$EPC" = "1" ] ; then ...@@ -286,6 +361,8 @@ if [ "$EPC" = "1" ] ; then
cp $DIR/epc_build_oai/CMakeLists.template $cmake_file cp $DIR/epc_build_oai/CMakeLists.template $cmake_file
echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $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 mkdir -p $DIR/epc_build_oai/build
cd $DIR/epc_build_oai/build cd $DIR/epc_build_oai/build
cmake .. cmake ..
...@@ -309,24 +386,19 @@ if [ "$EPC" = "1" ] ; then ...@@ -309,24 +386,19 @@ if [ "$EPC" = "1" ] ; then
epc_build_oai xt_GTPUAH \ epc_build_oai xt_GTPUAH \
CMakeFiles/xt_GTPUAH/xt_GTPUAH.ko $dbin CMakeFiles/xt_GTPUAH/xt_GTPUAH.ko $dbin
if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then
# Example HSS and EPC run on the same host # 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` if [ "$CLEAN" = "1" ]; then
# example HHS and EPC run on separate hosts (can use SCTP) $OPENAIR_DIR/cmake_targets/tools/build_hss --clean --debug --transport-tcp-only --transport-prefer-tcp --fqdn `hostname --fqdn` --connect-to-mme `hostname --fqdn`
# $OPENAIR_HOME/cmake_targets/tools/build_hss --clean --debug --install-hss-files
else else
# Example HSS and EPC run on the same host $OPENAIR_DIR/cmake_targets/tools/build_hss --debug --transport-tcp-only --transport-prefer-tcp --fqdn `hostname --fqdn` --connect-to-mme `hostname --fqdn`
$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
# example HHS and EPC run on separate hosts (can use SCTP)
if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then # $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
...@@ -335,7 +407,7 @@ if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then ...@@ -335,7 +407,7 @@ if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then
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
...@@ -344,27 +416,30 @@ if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then ...@@ -344,27 +416,30 @@ if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then
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 ...@@ -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 "$@"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment