From 8558b2c933edb340444dacb401df2dc9e2a69f49 Mon Sep 17 00:00:00 2001 From: Brendan McAuliffe Date: Thu, 4 Jul 2024 13:16:11 +0200 Subject: [PATCH] readme: improve readme details and instructions --- README.md | 112 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 98 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index d2d9498466..588eb3a36e 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,8 @@ Features and roadmap - [Features](https://docs.srsran.com/projects/project/en/la Build Preparation ----------------- +### Dependencies + * Build tools: * cmake: @@ -32,7 +34,7 @@ Build Preparation You can install the build tools and mandatory requirements for some example distributions with the commands below:
-Ubuntu 22.04 +Ubuntu 22.04 ```bash sudo apt-get install cmake make gcc g++ pkg-config libfftw3-dev libmbedtls-dev libsctp-dev libyaml-cpp-dev libgtest-dev @@ -40,7 +42,7 @@ sudo apt-get install cmake make gcc g++ pkg-config libfftw3-dev libmbedtls-dev l
-Fedora +Fedora ```bash sudo yum install cmake make gcc gcc-c++ fftw-devel lksctp-tools-devel yaml-cpp-devel mbedtls-devel gtest-devel @@ -48,7 +50,7 @@ sudo yum install cmake make gcc gcc-c++ fftw-devel lksctp-tools-devel yaml-cpp-d
-Arch Linux +Arch Linux ```bash sudo pacman -S cmake make base-devel fftw mbedtls yaml-cpp lksctp-tools gtest @@ -56,35 +58,117 @@ sudo pacman -S cmake make base-devel fftw mbedtls yaml-cpp lksctp-tools gtest
-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: - * See UHD documentation for installation instructions. +* ZMQ: + +#### 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: +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: +
+Vanilla Installation + +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 +``` +
+ +
+ZMQ Enabled Installation + + +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 +... +``` +
+ +
+DPDK Enabled Installation + +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) +``` +
+ +### 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).