# srsRAN
:::info
### Brief Information About srsRAN
The **srsRAN** software suite is an open-source collection of 4G and 5G software radio implementations from SRS. It includes applications implemented in portable C++ with minimal third-party dependencies. The software runs on Linux with off-the-shelf compute and radio hardware.
The **srsRAN Project** is an open-source 5G CU/DU from SRS. It is a complete RAN solution compliant with 3GPP and O-RAN Alliance specifications. The project includes the full L1/2/3 stack with minimal external dependencies. It also supports O-RAN CU/DU architectures and cloudRAN deployments.
:::
## Installation Guide
In order to build the srsRAN project in Ubuntu, there are 4 steps to be done
1. Install Dependencies
2. Install RF Driver
3. Clone srsRAN Repository
4. Build the Codebase
---
### Build Tools and Dependencies
The implementation of srsRAN are build on C language so it is recommend to install build tools such as CMake and GCC
* [cmake](https://cmake.org/)
```
sudo apt-get -y install cmake
```
* [gcc](https://gcc.gnu.org/install/)
```
sudo apt install build-essential
```
The srsRAN Project has the following necessary dependencies
* [libfftw](https://www.fftw.org/) , [libsctp](https://github.com/sctp/lksctp-tools) , [yaml-cpp](https://github.com/jbeder/yaml-cpp) , [PolarSSL/mbedTLS](https://www.trustedfirmware.org/projects/mbed-tls/) , [googletest](https://github.com/google/googletest/)
```
sudo apt-get install cmake make gcc g++ pkg-config libfftw3-dev libmbedtls-dev libsctp-dev libyaml-cpp-dev libgtest-dev
```
---
### RF Driver
The srsRAN Projects uses RF Drivers and currently only USRP Hardware Driver (UHD) that support
* [UHD](https://files.ettus.com/manual/page_install.html)
```
sudo apt-get install libuhd-dev uhd-host
```
---
### Repository Clone
Clone srsRAN repository by running the following code in Ubuntu
```
git clone https://github.com/srsRAN/srsRAN_Project.git
```
---
### Build Codebase
```
cd srsRAN_Project
mkdir build
cd build
cmake ../
make -j $(nproc)
make test -j $(nproc)
```

After build the codebase by running the code, now gNB can be runned from the address `srsRAN_Project/build/apps/gnb/` or use the following syntax to install the srsRAN Project gNB
```
sudo make install
```
---
## Source
* [srsRAN documentation](https://docs.srsran.com/projects/project/en/latest/user_manuals/source/installation.html)