Skip to content

Commit

Permalink
readme: improve readme details and instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
brendan-mcauliffe committed Jul 4, 2024
1 parent 4cf7513 commit 8558b2c
Showing 1 changed file with 98 additions and 14 deletions.
112 changes: 98 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ Features and roadmap - [Features](https://docs.srsran.com/projects/project/en/la
Build Preparation
-----------------

### Dependencies

* Build tools:
* cmake: <https://cmake.org/>

Expand All @@ -32,59 +34,141 @@ Build Preparation
You can install the build tools and mandatory requirements for some example distributions with the commands below:

<details open>
<summary>Ubuntu 22.04</summary>
<summary><strong>Ubuntu 22.04</strong></summary>

```bash
sudo apt-get install cmake make gcc g++ pkg-config libfftw3-dev libmbedtls-dev libsctp-dev libyaml-cpp-dev libgtest-dev
```

</details>
<details>
<summary>Fedora</summary>
<summary><strong>Fedora</strong></summary>

```bash
sudo yum install cmake make gcc gcc-c++ fftw-devel lksctp-tools-devel yaml-cpp-devel mbedtls-devel gtest-devel
```

</details>
<details>
<summary>Arch Linux</summary>
<summary><strong>Arch Linux</strong></summary>

```bash
sudo pacman -S cmake make base-devel fftw mbedtls yaml-cpp lksctp-tools gtest
```

</details>

The srsRAN Project supports split-8 and split-7.2 fronthaul.
#### Split-8

Split-8 fronthaul is supported via UHD for USRP devices.
For Split-8 configurations, either UHD or ZMQ is required for the fronthaul interface. Both drivers are linked below, please see their respective documentation for installation instructions.

* UHD: <https://github.com/EttusResearch/uhd>
* See UHD documentation for installation instructions.
* ZMQ: <https://zeromq.org/>

#### Split-7.2

Split-7.2 is supported via DPDK:
For Split-7.2 configurations no extra 3rd-party dependencies are required, only those listed above.

* DPDK: <https://www.dpdk.org/>
Optionally, DPDK can be installed for high-bandwidth low-latency scenarios. For more information on this, please see [this tutorial](https://docs.srsran.com/projects/project/en/latest/tutorials/source/dpdk/source/index.html#).

Build Instructions
------------------

Download and build srsRAN:

<details open>
<summary><strong>Vanilla Installation</strong></summary>

First, clone the srsRAN Project repository:

```bash
git clone https://github.com/srsRAN/srsRAN_Project.git
```

Then build the code-base:

```bash

cd srsRAN_Project
mkdir build
cd build
cmake ../
make -j $(nproc)
make test -j $(nproc)
```

You can now run the gNB from ``srsRAN_Project/build/apps/gnb/``. If you wish to install the srsRAN Project gNB, you can use the following command:

```bash
sudo make install
```
</details>

<details>
<summary><strong>ZMQ Enabled Installation</strong></summary>


Once ZMQ has been installed you will need build of srsRAN Project with the correct flags to enable the use of ZMQ.

The following commands can be used to clone and build srsRAN Project from source. The relevant flags are added to the ``cmake`` command to enable the use of ZMQ:

```bash
git clone https://github.com/srsran/srsRAN_Project.git
cd srsRAN_Project
mkdir build
cd build
cmake ..
make
make test
cmake ../ -DENABLE_EXPORT=ON -DENABLE_ZEROMQ=ON
make -j $(nproc)
make test -j $(nproc)
```

Pay extra attention to the cmake console output. Make sure you read the following line to ensure ZMQ has been correctly detected by srsRAN:

```bash
...
-- FINDING ZEROMQ.
-- Checking for module 'ZeroMQ'
-- No package 'ZeroMQ' found
-- Found libZEROMQ: /usr/local/include, /usr/local/lib/libzmq.so
...
```
</details>

<details>
<summary><strong>DPDK Enabled Installation</strong></summary>

Once DPDK has been installed and configured you will need to create a clean build of srsRAN Project to enable the use of DPDK.

If you have not done so already, download the code-base with the following command:

```bash
git clone https://github.com/srsRAN/srsRAN_Project.git
```

Then build the code-base, making sure to include the correct flags when running cmake:

```bash
cd srsRAN_Project
mkdir build
cd build
cmake ../ -DENABLE_DPDK=True -DASSERT_LEVEL=MINIMAL
make -j $(nproc)
make test -j $(nproc)
```
</details>

### PHY Tests

PHY layer tests use binary test vectors and are not built by default. To enable, see the [docs](https://docs.srsran.com/projects/project/en/latest/user_manuals/source/installation.html).

How to deploy a 5G network?
----------------------------------------------
Deploying srsRAN Project
------------------------

srsRAN Project can be run in two ways:

- As a monolithic gNB (combined CU & DU)
- With a split CU and DU

For exact details on running srsRAN Project in any configuration, see [the documentation](https://docs.srsran.com/projects/project/en/latest/user_manuals/source/running.html).

Check our [tutorials](https://docs.srsran.com/projects/project/en/latest/tutorials/source/index.html) that describe how to set up an end-to-end 5G SA system with srsRAN Project.
For information on configuring and running srsRAN for various different use cases, check our [tutorials](https://docs.srsran.com/projects/project/en/latest/tutorials/source/index.html).

0 comments on commit 8558b2c

Please sign in to comment.