Merge branch 'bugfix-96-Fix-build-script-for-16.04-installation-v3' into develop
This commit is contained in:
@@ -1518,7 +1518,7 @@ if (${RF_BOARD} STREQUAL "OAI_USRP")
|
|||||||
include_directories(${LIBBOOST_INCLUDE_DIR})
|
include_directories(${LIBBOOST_INCLUDE_DIR})
|
||||||
endif (${RF_BOARD} STREQUAL "OAI_USRP")
|
endif (${RF_BOARD} STREQUAL "OAI_USRP")
|
||||||
|
|
||||||
pkg_search_module(OPENPGM openpgm-5.1)
|
pkg_search_module(OPENPGM openpgm-5.1 openpgm-5.2)
|
||||||
if(NOT ${OPENPGM_FOUND})
|
if(NOT ${OPENPGM_FOUND})
|
||||||
message("PACKAGE openpgm-5.1 is required by binaries such as oaisim: will fail later if this target is built")
|
message("PACKAGE openpgm-5.1 is required by binaries such as oaisim: will fail later if this target is built")
|
||||||
else()
|
else()
|
||||||
@@ -1625,7 +1625,7 @@ add_executable(lte-softmodem
|
|||||||
${T_SOURCE}
|
${T_SOURCE}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries (lte-softmodem
|
target_link_libraries (lte-softmodem -ldl
|
||||||
-Wl,--start-group
|
-Wl,--start-group
|
||||||
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${MIH_LIB}
|
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${MIH_LIB}
|
||||||
-Wl,--end-group )
|
-Wl,--end-group )
|
||||||
@@ -1652,8 +1652,8 @@ add_executable(lte-softmodem-nos1
|
|||||||
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
|
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
|
||||||
${OPENAIR_TARGETS}/COMMON/create_tasks.c
|
${OPENAIR_TARGETS}/COMMON/create_tasks.c
|
||||||
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
|
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
|
||||||
#${OPENAIR2_DIR}/RRC/NAS/nas_config.c # enable if you want rrc to mount ip interface
|
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
|
||||||
#${OPENAIR2_DIR}/RRC/NAS/rb_config.c
|
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
|
||||||
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
|
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
|
||||||
${HW_SOURCE}
|
${HW_SOURCE}
|
||||||
${TRANSPORT_SOURCE}
|
${TRANSPORT_SOURCE}
|
||||||
@@ -1929,6 +1929,11 @@ foreach( d ${DirDefs} )
|
|||||||
list(APPEND itti_compiler_options "-I${d}")
|
list(APPEND itti_compiler_options "-I${d}")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
# castxml doesn't work with c11 (gcc 5 default)
|
||||||
|
# force castxml and clang compilation with gnu89 standard
|
||||||
|
# we can't use cXX standard as pthread_rwlock_t is gnu standard
|
||||||
|
list(APPEND itti_compiler_options "-std=gnu89")
|
||||||
|
|
||||||
set (ITTI_H ${ITTI_DIR}/intertask_interface_types.h)
|
set (ITTI_H ${ITTI_DIR}/intertask_interface_types.h)
|
||||||
add_custom_command (
|
add_custom_command (
|
||||||
OUTPUT ${OPENAIR_BIN_DIR}/messages.xml
|
OUTPUT ${OPENAIR_BIN_DIR}/messages.xml
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
# 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
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
################################
|
################################
|
||||||
# include helper functions
|
# include helper functions
|
||||||
@@ -59,6 +60,7 @@ RUN_GROUP=0
|
|||||||
TEST_CASE_GROUP=""
|
TEST_CASE_GROUP=""
|
||||||
BUILD_DOXYGEN=0
|
BUILD_DOXYGEN=0
|
||||||
T_TRACER="False"
|
T_TRACER="False"
|
||||||
|
DISABLE_HARDWARE_DEPENDENCY="False"
|
||||||
trap handle_ctrl_c INT
|
trap handle_ctrl_c INT
|
||||||
|
|
||||||
function print_help() {
|
function print_help() {
|
||||||
@@ -131,6 +133,8 @@ Options
|
|||||||
Disables CPU Affinity between UHD/TX/RX Threads (Valid only when deadline scheduler is disabled). By defaulT, CPU Affinity is enabled when not using deadline scheduler. It is enabled only with >2 CPUs. For eNB, CPU_0-> Device library (UHD), CPU_1->TX Threads, CPU_2...CPU_MAX->Rx Threads. For UE, CPU_0->Device Library(UHD), CPU_1..CPU_MAX -> All the UE threads
|
Disables CPU Affinity between UHD/TX/RX Threads (Valid only when deadline scheduler is disabled). By defaulT, CPU Affinity is enabled when not using deadline scheduler. It is enabled only with >2 CPUs. For eNB, CPU_0-> Device library (UHD), CPU_1->TX Threads, CPU_2...CPU_MAX->Rx Threads. For UE, CPU_0->Device Library(UHD), CPU_1..CPU_MAX -> All the UE threads
|
||||||
--T-tracer
|
--T-tracer
|
||||||
Enables the T tracer.
|
Enables the T tracer.
|
||||||
|
--disable-hardware-dependency
|
||||||
|
Disable HW dependency during installation
|
||||||
Usage (first build):
|
Usage (first build):
|
||||||
oaisim (eNB + UE): ./build_oai -I -g --oaisim -x --install-system-files
|
oaisim (eNB + UE): ./build_oai -I -g --oaisim -x --install-system-files
|
||||||
Eurecom EXMIMO + COTS UE : ./build_oai -I -g --eNB -x --install-system-files
|
Eurecom EXMIMO + COTS UE : ./build_oai -I -g --eNB -x --install-system-files
|
||||||
@@ -277,6 +281,10 @@ function main() {
|
|||||||
T_TRACER="True"
|
T_TRACER="True"
|
||||||
echo_info "Enabling the T tracer"
|
echo_info "Enabling the T tracer"
|
||||||
shift 1;;
|
shift 1;;
|
||||||
|
--disable-hardware-dependency)
|
||||||
|
echo_info "Disabling hardware dependency for compiling software"
|
||||||
|
DISABLE_HARDWARE_DEPENDENCY="True"
|
||||||
|
shift 1;;
|
||||||
-h | --help)
|
-h | --help)
|
||||||
print_help
|
print_help
|
||||||
exit 1;;
|
exit 1;;
|
||||||
@@ -386,10 +394,16 @@ function main() {
|
|||||||
if [ "$HW" == "OAI_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
|
||||||
|
if [ ! "$DISABLE_HARDWARE_DEPENDENCY" == "True" ]; then
|
||||||
|
install_usrp_uhd_driver
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$HW" == "OAI_BLADERF" ] ; then
|
if [ "$HW" == "OAI_BLADERF" ] ; then
|
||||||
echo_info "installing packages for BLADERF support"
|
echo_info "installing packages for BLADERF support"
|
||||||
check_install_bladerf_driver
|
check_install_bladerf_driver
|
||||||
|
if [ ! "$DISABLE_HARDWARE_DEPENDENCY" == "True" ]; then
|
||||||
|
flash_firmware_bladerf
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,45 @@ echo_warning() { cecho "$*" $yellow ;}
|
|||||||
echo_success() { cecho "$*" $green ;}
|
echo_success() { cecho "$*" $green ;}
|
||||||
echo_info() { cecho "$*" $blue ;}
|
echo_info() { cecho "$*" $blue ;}
|
||||||
|
|
||||||
|
########################
|
||||||
|
# distribution helpers #
|
||||||
|
########################
|
||||||
|
|
||||||
|
# This function return a string to identify the distribution we are running
|
||||||
|
# If we can't check the distribution, it returns "Unknown"
|
||||||
|
# This function return always true as exit code by design
|
||||||
|
# Examples:
|
||||||
|
# Ubuntu16.04
|
||||||
|
# Debian8.5
|
||||||
|
get_distribution_release() {
|
||||||
|
local distributor
|
||||||
|
if distributor=$(lsb_release -si 2>/dev/null) ; then
|
||||||
|
echo $distributor$(lsb_release -sr)
|
||||||
|
else
|
||||||
|
echo Unknown
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_supported_distribution() {
|
||||||
|
local distribution=$(get_distribution_release)
|
||||||
|
case "$distribution" in
|
||||||
|
"Ubuntu16.04") return 0 ;;
|
||||||
|
"Ubuntu14.04") return 0 ;;
|
||||||
|
esac
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
##################
|
||||||
|
# Error handlers #
|
||||||
|
##################
|
||||||
|
|
||||||
|
handler_EXIT() {
|
||||||
|
local exit_code=$?
|
||||||
|
[ "$exit_code" -eq 0 ] || echo_error "build have failed"
|
||||||
|
exit $exit_code
|
||||||
|
}
|
||||||
|
|
||||||
|
trap handler_EXIT EXIT
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
# Cleaners
|
# Cleaners
|
||||||
@@ -109,6 +147,8 @@ clean_all_files() {
|
|||||||
|
|
||||||
compilations() {
|
compilations() {
|
||||||
cd $OPENAIR_DIR/cmake_targets/$1/build
|
cd $OPENAIR_DIR/cmake_targets/$1/build
|
||||||
|
echo_info "Log file for compilation written in: $dlog/$2.$REL.txt"
|
||||||
|
set +e
|
||||||
{
|
{
|
||||||
rm -f $3
|
rm -f $3
|
||||||
if [ "$VERBOSE_COMPILE" == "1" ]; then
|
if [ "$VERBOSE_COMPILE" == "1" ]; then
|
||||||
@@ -118,12 +158,14 @@ compilations() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
} > $dlog/$2.$REL.txt 2>&1
|
} > $dlog/$2.$REL.txt 2>&1
|
||||||
|
set -e
|
||||||
echo_info "Log file for compilation has been written to: $dlog/$2.$REL.txt"
|
echo_info "Log file for compilation has been written to: $dlog/$2.$REL.txt"
|
||||||
if [ -s $3 ] ; then
|
if [ -s $3 ] ; then
|
||||||
cp $3 $4
|
cp $3 $4
|
||||||
echo_success "$2 compiled"
|
echo_success "$2 compiled"
|
||||||
else
|
else
|
||||||
echo_error "$2 compilation failed"
|
echo_error "$2 compilation failed"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,22 +228,35 @@ install_gnutls_from_source(){
|
|||||||
|
|
||||||
check_install_usrp_uhd_driver(){
|
check_install_usrp_uhd_driver(){
|
||||||
#first we remove old installation
|
#first we remove old installation
|
||||||
$SUDO apt-get remove uhd libuhd-dev libuhd003 uhd-host -y
|
$SUDO apt-get remove -y uhd || true
|
||||||
|
$SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y
|
||||||
v=$(lsb_release -cs)
|
v=$(lsb_release -cs)
|
||||||
$SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main"
|
$SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main"
|
||||||
#The new USRP repository
|
#The new USRP repository
|
||||||
$SUDO add-apt-repository ppa:ettusresearch/uhd -y
|
$SUDO add-apt-repository ppa:ettusresearch/uhd -y
|
||||||
$SUDO apt-get update
|
$SUDO apt-get update
|
||||||
$SUDO apt-get -y install python python-tk libboost-all-dev libusb-1.0-0-dev
|
$SUDO apt-get -y install python python-tk libboost-all-dev libusb-1.0-0-dev
|
||||||
$SUDO apt-get -y install libuhd-dev libuhd003 uhd-host
|
$SUDO apt-get -y install libuhd-dev libuhd003
|
||||||
|
}
|
||||||
|
|
||||||
|
install_usrp_uhd_driver() {
|
||||||
|
# We move uhd-host apart because it depends on linux kernel version
|
||||||
|
# On newer kernels, it fails to install
|
||||||
|
$SUDO apt-get -y install uhd-host
|
||||||
$SUDO uhd_images_downloader
|
$SUDO uhd_images_downloader
|
||||||
}
|
}
|
||||||
|
|
||||||
check_install_bladerf_driver(){
|
check_install_bladerf_driver(){
|
||||||
$SUDO add-apt-repository -y ppa:bladerf/bladerf
|
if [ "$(get_distribution_release)" == "Ubuntu14.04" ] ; then
|
||||||
$SUDO apt-get update
|
$SUDO add-apt-repository -y ppa:bladerf/bladerf
|
||||||
|
$SUDO apt-get update
|
||||||
|
fi
|
||||||
$SUDO apt-get install -y bladerf libbladerf-dev
|
$SUDO apt-get install -y bladerf libbladerf-dev
|
||||||
$SUDO apt-get install -y bladerf-firmware-fx3
|
$SUDO apt-get install -y bladerf-firmware-fx3
|
||||||
$SUDO apt-get install -y bladerf-fpga-hostedx40
|
$SUDO apt-get install -y bladerf-fpga-hostedx40
|
||||||
|
}
|
||||||
|
|
||||||
|
flash_firmware_bladerf() {
|
||||||
$SUDO bladeRF-cli --flash-firmware /usr/share/Nuand/bladeRF/bladeRF_fw.img
|
$SUDO bladeRF-cli --flash-firmware /usr/share/Nuand/bladeRF/bladeRF_fw.img
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,7 +283,10 @@ check_install_additional_tools (){
|
|||||||
ctags \
|
ctags \
|
||||||
ntpdate \
|
ntpdate \
|
||||||
iperf3 \
|
iperf3 \
|
||||||
android-tools-adb
|
android-tools-adb \
|
||||||
|
wvdial \
|
||||||
|
python-numpy \
|
||||||
|
sshpass
|
||||||
|
|
||||||
$SUDO pip install paramiko
|
$SUDO pip install paramiko
|
||||||
$SUDO pip install pyroute2
|
$SUDO pip install pyroute2
|
||||||
@@ -248,8 +306,26 @@ check_install_additional_tools (){
|
|||||||
}
|
}
|
||||||
|
|
||||||
check_install_oai_software() {
|
check_install_oai_software() {
|
||||||
|
local specific_packages=""
|
||||||
|
if ! check_supported_distribution; then
|
||||||
|
echo_error "Your distribution $(get_distribution_release) is not supported by oai !"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
$SUDO apt-get update
|
$SUDO apt-get update
|
||||||
|
$SUDO apt install -y software-properties-common
|
||||||
|
case "$(get_distribution_release)" in
|
||||||
|
"Ubuntu14.04")
|
||||||
|
specific_packages="libtasn1-3-dev"
|
||||||
|
# For iperf3
|
||||||
|
$SUDO add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty-backports universe"
|
||||||
|
$SUDO apt-get update
|
||||||
|
;;
|
||||||
|
"Ubuntu16.04")
|
||||||
|
specific_packages="libtasn1-6-dev"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
$SUDO apt-get install -y \
|
$SUDO apt-get install -y \
|
||||||
|
$specific_packages \
|
||||||
autoconf \
|
autoconf \
|
||||||
automake \
|
automake \
|
||||||
bison \
|
bison \
|
||||||
@@ -273,9 +349,9 @@ check_install_oai_software() {
|
|||||||
iptables-dev \
|
iptables-dev \
|
||||||
libatlas-base-dev \
|
libatlas-base-dev \
|
||||||
libatlas-dev \
|
libatlas-dev \
|
||||||
libblas3gf \
|
|
||||||
libblas-dev \
|
libblas-dev \
|
||||||
libconfig8-dev \
|
libconfig8-dev \
|
||||||
|
libffi-dev \
|
||||||
libforms-bin \
|
libforms-bin \
|
||||||
libforms-dev \
|
libforms-dev \
|
||||||
libgcrypt11-dev \
|
libgcrypt11-dev \
|
||||||
@@ -285,16 +361,16 @@ check_install_oai_software() {
|
|||||||
libidn11-dev \
|
libidn11-dev \
|
||||||
libmysqlclient-dev \
|
libmysqlclient-dev \
|
||||||
liboctave-dev \
|
liboctave-dev \
|
||||||
libpgm-5.1 \
|
|
||||||
libpgm-dev \
|
libpgm-dev \
|
||||||
|
libpython2.7-dev \
|
||||||
libsctp1 \
|
libsctp1 \
|
||||||
libsctp-dev \
|
libsctp-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtasn1-3-dev \
|
|
||||||
libtool \
|
libtool \
|
||||||
libusb-1.0-0-dev \
|
libusb-1.0-0-dev \
|
||||||
libxml2 \
|
libxml2 \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
|
libxslt1-dev \
|
||||||
linux-headers-`uname -r` \
|
linux-headers-`uname -r` \
|
||||||
mscgen \
|
mscgen \
|
||||||
octave \
|
octave \
|
||||||
@@ -307,11 +383,7 @@ check_install_oai_software() {
|
|||||||
xmlstarlet \
|
xmlstarlet \
|
||||||
python-pip \
|
python-pip \
|
||||||
pydb \
|
pydb \
|
||||||
wvdial \
|
wget
|
||||||
python-numpy \
|
|
||||||
sshpass \
|
|
||||||
libxslt1-dev \
|
|
||||||
android-tools-adb
|
|
||||||
|
|
||||||
$SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so
|
$SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so
|
||||||
|
|
||||||
@@ -337,6 +409,7 @@ install_asn1c_from_source(){
|
|||||||
./configure
|
./configure
|
||||||
make -j`nproc`
|
make -j`nproc`
|
||||||
$SUDO make install
|
$SUDO make install
|
||||||
|
cd -
|
||||||
) > $asn1_install_log 2>&1
|
) > $asn1_install_log 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,14 +14,15 @@ typedef struct
|
|||||||
int16_t q;
|
int16_t q;
|
||||||
} complex16_t;
|
} complex16_t;
|
||||||
|
|
||||||
typedef struct
|
class SamplesPacket
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
uint64_t timestamp; //timestamp of the packet
|
uint64_t timestamp; //timestamp of the packet
|
||||||
uint16_t first; //index of first unused sample in samples[]
|
uint16_t first; //index of first unused sample in samples[]
|
||||||
uint16_t last; //end index of samples
|
uint16_t last; //end index of samples
|
||||||
static const uint16_t samplesCount = 1024; //maximum number of samples in packet
|
static const uint16_t samplesCount = 1024; //maximum number of samples in packet
|
||||||
complex16_t samples[samplesCount]; //must be power of two
|
complex16_t samples[samplesCount]; //must be power of two
|
||||||
} SamplesPacket;
|
};
|
||||||
|
|
||||||
complex16_t operator &=(complex16_t & other1, const complex16_t & other) // copy assignment
|
complex16_t operator &=(complex16_t & other1, const complex16_t & other) // copy assignment
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user