Prerequisites

This section explains how to install the requirements needed for the execution of an OAI component in a host machine connected to a USRP.

In the case of the hardware installation tutorial using 2 NUCs, proceed with the execution of the steps below on both NUCs.

Before we start this section, we consider the host machine already have Ubuntu 18.04 server OS installed. Also, please DO NOT connect the USRP B210 device to the host machines yet. Otherwise, the host machine may not boot up.

Install Linux Image low-latency

$ sudo apt install linux-image-lowlatency linux-headers-lowlatency

Power management and CPU frequency configuration

To run on OAI, we must disable p-state and c-state in Linux. Go to /etc/default/grub file and add change GRUB_CMDLINE_LINUX_DEFAULT line as below:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable processor.max_cstate=1 intel_idle.max_cstate=0 idle=poll"

After save that file, we should command this:

$ sudo update-grub2

Next, go to /etc/modprobe.d/blacklist.conf file and append below at the end of the file:

# for OAI
blacklist intel_powerclamp

After that, reboot the NUC machine. When rebooting, we have to change the BIOS configuration. Go to the BIOS setup page and change some parameters:

  • Disable secure booting option

  • Disable hyperthreading

  • Enable virtualization

  • Disable all power management functions (c-/p-state related)

  • Enable real-time tuning and Intel Turbo boost Once it is done, we should save and exit. Then, we reboot NUC board again.

When NUC is up and running, we should install the below tool:

$ sudo apt-get install cpufrequtils

After the installation, go to /etc/default/cpufrequtils and write below:

GOVERNOR="performance"

NOTE: If the /etc/default/cpufrequtils file does not exist, we should make that file.

Next, we should command below:

$ sudo systemctl disable ondemand.service
$ sudo /etc/init.d/cpufrequtils restart

After that, we should reboot this machine again.

Verification of the power management and CPU frequency configuration

In order to verify configurations for the power management and CPU frequency, we should use i7z tool.

$ sudo apt install i7z
$ sudo i7z
True Frequency (without accounting Turbo) 1607 MHz
  CPU Multiplier 16x || Bus clock frequency (BCLK) 100.44 MHz

Socket [0] - [physical cores=6, logical cores=6, max online cores ever=6]
  TURBO ENABLED on 6 Cores, Hyper Threading OFF
  Max Frequency without considering Turbo 1707.44 MHz (100.44 x [17])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4/5/6 Cores is  47x/47x/41x/41x/39x/39x
  Real Current Frequency 3058.82 MHz [100.44 x 30.45] (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp      VCore
        Core 1 [0]:       3058.81 (30.45x)       100       0       0       0    64      0.9698
        Core 2 [1]:       3058.82 (30.45x)       100       0       0       0    63      0.9698
        Core 3 [2]:       3058.82 (30.45x)       100       0       0       0    64      0.9698
        Core 4 [3]:       3058.81 (30.45x)       100       0       0       0    64      0.9698
        Core 5 [4]:       3058.81 (30.45x)       100       0       0       0    65      0.9698
        Core 6 [5]:       3058.82 (30.45x)       100       0       0       0    62      0.9686

In the above results, we have to see that all cores should get C0% as 100 and Halt(C1)% as 0. If not, some of the above configuration are missing. Or, some of BIOS configurations are incorrect.

The steps above conclude the installation of OAI/USRP requirements.

Now, please connect the USRP B210 device to the host machines (usb 3.0).