Skip to content
astro edited this page Apr 22, 2018 · 2 revisions

oai5g

Open Air Interface (OAI) Startup: (Installation and Configuration of Radio Access Network based on USRPx300)

OAI Roadmap

H.W Requirements

  • Regarding the Host: Current OpenAirInterface software requires Intel architecture based PCs for the eNB or UE targets. This requirement is due to optimized DSP functions which make heavy use of integer SIMD instructions.

  • Regarding the Radio Head: OAI supports a variety of Software Defined Radios including (Exmimo, USRP B200, USRP x300, LimeSDR)

Kernal and OS Requirements

First, we need to get a low latency kernal

  • for Ubuntu 14.04
sudo apt-get install linux-image-3.19.0-61-lowlatency linux-headers-3.19.0-61-lowlatency
  • for Ubuntu 16.04
sudo apt-get install linux-image-4.8.0-36-lowlatency linux-headers-4.8.0-36-lowlatency
  • After Reboot You can check the installed kernal by typing
uname -a

If you still see the generic kernal, you have to select the kernal manually while rebooting from Advanced Option or to set it to be the default accross system rebooting.

1. Download ubuntustudio-default-settings package from http://packages.ubuntu.com/trusty/ubuntustudio-default-settings & Extract it.
2. Copy 09_lowlatency file to /etc/grub.d/
3. sudo update-grub

Another tested Option:

  1. to know the exact installed kernal name ID.
grep menuentry /boot/grub/grub.cfg
  1. Add that name to grub-set-default to set the grub to load the new kernal by default while rebooting
sudo grub-set-default "Ubuntu, with Linux 4.8.0-36-lowlatency"
sudo grub-reboot "Ubuntu, with Linux 4.8.0-36-lowlatency"
sudo update-grub

OAI Power Management

OAI requires to Remove all power management features in the BIOS (sleep states, in particular C-states) and CPU frequency scaling (Intel SpeedStep) so OAI can run with the maximum CPU clock 100% in performance mode and avoid any scaling, also make sure to disable the p-state driver

Add GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable" to /etc/default/grub

nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable"

Next we update the Governor to performance, Hence the all options are mentioned below.

GOVERNOR   Description. 
Performance Run the CPU at the maximum frequency
powersave Run the CPU at the minimum frequency
userspace Run the CPU at user specified frequencies
ondemand Scales the frequency dynamically according to current load. Jumps to the highest frequency and then possibly back off as the idle time increases
conservative Scales the frequency dynamically according to current load. Scales the frequency more gradually than ondemand
schedutil Scheduler-driven CPU frequency selection
sudo apt-get install cpufrequtils
sudo echo GOVERNOR="performance"  >  /etc/default/cpufrequtils
sudo update-rc.d ondemand disable //to maintain the setting across system reboot
sudo /etc/init.d/cpufrequtils restart 
Checking the CPU cores
sudo cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

E-UTRAN S.W. Installation

Checkout RAN repository (eNB RAN + UE RAN):

  • for Ubuntu 16.04 Get the develop branch (up to date features)
git clone -r develop https://gitlab.eurecom.fr/oai/openairinterface5g.git
  • for Ubuntu 14.04 Get the master branch (Stable)
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
cd openairinterface5g
Very important. It sets the correct environment variables.
source oaienv
package installation + USRP Driver installation :
./build_oai -I
./build_oai -w USRP
Build OpenAirInterface eNB and UE without the EPC (without S1, nos1)
./build_oai -w USRP --eNB --UE --noS1 -x

Testing Radio Access Network Connection

Running eNB

1st: Setup eNB IP

cd ~/openairinterface5g/
source oaienv
source ./cmake_targets/tools/init_nas_nos1 eNB

2nd: Check eNB IP

ifconfig 
oai0      Link encap:AMPR NET/ROM  HWaddr C2-C6-7B-07-22-08 
          inet addr:10.0.1.1  Bcast:10.0.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

cd cmake_targets
sudo -E ./lte_noS1_build_oai/build/lte-softmodem-nos1 -d -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf 2>&1 | tee ENB.log

Running UE

1st: Setup UE IP

cd ~/openairinterface5g/
source ./targets/bin/init_nas_nos1 UE

2nd: Check UE IP

ifconfig 
oai0      Link encap:AMPR NET/ROM  HWaddr 71-7C-CA-24-25-0B
          inet addr:10.0.1.9  Bcast:10.0.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
cd cmake_targets
sudo -E ./lte_noS1_build_oai/build/lte-softmodem-nos1  -U -C2660000000 -r25 --ue-scan-carrier --ue-txgain 90 --ue-rxgain 115 -d >&1 | tee UE.log

OAI Gitlab

OpenAirInterface is under OpenAirInterface Software Alliance license. Refere to the main source code at GitLab

It is distributed under OAI Public License V1.0. The license information is distributed under LICENSE file in the same directory. Please see NOTICE.txt for third party software that is included in the sources.

The OpenAirInterface (OAI) software is composed of the following parts:

openairinterface5g

  • cmake_targets: build utilities to compile (simulation, emulation and real-time platforms), and generated build files
  • common : some common OAI utilities, other tools can be found at openair2/UTILS
  • LICENSE
  • maketags : script to generate emacs tags
  • openair1 : 3GPP LTE Rel-10 PHY layer + PHY RF simulation and a subset of Rel 12 Features.
  • openair2 :3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP implementation.
    • LAYER2/RLC/ with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
    • LAYER2/PDCP/PDCP_v10.1.0.
    • RRC/LITE
    • PHY_INTERFACE
    • X2AP
    • ENB_APP
  • openair3: 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
    • GTPV1-U
    • NAS
    • S1AP
    • SCTP
    • SECU
    • UDP
  • targets: top level wrapper for unitary simulation for PHY channels, system-level emulation
    • eNB-UE with and without S1
    • realtime eNB and UE and RRH GW.