Commit 817ee1a2 authored by Gabriele Gemmi's avatar Gabriele Gemmi

Cleanup of external dependencies in the installs script

Many useless dependencies have been removed or moved to the additional tools list of packages.
Xforms and ue-ip module must now be built explicitly
Removed support for Ubuntu 16. Addedd support for Debian 11 and Fedora 37

Squashed commits:

removed all unused dependencies
Applied patch from Robert + cleanup in the dependencies
Applied patch from Robert + cleanup in the dependencies
Moved xforms to optional packages, minor fixes
remvoed ue_ip module from ue build
fixes in the build script
styling fixes
Make RHEL8 ran-base build
- Use EPEL 8
- Inside container there is no sudo, so remove superfluous -H
- Install python3-mako
Working build on fedora 36
Make build by install xxd
Drop Ubuntu 16 support
add pip3 again
Correct software
Drop useless software, maybe drop python too
Fix: comment mistaken for package
Remove Netinterfaces from optional packages (Ubuntu)
Don't link xforms into 4G simulators: not needed
Install xmlstarlet, required for physims
Support for fedora 37
Remove irrelevant svn executable from physims
Option to compile UE ip kernel module
Install only relevant boost libs
Removed --skip-broken
Remove unnecessary vconfig,numpy,scipy dependencies
Remove packages that have been installed (pkg-config), python, awk
Remove unnecessary ntpsec package
addedd support for debian 11
styiling fixes
parent f984f493
...@@ -2377,7 +2377,7 @@ target_link_libraries(nr-softmodem PRIVATE ...@@ -2377,7 +2377,7 @@ target_link_libraries(nr-softmodem PRIVATE
-Wl,--end-group z dl) -Wl,--end-group z dl)
target_link_libraries(nr-softmodem PRIVATE ${LIBXML2_LIBRARIES}) target_link_libraries(nr-softmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(nr-softmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${CMAKE_DL_LIBS} ${ATLAS_LIBRARIES}) target_link_libraries(nr-softmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} sctp ${CMAKE_DL_LIBS} ${ATLAS_LIBRARIES})
target_link_libraries(nr-softmodem PRIVATE ${LIB_LMS_LIBRARIES}) target_link_libraries(nr-softmodem PRIVATE ${LIB_LMS_LIBRARIES})
target_link_libraries(nr-softmodem PRIVATE ${T_LIB}) target_link_libraries(nr-softmodem PRIVATE ${T_LIB})
target_link_libraries(nr-softmodem PRIVATE asn1_nr_rrc asn1_lte_rrc) target_link_libraries(nr-softmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
...@@ -2424,7 +2424,7 @@ target_link_libraries(nr-uesoftmodem PRIVATE ...@@ -2424,7 +2424,7 @@ target_link_libraries(nr-uesoftmodem PRIVATE
-Wl,--end-group z dl) -Wl,--end-group z dl)
target_link_libraries(nr-uesoftmodem PRIVATE ${LIBXML2_LIBRARIES}) target_link_libraries(nr-uesoftmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(nr-uesoftmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${XFORMS_LIBRARIES} ${CMAKE_DL_LIBS} ${ATLAS_LIBRARIES}) target_link_libraries(nr-uesoftmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS} ${ATLAS_LIBRARIES})
target_link_libraries(nr-uesoftmodem PRIVATE ${LIB_LMS_LIBRARIES}) target_link_libraries(nr-uesoftmodem PRIVATE ${LIB_LMS_LIBRARIES})
target_link_libraries(nr-uesoftmodem PRIVATE ${T_LIB}) target_link_libraries(nr-uesoftmodem PRIVATE ${T_LIB})
target_link_libraries(nr-uesoftmodem PRIVATE asn1_nr_rrc asn1_lte_rrc) target_link_libraries(nr-uesoftmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
...@@ -2465,7 +2465,7 @@ add_executable(rftest ...@@ -2465,7 +2465,7 @@ add_executable(rftest
${OPENAIR_DIR}/executables/softmodem-common.c ${OPENAIR_DIR}/executables/softmodem-common.c
${SHLIB_LOADER_SOURCES} ${SHLIB_LOADER_SOURCES}
) )
target_link_libraries(rftest PRIVATE minimal_lib CONFIG_LIB PHY_NR_COMMON UTIL pthread dl m forms ${T_LIB} ) target_link_libraries(rftest PRIVATE minimal_lib CONFIG_LIB PHY_NR_COMMON UTIL pthread dl m ${T_LIB} )
target_link_libraries(rftest PRIVATE asn1_lte_rrc asn1_nr_rrc) target_link_libraries(rftest PRIVATE asn1_lte_rrc asn1_nr_rrc)
add_executable(polartest add_executable(polartest
...@@ -2631,14 +2631,13 @@ foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim pr ...@@ -2631,14 +2631,13 @@ foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim pr
${OPENAIR_DIR}/common/utils/lte/ue_power.c ${OPENAIR_DIR}/common/utils/lte/ue_power.c
${OPENAIR_DIR}/common/utils/lte/prach_utils.c ${OPENAIR_DIR}/common/utils/lte/prach_utils.c
${OPENAIR1_DIR}/PHY/INIT/lte_param_init.c ${OPENAIR1_DIR}/PHY/INIT/lte_param_init.c
${XFORMS_SOURCE}
${T_SOURCE} ${T_SOURCE}
${SHLIB_LOADER_SOURCES} ${SHLIB_LOADER_SOURCES}
${NFAPI_USER_DIR}/nfapi.c ${NFAPI_USER_DIR}/nfapi.c
) )
target_link_libraries (${myExe} PRIVATE target_link_libraries (${myExe} PRIVATE
-Wl,--start-group SIMU UTIL SCHED_LIB SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_NR_COMMON PHY PHY_UE PHY_RU ITTI -Wl,--end-group -Wl,--start-group SIMU UTIL SCHED_LIB SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_NR_COMMON PHY PHY_UE PHY_RU ITTI -Wl,--end-group
pthread m rt CONFIG_LIB ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${T_LIB} dl pthread m rt CONFIG_LIB ${ATLAS_LIBRARIES} ${T_LIB} dl
) )
target_link_libraries(${myExe} PRIVATE asn1_nr_rrc asn1_lte_rrc) target_link_libraries(${myExe} PRIVATE asn1_nr_rrc asn1_lte_rrc)
......
...@@ -285,6 +285,10 @@ function main() { ...@@ -285,6 +285,10 @@ function main() {
--UE-gen-nvram) --UE-gen-nvram)
gen_nvram_path=$(readlink -f "$2") gen_nvram_path=$(readlink -f "$2")
shift 2;; shift 2;;
--UE-ip)
UE_ip=1
echo_info "Will compile UE"
shift;;
-w | --hardware) -w | --hardware)
# Use OAI_USRP as the key word USRP is used inside UHD driver # Use OAI_USRP as the key word USRP is used inside UHD driver
case "$2" in case "$2" in
...@@ -588,7 +592,7 @@ function main() { ...@@ -588,7 +592,7 @@ function main() {
echo_info "Compiling UE specific part" echo_info "Compiling UE specific part"
if [ $IS_CONTAINER -eq 0 ] if [ $UE_ip -eq 1 ]
then then
echo_info "Building ue_ip module" echo_info "Building ue_ip module"
compilations $BUILD_DIR ue_ip compilations $BUILD_DIR ue_ip
......
...@@ -32,8 +32,8 @@ OS_DISTRO=$(grep "^ID=" /etc/os-release | sed "s/ID=//" | sed "s/\"//g") ...@@ -32,8 +32,8 @@ OS_DISTRO=$(grep "^ID=" /etc/os-release | sed "s/ID=//" | sed "s/\"//g")
OS_RELEASE=$(grep "^VERSION_ID=" /etc/os-release | sed "s/VERSION_ID=//" | sed "s/\"//g") OS_RELEASE=$(grep "^VERSION_ID=" /etc/os-release | sed "s/VERSION_ID=//" | sed "s/\"//g")
case "$OS_DISTRO" in case "$OS_DISTRO" in
fedora) OS_BASEDISTRO="fedora"; INSTALLER="dnf"; CMAKE="cmake" ;; fedora) OS_BASEDISTRO="fedora"; INSTALLER="dnf"; CMAKE="cmake" ;;
rhel) OS_BASEDISTRO="fedora"; INSTALLER="yum --skip-broken"; CMAKE="cmake3" ;; rhel) OS_BASEDISTRO="fedora"; INSTALLER="yum"; CMAKE="cmake3" ;;
centos) OS_BASEDISTRO="centos"; INSTALLER="yum --skip-broken"; CMAKE="cmake3" ;; centos) OS_BASEDISTRO="centos"; INSTALLER="yum"; CMAKE="cmake3" ;;
debian) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;; debian) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;;
ubuntu) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;; ubuntu) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;;
esac esac
...@@ -90,7 +90,6 @@ echo_info() { cecho "$*" $blue ;} ...@@ -90,7 +90,6 @@ echo_info() { cecho "$*" $blue ;}
# If we can't check the distribution, it returns "Unknown" # If we can't check the distribution, it returns "Unknown"
# This function return always true as exit code by design # This function return always true as exit code by design
# Examples: # Examples:
# ubuntu16.04
# debian8.5 # debian8.5
get_distribution_release() { get_distribution_release() {
if [[ ! -z "$OS_DISTRO$OS_RELEASE" ]]; then if [[ ! -z "$OS_DISTRO$OS_RELEASE" ]]; then
...@@ -107,9 +106,9 @@ check_supported_distribution() { ...@@ -107,9 +106,9 @@ check_supported_distribution() {
"ubuntu21.04") return 0 ;; "ubuntu21.04") return 0 ;;
"ubuntu20.04") return 0 ;; "ubuntu20.04") return 0 ;;
"ubuntu18.04") return 0 ;; "ubuntu18.04") return 0 ;;
"ubuntu16.04") return 0 ;; "debian11") return 0 ;;
"fedora35") return 0 ;;
"fedora36") return 0 ;; "fedora36") return 0 ;;
"fedora37") return 0 ;;
"rhel7") return 0 ;; "rhel7") return 0 ;;
"rhel7.6") return 0 ;; "rhel7.6") return 0 ;;
"rhel7.7") return 0 ;; "rhel7.7") return 0 ;;
...@@ -306,7 +305,8 @@ install_usrp_uhd_driver_from_source(){ ...@@ -306,7 +305,8 @@ install_usrp_uhd_driver_from_source(){
} }
check_install_usrp_uhd_driver(){ check_install_usrp_uhd_driver(){
if [[ "$OS_DISTRO" == "ubuntu" ]]; then if [[ "$OS_BASEDISTRO" == "debian" ]]; then
boost_libs_ubuntu="libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libboost-test-dev libboost-regex-dev"
#first we remove old installation #first we remove old installation
$SUDO apt-get remove uhd -y || true $SUDO apt-get remove uhd -y || true
$SUDO apt-get remove uhd-host -y || true $SUDO apt-get remove uhd-host -y || true
...@@ -323,8 +323,8 @@ check_install_usrp_uhd_driver(){ ...@@ -323,8 +323,8 @@ check_install_usrp_uhd_driver(){
fi fi
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"
if [[ -v BUILD_UHD_FROM_SOURCE ]]; then if [[ -v BUILD_UHD_FROM_SOURCE ]] || [[ "$OS_DISTRO" == "debian" ]]; then
$SUDO apt-get install -y libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-setuptools ninja-build $SUDO apt-get install -y $boost_libs_ubuntu libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-setuptools ninja-build
install_usrp_uhd_driver_from_source install_usrp_uhd_driver_from_source
return return
fi fi
...@@ -346,22 +346,20 @@ check_install_usrp_uhd_driver(){ ...@@ -346,22 +346,20 @@ check_install_usrp_uhd_driver(){
x=$((x + 1)) x=$((x + 1))
done done
$SUDO apt-get update $SUDO apt-get update
$SUDO apt-get -y install python-tk libboost-all-dev libusb-1.0-0-dev $SUDO apt-get -y install python-tk $boost_libs_ubuntu libusb-1.0-0-dev
case "$(get_distribution_release)" in case "$(get_distribution_release)" in
"ubuntu16.04")
$SUDO apt-get -y install libuhd-dev libuhd3.15.0 uhd-host
;;
"ubuntu18.04" | "ubuntu20.04" | "ubuntu22.04") "ubuntu18.04" | "ubuntu20.04" | "ubuntu22.04")
$SUDO apt-get -y install libuhd-dev libuhd4.2.0 uhd-host $SUDO apt-get -y install libuhd-dev libuhd4.2.0 uhd-host
;; ;;
esac esac
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
boost_libs_fedora="boost-chrono boost-date-time boost-filesystem boost-program-options boost-thread boost-test boost-regex boost-devel"
if [ $IS_CONTAINER -eq 0 ] if [ $IS_CONTAINER -eq 0 ]
then then
$SUDO $INSTALLER -y install python boost libusb-devel libusbx-devel boost-devel python-mako python-docutils $CMAKE $SUDO $INSTALLER -y install python3 $boost_libs_fedora libusb-devel libusbx-devel python3-mako python3-docutils python3-pip $CMAKE
$SUDO -H pip install requests $SUDO pip3 install requests
else else
$SUDO $INSTALLER -y install boost boost-devel $CMAKE $SUDO $INSTALLER -y install $boost_libs_fedora $CMAKE
$SUDO pip3 install mako requests $SUDO pip3 install mako requests
fi fi
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
...@@ -419,6 +417,8 @@ install_bladerf_driver_from_source(){ ...@@ -419,6 +417,8 @@ install_bladerf_driver_from_source(){
$SUDO ldconfig $SUDO ldconfig
echo "Downloading FPGA and firmware images" echo "Downloading FPGA and firmware images"
cd /tmp/bladeRF cd /tmp/bladeRF
#wget has been removed from default dependencies, so we must be sure that's installed
$SUDO $INSTALLER -y install wget
wget --tries=3 --retry-connrefused https://www.nuand.com/fx3/bladeRF_fw_latest.img wget --tries=3 --retry-connrefused https://www.nuand.com/fx3/bladeRF_fw_latest.img
wget --tries=3 --retry-connrefused https://www.nuand.com/fpga/hostedx40-latest.rbf wget --tries=3 --retry-connrefused https://www.nuand.com/fpga/hostedx40-latest.rbf
sudo mkdir -p /usr/share/Nuand/bladeRF sudo mkdir -p /usr/share/Nuand/bladeRF
...@@ -529,110 +529,42 @@ check_install_soapy () { ...@@ -529,110 +529,42 @@ check_install_soapy () {
check_install_additional_tools (){ check_install_additional_tools (){
$SUDO $INSTALLER update -y $SUDO $INSTALLER update -y
local optional_packages="" local optional_packages=""
if [[ "$OS_DISTRO" == "ubuntu" ]]; then if [[ "$OS_BASEDISTRO" == "debian" ]]; then
case "$(get_distribution_release)" in case "$(get_distribution_release)" in
"ubuntu16.04"| "ubuntu18.04") "ubuntu18.04")
optional_packages="python-dev python-pexpect python-numpy python-scipy python-matplotlib ctags" optional_packages="python-dev python-pip python-pyroute2 python python-numpy python-scipy python-matplotlib ctags"
;; ;;
"ubuntu20.04" | "ubuntu21.04" | "ubuntu22.04" ) "ubuntu20.04" | "ubuntu21.04" | "ubuntu22.04" | "debian11" )
optional_packages="python3 python3-pip python3-dev python3-scipy python3-matplotlib universal-ctags" optional_packages="python3 python3-pip python3-dev python3-scipy python3-matplotlib python3-pyroute2 universal-ctags"
;; ;;
esac esac
PACKAGE_LIST="\ PACKAGE_LIST="\
check \ doxygen \
dialog \
dkms \
gawk \
libboost-all-dev \
libpthread-stubs0-dev \ libpthread-stubs0-dev \
openvpn \
pkg-config \
sshfs \
swig \
tshark \ tshark \
uml-utilities \ uml-utilities \
unzip \
valgrind \
vlan \
ntpdate \
iperf3 \ iperf3 \
android-tools-adb \ libforms-bin \
wvdial \ libforms-dev \
sshpass \ xmlstarlet"
bc \
ntp"
elif [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then elif [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
PACKAGE_LIST="\ PACKAGE_LIST="\
check \ doxygen \
dialog \
dkms \
gawk \
boost-devel \
openvpn \
pkgconfig \
pexpect \
sshfs \
swig \
wireshark \
unzip \
valgrind \
vconfig \
ctags \ ctags \
ntpdate \
iperf3 \ iperf3 \
wvdial \ xforms \
numpy \ xforms-devel \
sshpass \ xmlstarlet"
python2-paramiko \
python-pyroute2 \
python-netifaces \
scipy \
python-matplotlib"
elif [[ "$OS_DISTRO" == "fedora" ]]; then elif [[ "$OS_DISTRO" == "fedora" ]]; then
PACKAGE_LIST=" \ PACKAGE_LIST=" \
check \ doxygen \
dialog \
dkms \
gawk \
boost-devel \
openvpn \
pkgconfig \
python-pexpect \
sshfs \
swig \
wireshark \
unzip \
valgrind \
vconfig \
ctags \ ctags \
ntpsec \
iperf3 \ iperf3 \
wvdial \ xforms \
python-numpy \ xforms-devel \
sshpass \ xmlstarlet"
python-paramiko \
python-pyroute2 \
python-netifaces \
python-scipy \
python-matplotlib"
fi fi
$SUDO $INSTALLER install -y $PACKAGE_LIST $optional_packages $SUDO $INSTALLER install -y $PACKAGE_LIST $optional_packages
#The packages below are already installed for Redhat distros (RHEL, CentOS, Fedora)
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
$SUDO -H pip install paramiko
$SUDO -H pip install pyroute2 colorama
log_netiface=$OPENAIR_DIR/cmake_targets/log/netiface_install_log.txt
echo_info "Installing Netinterfaces package. The logfile for installation is in $log_netiface"
(
$SUDO rm -fr /tmp/netifaces-0.10.4.tar.gz /tmp/netifaces
wget --tries=3 --retry-connrefused -P /tmp https://pypi.python.org/packages/18/fa/dd13d4910aea339c0bb87d2b3838d8fd923c11869b1f6e741dbd0ff3bc00/netifaces-0.10.4.tar.gz
tar -xzvf /tmp/netifaces-0.10.4.tar.gz -C /tmp
cd /tmp/netifaces-0.10.4
$SUDO python setup.py install
cd -
) >& $log_netiface
fi
} }
check_install_oai_software() { check_install_oai_software() {
...@@ -642,91 +574,48 @@ check_install_oai_software() { ...@@ -642,91 +574,48 @@ check_install_oai_software() {
exit 1 exit 1
fi fi
$SUDO $INSTALLER update -y $SUDO $INSTALLER update -y
if [[ "$OS_DISTRO" == "ubuntu" ]]; then if [[ "$OS_BASEDISTRO" == "debian" ]]; then
local LAPACK_LIBNAME="liblapack.so"
local LAPACK_TARGET="/usr/lib/atlas-base/atlas/liblapack.so"
$SUDO apt install -y software-properties-common $SUDO apt install -y software-properties-common
case "$(get_distribution_release)" in case "$(get_distribution_release)" in
"ubuntu16.04")
specific_packages="libtasn1-6-dev libgnutls-dev libatlas-dev iproute libconfig8-dev iptables-dev libgcrypt11-dev python-pip pydb python guile-2.0-dev"
;;
"ubuntu18.04") "ubuntu18.04")
specific_packages="libtasn1-6-dev libgnutls28-dev iproute2 libconfig-dev iptables-dev libgcrypt11-dev python-pip pydb python guile-2.0-dev" specific_packages="libgcrypt11-dev guile-2.0-dev"
LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu"
LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so"
;; ;;
"ubuntu20.04") "ubuntu20.04")
specific_packages="libtasn1-6-dev libgnutls28-dev iproute2 libconfig-dev python guile-2.0-dev" specific_packages="guile-2.0-dev"
LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu"
LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so"
;; ;;
"ubuntu21.04") "ubuntu21.04")
specific_packages="libtasn1-6-dev libgnutls28-dev iproute2 libconfig-dev python guile-2.0-dev" specific_packages="guile-2.0-dev"
LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu"
LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so"
;; ;;
"ubuntu22.04") "ubuntu22.04")
specific_packages="libtasn1-6-dev libgnutls28-dev iproute2 libconfig-dev python2 guile-2.2-dev" specific_packages="guile-2.2-dev"
LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu" ;;
LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so" "debian11")
specific_packages="guile-2.2-dev libz-dev"
;; ;;
esac esac
$SUDO apt-get install -y \ $SUDO apt-get install -y \
$specific_packages \ $specific_packages \
autoconf \
automake \ automake \
bison \
build-essential \ build-essential \
$CMAKE \ $CMAKE \
cmake-curses-gui \
curl \
ninja-build \ ninja-build \
doxygen \ pkg-config \
doxygen-gui \
texlive-latex-base \
ethtool \
flex \
g++ \
gcc \
gdb \
git \ git \
graphviz \
gtkwave \
iperf \
iptables \
libatlas-base-dev \ libatlas-base-dev \
libblas-dev \ libblas-dev \
liblapack-dev \ liblapack-dev \
liblapacke-dev \ liblapacke-dev \
libffi-dev \ libreadline-dev \
libforms-bin \ libgnutls28-dev \
libforms-dev \ libconfig-dev \
libgmp-dev \
libgtk-3-dev \
libidn2-0-dev \
libidn11-dev \
libmysqlclient-dev \
libpython2.7-dev \
libreadline-dev \
libsctp1 \
libsctp-dev \ libsctp-dev \
libssl-dev \ libssl-dev \
libtool \ libtool \
libusb-1.0-0-dev \
libxml2 \
libxml2-dev \
libxslt1-dev \ libxslt1-dev \
octave-signal \ libtasn1-6-dev \
openssh-client \ patch \
openssh-server \
openssl \ openssl \
subversion \ xxd
xmlstarlet \
wget \
libxpm-dev \
libboost-all-dev
$SUDO update-alternatives --set "$LAPACK_LIBNAME" "$LAPACK_TARGET"
$SUDO apt-get install -y nettle-dev nettle-bin $SUDO apt-get install -y nettle-dev nettle-bin
elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then elif [[ "$OS_BASEDISTRO" == "fedora" ]]; then
...@@ -735,74 +624,40 @@ check_install_oai_software() { ...@@ -735,74 +624,40 @@ check_install_oai_software() {
echo "EPEL repos already present. Good." echo "EPEL repos already present. Good."
else else
echo "EPEL repos not present. Installing them." echo "EPEL repos not present. Installing them."
$SUDO $INSTALLER install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $SUDO $INSTALLER install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
fi fi
$SUDO $INSTALLER install -y python-epdb vim-common
fi fi
$SUDO $INSTALLER install -y \ $SUDO $INSTALLER install -y \
autoconf \
automake \ automake \
bc \
bison \
$CMAKE \ $CMAKE \
doxygen \
ethtool \
flex \
g++ \
gcc \ gcc \
gdb \ gcc-c++ \
git \ git \
graphviz \
gtkwave \
guile-devel \ guile-devel \
iperf \
iproute \
iptables \
iptables-devel \
atlas-devel \ atlas-devel \
blas-devel \ pkgconfig \
libconfig-devel \ libconfig-devel \
libffi-devel \ libffi-devel \
xforms \
xforms-devel \
libgcrypt-devel \ libgcrypt-devel \
gmp-devel \
gtk3-devel \
libidn2-devel \
libidn-devel \
mariadb-devel \
lksctp-tools \ lksctp-tools \
lksctp-tools-devel \ lksctp-tools-devel \
openssl-devel \ openssl-devel \
libtasn1 \ libtasn1 \
libtool \ libtool \
libusb-devel \
libxml2 \
libxml2-devel \
libxslt-devel \ libxslt-devel \
ninja-build \ ninja-build \
make \ make \
openssh-clients \
openssh-server \
openssl \ openssl \
patch \ patch \
psmisc \
python \
readline-devel \ readline-devel \
subversion \
xmlstarlet \
python-pip \
wget \
kernel-headers \
kernel-devel \
nettle-devel \ nettle-devel \
gnutls-devel \ gnutls-devel \
libXpm-devel \
lapack \ lapack \
lapack-devel \ lapack-devel \
blas \ blas \
blas-devel blas-devel \
vim-common
fi fi
install_asn1c_from_source $1 install_asn1c_from_source $1
......
...@@ -68,5 +68,5 @@ COPY . . ...@@ -68,5 +68,5 @@ COPY . .
RUN /bin/sh oaienv && \ RUN /bin/sh oaienv && \
cd cmake_targets && \ cd cmake_targets && \
mkdir -p log && \ mkdir -p log && \
./build_oai -I -w USRP && \ ./build_oai -I --install-optional-packages -w USRP && \
rm /etc/pki/entitlement/*pem rm /etc/pki/entitlement/*pem
...@@ -57,4 +57,4 @@ COPY . . ...@@ -57,4 +57,4 @@ COPY . .
RUN /bin/sh oaienv && \ RUN /bin/sh oaienv && \
cd cmake_targets && \ cd cmake_targets && \
mkdir -p log && \ mkdir -p log && \
./build_oai -I -w USRP ./build_oai -I -w USRP --install-optional-packages
...@@ -101,7 +101,6 @@ WORKDIR /usr/bin/ ...@@ -101,7 +101,6 @@ WORKDIR /usr/bin/
COPY --from=phy-sim-build \ COPY --from=phy-sim-build \
/usr/bin/killall \ /usr/bin/killall \
/usr/bin/xmlstarlet \ /usr/bin/xmlstarlet \
/usr/bin/svn \
./ ./
# Copy the relevant configuration files for phySim # Copy the relevant configuration files for phySim
......
...@@ -68,7 +68,6 @@ unsigned short config_frames[4] = {2,9,11,13}; ...@@ -68,7 +68,6 @@ unsigned short config_frames[4] = {2,9,11,13};
#include <openair2/GNB_APP/gnb_app.h> #include <openair2/GNB_APP/gnb_app.h>
#include "PHY/TOOLS/phy_scope_interface.h" #include "PHY/TOOLS/phy_scope_interface.h"
#include "PHY/TOOLS/nr_phy_scope.h" #include "PHY/TOOLS/nr_phy_scope.h"
#include "stats.h"
#include "nr-softmodem.h" #include "nr-softmodem.h"
#include "executables/softmodem-common.h" #include "executables/softmodem-common.h"
#include "executables/thread-common.h" #include "executables/thread-common.h"
......
...@@ -49,7 +49,6 @@ ...@@ -49,7 +49,6 @@
#include "PHY/MODULATION/modulation_common.h" #include "PHY/MODULATION/modulation_common.h"
#include "PHY/MODULATION/modulation_eNB.h" #include "PHY/MODULATION/modulation_eNB.h"
#include "PHY/MODULATION/modulation_UE.h" #include "PHY/MODULATION/modulation_UE.h"
#include "PHY/TOOLS/lte_phy_scope.h"
#include "SCHED/sched_eNB.h" #include "SCHED/sched_eNB.h"
#include "SCHED_UE/sched_UE.h" #include "SCHED_UE/sched_UE.h"
#include "SIMULATION/TOOLS/sim.h" #include "SIMULATION/TOOLS/sim.h"
...@@ -493,7 +492,6 @@ int test_perf=0; ...@@ -493,7 +492,6 @@ int test_perf=0;
int n_frames; int n_frames;
int n_ch_rlz = 1; int n_ch_rlz = 1;
int rx_sample_offset = 0; int rx_sample_offset = 0;
int xforms=0;
int dump_table=0; int dump_table=0;
int loglvl=OAILOG_INFO; int loglvl=OAILOG_INFO;
int mcs1=0,mcs2=0,mcs_i=0,dual_stream_UE = 0,awgn_flag=0; int mcs1=0,mcs2=0,mcs_i=0,dual_stream_UE = 0,awgn_flag=0;
...@@ -565,7 +563,6 @@ int main(int argc, char **argv) { ...@@ -565,7 +563,6 @@ int main(int argc, char **argv) {
short *uncoded_ber_bit=NULL; short *uncoded_ber_bit=NULL;
int osf=1; int osf=1;
frame_t frame_type = FDD; frame_t frame_type = FDD;
FD_lte_phy_scope_ue *form_ue = NULL;
char title[255]; char title[255];
int numCCE=0; int numCCE=0;
//int dci_length_bytes=0,dci_length=0; //int dci_length_bytes=0,dci_length=0;
...@@ -679,7 +676,6 @@ int main(int argc, char **argv) { ...@@ -679,7 +676,6 @@ int main(int argc, char **argv) {
{ "uEdual", "Enables the Interference Aware Receiver for TM5 (default is normal receiver)",0, iptr:NULL, defintval:0, TYPE_INT, 0 }, { "uEdual", "Enables the Interference Aware Receiver for TM5 (default is normal receiver)",0, iptr:NULL, defintval:0, TYPE_INT, 0 },
{ "xTransmission","Transmission mode (1,2,6,7 for the moment)",0, iptr:NULL, defintval:25, TYPE_INT, 0 }, { "xTransmission","Transmission mode (1,2,6,7 for the moment)",0, iptr:NULL, defintval:25, TYPE_INT, 0 },
{ "yn_tx_phy","Number of TX antennas used in eNB",0, iptr:NULL, defintval:25, TYPE_INT, 0 }, { "yn_tx_phy","Number of TX antennas used in eNB",0, iptr:NULL, defintval:25, TYPE_INT, 0 },
{ "XForms", "Display the soft scope", PARAMFLAG_BOOL, iptr:&xforms, defintval:0, TYPE_INT, 0 },
{ "Yperfect_ce","Perfect CE", PARAMFLAG_BOOL, iptr:&perfect_ce, defintval:0, TYPE_INT, 0 }, { "Yperfect_ce","Perfect CE", PARAMFLAG_BOOL, iptr:&perfect_ce, defintval:0, TYPE_INT, 0 },
{ "Zdump", "dump table",PARAMFLAG_BOOL, iptr:&dump_table, defintval:0, TYPE_INT, 0 }, { "Zdump", "dump table",PARAMFLAG_BOOL, iptr:&dump_table, defintval:0, TYPE_INT, 0 },
{ "Loglvl", "log level",0, iptr:&loglvl, defintval:OAILOG_INFO, TYPE_INT, 0 }, { "Loglvl", "log level",0, iptr:&loglvl, defintval:OAILOG_INFO, TYPE_INT, 0 },
...@@ -952,24 +948,6 @@ int main(int argc, char **argv) { ...@@ -952,24 +948,6 @@ int main(int argc, char **argv) {
AssertFatal(NB_RB <= N_RB_DL,"illegal NB_RB %d\n",NB_RB); AssertFatal(NB_RB <= N_RB_DL,"illegal NB_RB %d\n",NB_RB);
} }
if (xforms==1) {
fl_initialize (&argc, argv, NULL, 0, 0);
form_ue = create_lte_phy_scope_ue();
sprintf (title, "LTE PHY SCOPE eNB");
fl_show_form (form_ue->lte_phy_scope_ue, FL_PLACE_HOTSPOT, FL_FULLBORDER, title);
if (!dual_stream_UE==0) {
if (UE) {
UE->use_ia_receiver = 1;
fl_set_button(form_ue->button_0,1);
fl_set_object_label(form_ue->button_0, "IA Receiver ON");
fl_set_object_color(form_ue->button_0, FL_GREEN, FL_GREEN);
} else {
printf("UE is NULL\n");
exit(-1);
}
}
}
if (transmission_mode==5) { if (transmission_mode==5) {
n_users = 2; n_users = 2;
...@@ -1792,13 +1770,6 @@ int main(int argc, char **argv) { ...@@ -1792,13 +1770,6 @@ int main(int argc, char **argv) {
// UE->dlsch[UE->current_thread_id[subframe]][0][0]->harq_processes[0]->round++; // UE->dlsch[UE->current_thread_id[subframe]][0][0]->harq_processes[0]->round++;
} }
if (xforms==1) {
phy_scope_UE(form_ue,
UE,
eNB_id,
0,// UE_id
subframe);
}
UE->proc.proc_rxtx[UE->current_thread_id[subframe]].frame_rx++; UE->proc.proc_rxtx[UE->current_thread_id[subframe]].frame_rx++;
} //round } //round
......
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#include "PHY/INIT/phy_init.h" #include "PHY/INIT/phy_init.h"
#include "PHY/LTE_TRANSPORT/transport_proto.h" #include "PHY/LTE_TRANSPORT/transport_proto.h"
#include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h" #include "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
#include "PHY/TOOLS/lte_phy_scope.h"
#include "SCHED/sched_eNB.h" #include "SCHED/sched_eNB.h"
#include "SCHED_UE/sched_UE.h" #include "SCHED_UE/sched_UE.h"
#include "SIMULATION/TOOLS/sim.h" #include "SIMULATION/TOOLS/sim.h"
...@@ -69,18 +68,15 @@ double cpuf; ...@@ -69,18 +68,15 @@ double cpuf;
#include <openair1/SIMULATION/LTE_PHY/common_sim.h> #include <openair1/SIMULATION/LTE_PHY/common_sim.h>
channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX]; channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX];
channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX]; channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX];
//Added for PHY abstractionopenair1/PHY/TOOLS/lte_phy_scope.h
node_desc_t *enb_data[NUMBER_OF_eNB_MAX]; node_desc_t *enb_data[NUMBER_OF_eNB_MAX];
node_desc_t *ue_data[NUMBER_OF_UE_MAX]; node_desc_t *ue_data[NUMBER_OF_UE_MAX];
//double sinr_bler_map[MCS_COUNT][2][16]; //double sinr_bler_map[MCS_COUNT][2][16];
extern uint16_t beta_ack[16],beta_ri[16],beta_cqi[16]; extern uint16_t beta_ack[16],beta_ri[16],beta_cqi[16];
//extern char* namepointer_chMag ; //extern char* namepointer_chMag ;
int xforms=0;
THREAD_STRUCT thread_struct; THREAD_STRUCT thread_struct;
nfapi_ue_release_request_body_t release_rntis; nfapi_ue_release_request_body_t release_rntis;
FD_lte_phy_scope_enb *form_enb;
char title[255]; char title[255];
/*the following parameters are used to control the processing times*/ /*the following parameters are used to control the processing times*/
...@@ -435,7 +431,6 @@ int main(int argc, char **argv) { ...@@ -435,7 +431,6 @@ int main(int argc, char **argv) {
{ "delay_chan", "Channel delay",0, iptr:&delay, defintval:0, TYPE_INT, 0 }, { "delay_chan", "Channel delay",0, iptr:&delay, defintval:0, TYPE_INT, 0 },
{ "Doppler", "Maximum doppler shift",0, dblptr:&maxDoppler, defdblval:0.0, TYPE_DOUBLE, 0 }, { "Doppler", "Maximum doppler shift",0, dblptr:&maxDoppler, defdblval:0.0, TYPE_DOUBLE, 0 },
{ "Zdump", "dump table",PARAMFLAG_BOOL, iptr:&dump_table, defintval:0, TYPE_INT, 0 }, { "Zdump", "dump table",PARAMFLAG_BOOL, iptr:&dump_table, defintval:0, TYPE_INT, 0 },
{ "Forms", "Display the soft scope", PARAMFLAG_BOOL, iptr:&xforms, defintval:0, TYPE_INT, 0 },
{ "Lparallel", "Enable parallel execution",0, strptr:NULL, defstrval:NULL, TYPE_STRING, 0 }, { "Lparallel", "Enable parallel execution",0, strptr:NULL, defstrval:NULL, TYPE_STRING, 0 },
{ "Iterations", "Number of iterations of turbo decoder", 0, iptr:&max_turbo_iterations, defintval:4, TYPE_INT, 0 }, { "Iterations", "Number of iterations of turbo decoder", 0, iptr:&max_turbo_iterations, defintval:4, TYPE_INT, 0 },
{ "Performance", "Display CPU perfomance of each L1 piece", PARAMFLAG_BOOL, iptr:NULL, defintval:0, TYPE_INT, 0 }, { "Performance", "Display CPU perfomance of each L1 piece", PARAMFLAG_BOOL, iptr:NULL, defintval:0, TYPE_INT, 0 },
...@@ -695,13 +690,6 @@ int main(int argc, char **argv) { ...@@ -695,13 +690,6 @@ int main(int argc, char **argv) {
fprintf(csv_fdUL,"data_all%d=[",mcs); fprintf(csv_fdUL,"data_all%d=[",mcs);
} }
if (xforms==1) {
fl_initialize (&argc, argv, NULL, 0, 0);
form_enb = create_lte_phy_scope_enb();
sprintf (title, "LTE PHY SCOPE eNB");
fl_show_form (form_enb->lte_phy_scope_enb, FL_PLACE_HOTSPOT, FL_FULLBORDER, title);
}
UE->pdcch_vars[0][0]->crnti = 14; UE->pdcch_vars[0][0]->crnti = 14;
UE->frame_parms.soundingrs_ul_config_common.enabled_flag = srs_flag; UE->frame_parms.soundingrs_ul_config_common.enabled_flag = srs_flag;
UE->frame_parms.soundingrs_ul_config_common.srs_BandwidthConfig = 2; UE->frame_parms.soundingrs_ul_config_common.srs_BandwidthConfig = 2;
...@@ -1265,9 +1253,6 @@ int main(int argc, char **argv) { ...@@ -1265,9 +1253,6 @@ int main(int argc, char **argv) {
if ((errs[0]>=100) && (trials>(n_frames/2))) if ((errs[0]>=100) && (trials>(n_frames/2)))
break; break;
if (xforms==1)
phy_scope_eNB(form_enb,eNB,0);
double t_tx = inMicroS(UE->phy_proc_tx.p_time); double t_tx = inMicroS(UE->phy_proc_tx.p_time);
double t_tx_ifft = inMicroS(UE->ofdm_mod_stats.p_time); double t_tx_ifft = inMicroS(UE->ofdm_mod_stats.p_time);
double t_tx_mod = inMicroS(UE->ulsch_modulation_stats.p_time); double t_tx_mod = inMicroS(UE->ulsch_modulation_stats.p_time);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment