Skip to main content

Installation Guide

The following steps need to be taken in order to download and build OCUDU:

  1. Install dependencies
  2. Install RF driver (only required for Split 8 deployments)
  3. Clone the repository
  4. Build the codebase

note

OCUDU requires a Linux-based OS, we recommend Ubuntu (22.04 or later).

Build Tools and Dependencies

OCUDU uses CMake and C++17. We recommend the following build tools:

OCUDU has the following necessary dependencies:

You can install the required build tools and dependencies for various distributions as follows:

sudo apt-get install cmake make gcc g++ pkg-config libmbedtls-dev libsctp-dev libyaml-cpp-dev libgtest-dev

It is also recommended users install the following (although they are not required):

  • Ccache: This will help to speed up re-compilation
  • backward-cpp: This library helps to generate more informative backtraces in the stdout if an error occurs during runtime

FFT Library

OCUDU requires one of the following libraries for FFT calculation:

libfftw

sudo apt-get install libfftw3-dev

oneMKL

sudo apt update
sudo apt install -y gpg-agent wget
wget -O- <https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB> | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] <https://apt.repos.intel.com/oneapi> all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update
sudo apt install intel-oneapi-mkl-devel libomp-dev

AOCL-FFTZ

AOCL_FFTW_VERSION="5.2"
sudo apt update
sudo apt install -y wget autoconf automake make libtool
pushd /tmp
wget --no-check-certificate "https://github.com/amd/amd-fftw/archive/refs/tags/5.2.tar.gz" -O "amd-fftw-5.2.tar.gz"
tar -xzf amd-fftw-5.2.tar.gz
rm -f amd-fftw-5.2.tar.gz
cd amd-fftw-5.2
./configure --enable-sse2 --enable-avx --enable-avx2 --enable-avx512 \
--enable-openmp --enable-shared --enable-amd-opt \
--enable-dynamic-dispatcher --prefix=/usr/local
make -j"$(nproc)"
make install
popd
rm -rf /tmp/amd-fftw-5.2
ldconfig

ARMPL

sudo apt update
sudo apt install -y environment-modules wget
pushd /tmp
wget <https://developer.arm.com/-/cdn-downloads/permalink/Arm-Performance-Libraries/Version_24.10/arm-performance-libraries_24.10_deb_gcc.tar>
tar -xf arm-performance-libraries_24.10_deb_gcc.tar
cd arm-performance-libraries_24.10_deb/
./arm-performance-libraries_24.10_deb.sh --accept
popd
rm -Rf /tmp/arm-performance-libraries_24.10_deb
source /usr/share/modules/init/bash
export MODULEPATH=$MODULEPATH:/opt/arm/modulefiles
module avail
module load armpl/24.10.0_gcc

RF-drivers

note

UHD and/or ZMQ are only required for Split 8 deployments, if you are planning on using a Split 7.2 deployment you may skip this step.

OCUDU uses RF drivers to support different radio types. Currently, only UHD and ZMQ are supported:

  • UHD (We recommended the LTS version of UHD, i.e. either 3.15 or 4.0.)
  • ZMQ

Clone and Build

OCUDU can be built with certain features enabled or disabled. This is done during the build process by using CMake flags and/or by downloading third party dependencies prior to building the code. The following sections outline these various build options.

First, clone OCUDU repository:

git clone https://gitlab.com/ocudu/ocudu.git

Then build the code-base:

cd ocudu
mkdir build
cd build
cmake ../
make -j $(nproc)
make test -j $(nproc)

You can now run the gNB from ocudu/build/apps/gnb/. If you wish to install OCUDU, you can use the following command:

sudo make install

First, clone OCUDU repository:

git clone https://gitlab.com/ocudu/ocudu.git

Then build the code-base:

cd ocudu
mkdir build
cd build
cmake ../
make -j $(nproc)
make test -j $(nproc)

You can now run the gNB from ocudu/build/apps/gnb/. If you wish to install OCUDU, you can use the following command:

sudo make install

The Running OCUDU section of the documentation further discusses how to configure and run the gNB application.


Packages

OCUDU is available to download directly from packages for various linux distributions. Users looking for a simple installation who do not wish to edit the source code should use the package installation.

Ubuntu users can download OCUDU packages using the following commands:

sudo add-apt-repository ppa:softwareradiosystems/srsran-project
sudo apt-get update
sudo apt-get install srsran-project -y

This will install the latest version of OCUDU from git.

When installed from packages, example configs for OCUDU can be found in /usr/share/srsran. For info on these config files, see here

The application can then be run using:

sudo gnb -c <config file>

PHY testvectors

A number of PHY tests are based on MATLAB generated testvectors. By default, those tests are disabled. The following steps are required to enable them:

  1. Download the latest PHY testvector set.
  2. Extract the PHY testvectors to their location within the srsRAN working directory:
tar -xf phy_testvectors.tar -C /path_to_your_local_repository/srsRAN_Project
  1. Enable the use of the PHY testvectors by regenerating the CMake build system:
cmake -B build -DUSE_PHY_TESTVECTORS=ON
  1. Rebuild OCUDU.