Running srsRAN Project

Note

This guide outlines running srsRAN Project applications in a Split 8 deployment with a USRP, for Split 7.2 deployments see here.

Baseline Requirements

To successfully run an end-to-end network srsRAN Project applications you will need the following:

  • A PC with a Linux based OS (Ubuntu 22.04 or later)

  • A USRP device

  • srsRAN Project (see the Installation Guide)

  • A 3rd-party 5G core (we recommend Open5GS)

  • A 3rd-party 5G UE

Recommended:

  • External clock source

If you plan to connect the gNB to a COTS UE we recommend that you use an external clock source such as an Octoclock or GPSDO that is compatible with your RF-frontend, as the on-board clock within the USRP may not be accurate enough to enable a connection with the UE. This is discussed further in the relevant tutorial.


System Preparation

Before running any of srsRAN Project applications, we recommend tuning your system for best performance. We provide a script to configure known performance parameters:

The script does the following:

  1. Sets the scaling governor to performance

  2. Disables DRM KMS polling

  3. Tunes network buffers (Ethernet based USRPs only)

Run the script as follows from the main project folder:

sudo ./scripts/srsran_performance

Running srsRAN Project

If srsRAN Project has been installed using sudo make install or installed from packages then you will be able to run the gNB from anywhere on your machine.

If you have built srsRAN Project from source and have not installed it, then you can run the gNB from: /srsRAN_Project/build/apps/gnb. In this folder you will find the gNB application binary.

Run the gNB as follows, passing the YAML configuration file:

sudo ./gnb -c gnb_rf_b200_tdd_n78_10mhz.yml

Run the gNB with sudo to ensure threads are configured with the correct priority.

Example configuration files can be found in the configs/ folder in srsRAN Project codebase. For more information on the configuration files and the available parameters see the configuration reference.

When running, the gNB should generate the following console output:

Available radio types: uhd.

--== srsRAN gNB (commit 77be7d339) ==--

[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_4.2.0.HEAD-0-g197cdc4f
Making USRP object with args 'type=b200'
Cell pci=1, bw=10 MHz, dl_arfcn=632628 (n78), dl_freq=3489.42 MHz, dl_ssb_arfcn=632640, ul_freq=3489.42 MHz

==== gNodeB started ===
Type <t> to view trace

Entering t will enable the console trace, see here for more details.

Configuration parameters can also be passed on the command line. To see the list of options, use:

./gnb --help

For more information on running srsRAN Project, and configuring for various use-cases see the full list of tutorials.