Building OAI executables (Release 0.1,0.2)
OAI comes with a automated build script (beta version) located at the root of the targets.Currently, the tool is developped to build the eNB for different hardware platforms, 3GPP releases, standalone or with S1 interface, and target execution. It will be later extended to build the EPC.
Before using the tool, you need to set the openair env variables as follows:
echo "source [path_to_openair_dir]/targets/build_helper.bash ; set_openair_env " >> ~/.bashrc
source ~/.bashrc
Alternatively, set manually the OAI environement variables in .bashrc
as follows (targets/README.txt
):
export OPENAIR_HOME=path_to_openair_dir # --> You need to set your
export OPENAIR1_DIR=$OPENAIR_HOME/openair1
export OPENAIR2_DIR=$OPENAIR_HOME/openair2
export OPENAIR3_DIR=$OPENAIR_HOME/openair3
export OPENAIR_TARGETS=$OPENAIR_HOME/targets
export OPENAIRCN_DIR=$OPENAIR_HOME/openair-cn
To run the tool, use the command build_oai.bash
in the target directory. Various options are availables, try build_oai.bash -h
.
Name : build_oai - install and build OAI
Usage: build_oai.bash -a -b -c -d -e RTAI -m -r REL8 -s -t OAISIM -w EXMIMO -x
-a | --doxygen : Enable doxygen for documentation (default disabled)
-b | --disable-s1 : Disable S1 interface for eNB (default enabled)
-c | --clean : Enable clean OAI build (default disabled)
-C | --config-file [file] : Set the config file local path.
-d | --debug : Enable debug mode (default disabled)
-D | --disable-check-installed-software : Disable the checking of installed software (default is check)
-e | --realtime : Set realtime mode: RTAI, NONE (default NONE)
-g | --run-with-gdb : Run the executable built by this script with gdb
-K | --itti-dump-file [file]: Set the execution events trace file
-l | --build-target [LTE target]: Set the LTE build target: ENB,EPC,HSS,NONE (default NONE)
-m | --build-from-makefile : Enable build from the makefile (default disabled)
-r | --3gpp-release [release]: Set the release: REL8, REL10 (default REL8)
-R | --run : Run the executable built by this script
-s | --check : Enable OAI testing and sanity check (default disabled)
-t | --enb-build-target [eNB target]: Set the eNB build target: ALL, SOFTMODEM,OAISIM,UNISIM (default ALL)
-V | --vcd : Log Value change dump (vcd) events and view the output file using GTKWave
-w | --hardware [hardware]: Set the hardware platform: EXMIMO, USRP (also installs UHD driver), ETHERNET, NONE, (default EXMIMO)
-x | --xforms : Enable xforms (default disabled)
-z | --defaults : Set the default build options
The tool creates a bin
subdirectory in targets
and copies all the binaries/executables there.
* This is Ethernet interface for lte softmodem used in two different setting:
- Emulation: eNB <--I/Q samples--> Channel emulator <--I/Q samples--> UE
- Remote radio head (RRH) interface: eNB <--I/Q samples--> RRH
** This option is mainly for oaisim and unisim.
eNB Build Examples
Install, Build, and test ALL (LTE-SOFTMODEM, OAISIM, UNISIM)
- eNB + EXMIMO + test:
build_oai.bash -l ENB -c -s
- eNB + EXMIMO + RTAI:
build_oai.bash -l ENB -c -e RTAI
- eNB + USRP:
build_oai.bash -l ENB -c -w USRP
- eNB+ ETHERNET :
build_oai.bash -l ENB -c -w ETHERNET
Build LTE softmodem (L3/L2/L1)
- EXMIMO:
build_oai.bash -t SOFTMODEM -l ENB
- USRP:
build_oai.bash -w USRP -t SOFTMODEM -l ENB
Build and run LTE softmodem without checking the installed software (L3/L2/L1)
- EXMIMO:
build_oai.bash -t SOFTWARE -l ENB -D -R -C $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf
- USRP:
build_oai.bash -w USRP -t SOFTWARE -l ENB -D -R -C $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf
Notes:
- Add
-x
to enable xforms (soft scope) - Add
-V
to enable VCD file generation - Add
-K /tmp/itti_enb.log
for itti logs
Build OAISIM(L3/L2/L1.5 emulation)
- E-UTRAN:
build_oai.bash -l ENB -t OAISIM -w NONE -b
- E-UTRAN+S1:
build_oai.bash -l ENB -t OAISIM -w NONE
If you plan to deploy OAI on multiple machines, please use the examples in
targets/SIMU/EXAMPLES/
e.g ETH_EMUL_1eNB_1UE
(this feature will be integrated into build script very soon)
- compile: make all
-
setup: define the eth interface to be used for the emulation transport by setting the variable
EMULATION_DEV_INTERFACE
in the run scripts (see below). -
run: use the
start_enb
andstart_ue
scripts (user should be a sudoer)
Build EPC without running (MME + xGW)
Normally runs in a different (physical or virtual) machine.
- standalone:
build_oai.bash -c -l EPC
- Standalone with logs:
build_oai.bash -c -l EPC -K /tmp/itti_epc_softmodem.log
Build and run EPC without checking the installation (MME + xGW)
Normally runs in a different (physical or virtual) machine.
- standalone:
build_oai.bash -l EPC -R -C $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/epc.generic.conf
- Standalone with extra logs:
build_oai.bash -l EPC -K /tmp/itti_epc_softmodem.log -D -R -C $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/epc.generic.conf
Build and run HSS (beta version)
Normally runs in a different (physical or virtual) machine. This feature is experimental.
build_oai.bash -c -l HSS -R
Instrunctions for installing phpmyadmin for HSS when prompted
-
Configure database for phpmyadmin with dbconfig-common? SELECT <Yes>
-
Please provide the password for the administrative account with which this package should create its MySQL database and user. Password of the database's administrative user: The mysql administrative user.
-
Please provide a password for phpmyadmin to register with the database server. If left blank, a random password will be generated. MySQL application password for phpmyadmin: admin.
-
Password confirmation: admin
-
Please choose the web server that should be automatically configured to run phpMyAdmin. Web server to reconfigure automatically:
[*] apache2 [ ] lighttpd ```
-- @rohit.gupta - 19 Jun 2015