srsran/srsRAN_Project

GitHub: srsran/srsRAN_Project

开源 5G O-RAN CU/DU 无线接入网解决方案,实现完整 L1/L2/L3 协议栈,支持灵活的基站部署与仿真测试。

Stars: 1065 | Forks: 379

# srsRAN 项目 [![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6591085721201524.svg)](https://github.com/srsran/srsRAN_Project/actions/workflows/ccpp.yml) [![OpenSSF 最佳实践](https://www.bestpractices.dev/projects/7868/badge)](https://www.bestpractices.dev/projects/7868) srsRAN 项目是一个完整的 5G RAN 解决方案,具有由 [SRS](http://www.srs.io) 开发的原生 ORAN CU/DU。 该解决方案包含完整的 L1/2/3 实现,且外部依赖极少。该软件可跨处理器架构移植,并已针对 x86 和 ARM 进行了优化。srsRAN 遵循 3GPP 5G 系统架构,实现了分布式单元 (DU) 和集中式单元 (CU) 之间的功能切分。CU 进一步分解为控制平面 (CU-CP) 和用户平面 (CU-UP)。 请访问 [srsRAN 项目](https://www.srsran.com/) 获取信息、指南和项目新闻。 构建说明和用户指南 - [srsRAN 项目文档](https://docs.srsran.com/projects/project)。 社区公告与支持 - [讨论区](https://www.github.com/srsran/srsran_project/discussions)。 功能与路线图 - [功能](https://docs.srsran.com/projects/project/en/latest/general/source/2_features_and_roadmap.html)。 ## 构建准备 ### 依赖项 * 构建工具: * cmake: * 必要要求: * libfftw: * libsctp: * yaml-cpp: * mbedTLS: * 可选要求: * googletest: * 您可以使用 cmake 选项 `-DBUILD_TESTING=On` 来启用测试构建。仅在构建测试时,GoogleTest 才是必需的。 您可以使用以下命令为一些示例发行版安装构建工具和必要要求:
Ubuntu 22.04 ``` sudo apt-get install cmake make gcc g++ pkg-config libfftw3-dev libmbedtls-dev libsctp-dev libyaml-cpp-dev ```
Fedora ``` sudo yum install cmake make gcc gcc-c++ fftw-devel lksctp-tools-devel yaml-cpp-devel mbedtls-devel ```
Arch Linux ``` sudo pacman -S cmake make base-devel fftw mbedtls yaml-cpp lksctp-tools ```
#### Split-8 对于 Split-8 配置,需要 UHD 或 ZMQ 用于前传接口。两个驱动链接如下,请参阅它们各自的文档获取安装说明。 * UHD: * ZMQ: #### Split-7.2 对于 Split-7.2 配置,不需要额外的第三方依赖项,只需上面列出的依赖即可。 可选地,可以为高带宽低延迟场景安装 DPDK。有关此内容的更多信息,请参阅[此教程](https://docs.srsran.com/projects/project/en/latest/tutorials/source/dpdk/source/index.html#)。 ## 构建说明 下载并构建 srsRAN:
常规安装 首先,克隆 srsRAN 项目仓库: ``` git clone https://github.com/srsRAN/srsRAN_Project.git ``` 然后构建代码库: ``` cd srsRAN_Project mkdir build cd build cmake ../ make -j $(nproc) ``` 您现在可以从 ``srsRAN_Project/build/apps/gnb/`` 运行 gNB。如果您希望安装 srsRAN 项目 gNB,可以使用以下命令: ``` sudo make install ```
启用 ZMQ 的安装 安装 ZMQ 后,您需要使用正确的标志构建 srsRAN 项目以启用 ZMQ 的使用。 以下命令可用于从源代码克隆并构建 srsRAN 项目。相关标志已添加到 ``cmake`` 命令中以启用 ZMQ 的使用: ``` git clone https://github.com/srsran/srsRAN_Project.git cd srsRAN_Project mkdir build cd build cmake ../ -DENABLE_EXPORT=ON -DENABLE_ZEROMQ=ON make -j $(nproc) ``` 请特别注意 cmake 的控制台输出。确保您看到以下行,以保证 srsRAN 已正确检测到 ZMQ: ``` ... -- FINDING ZEROMQ. -- Checking for module 'ZeroMQ' -- No package 'ZeroMQ' found -- Found libZEROMQ: /usr/local/include, /usr/local/lib/libzmq.so ... ```
启用 DPDK 的安装 安装并配置 DPDK 后,您需要创建一个全新的 srsRAN 项目构建以启用 DPDK 的使用。 如果您还没有下载代码库,请使用以下命令进行下载: ``` git clone https://github.com/srsRAN/srsRAN_Project.git ``` 然后构建代码库,确保在运行 cmake 时包含正确的标志: ``` cd srsRAN_Project mkdir build cd build cmake ../ -DENABLE_DPDK=True -DASSERT_LEVEL=MINIMAL make -j $(nproc) ```
### PHY 测试 PHY 层测试使用二进制测试向量,默认情况下不构建。要启用它们,请参阅[文档](https://docs.srsran.com/projects/project/en/latest/user_manuals/source/installation.html)。 ## 部署 srsRAN 项目 srsRAN 项目可以通过两种方式运行: * 作为单体 gNB(组合的 CU 和 DU) * 使用分离的 CU 和 DU 有关以任何配置运行 srsRAN 项目的确切详细信息,请参阅[文档](https://docs.srsran.com/projects/project/en/latest/user_manuals/source/running.html)。 有关为各种不同用例配置和运行 srsRAN 的信息,请查看我们的[教程](https://docs.srsran.com/projects/project/en/latest/tutorials/source/index.html)。
标签:3GPP, 5G, Bash脚本, C++, CMake, CU-CP, CU/DU, CU-UP, FFTW, L1/L2/L3, mbedTLS, O-RAN, RAN, SRS, srsRAN, x86, 分布单元, 基站, 开源通信, 数据擦除, 无线接入网, 移动通信, 网络切片, 蜂窝网络, 软件无线电, 通信协议, 集中单元