Skip to content

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

License

Notifications You must be signed in to change notification settings

0xastro/oai5g

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

*** OAI Building & Executable architecture for recent versions was changed. As a result, updated and a recent instruction can be followed from the main gitlab repo OAI5G! - Just to be safe. Updated 24 Feb 2020

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. 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 -I -w USRP
Build OpenAirInterface eNB and UE without the EPC (without S1, nos1)
./build_oai -w USRP --eNB --UE --noS1 -x

This command works only with master branch, it will not work with the develop branch because of the seperation of eNB and UE, so to compile only pass one argument at a time, UE either eNB.

./build_oai -w USRP --eNB --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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 92.4%
  • Shell 7.6%