D~DIDI~DIDIDI!!!!

0%

OpenAirInterface5G (OAI) gNB 部署与运行指南

OpenAirInterface5G (OAI5G) 是一个开源的软件无线电 (SDR) 解决方案,提供了符合 3GPP 规范的无线接入网(gNB、eNB)和用户设备(UE)的软件实现。本文主要记录并总结了 OAI5G NR(5G)独立组网下的接入网(gNB)nr-softmodem 的编译环境准备、网络配置与基本运行。

1. 源码下载与环境配置

OAI 的 develop 分支包含了对 5G NR 的最新支持。下载源码并切换至相应的开发分支:

1
2
3
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
cd openairinterface5g
git checkout develop

在进行任何特定组件的编译之前,请务必初始化环境配置:

1
source oaienv

2. 编译接入网 (gNB)

OAI 提供了便捷的统一构建工具 build_oai,只需指定运行模式及射频接口即可编译所需的组件(例如 gNB、UE 等)。本例以支持 BLADERF 硬件平台为例编译 gNB 软件:

1
2
3
4
cd cmake_targets
# -w 指定 RF 板类型 (例如 BLADERF, USRP, LMSSDR 等)
# --gNB 标识为独立编译 5G NR 基站组件
./build_oai -w BLADERF --gNB

编译成功后,将在 cmake_targets/ran_build/build 目录下生成可执行文件 nr-softmodem


3. 运行前准备:核心网路由配置

若需对接已部署的核心网 (5GC),确保 gNB 服务器可以将出站流量发往核心网服务器:

1
2
# 将发往核心网网段的流量路由经由物理网卡(例如 eno1)
sudo ip route add 192.168.70.128/26 via <核心网IP> dev eno1

4. 运行 gNB (nr-softmodem)

OAI5G 提供了极其灵活的命令行启动参数,主要通过传入相应的配置文件(例如 .conf 结构)并配合各种标志来指定频段、带宽 (PRB)、天线数量及调试模式。

4.1 无核心网联调测试 (No Core Network)

用于单纯的空口与射频物理层验证而不依赖 5GC 部署。

1
2
3
4
# -O 指定使用的配置文件
# --noS1 禁用 S1/N2/N3 回传接口,以防无核心网时导致 gNB 启动失败崩溃
# --nokrnmod (仅可使用在 --noS1 下) 使用 TUN 设备而非内核网络模块
sudo ./nr-softmodem -O ./PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --noS1 --nokrnmod 1

4.2 接入核心网:SA (独立组网) 模式

配合部署的核心网(如 OAI-CN5G、Open5GS 等),启动基于 Band 41 (2.5GHz) 下行环境运行 5G 独立组网:

1
2
3
# -E: 应用采样频率 23.04 Msps 以减小总线传输压力 (适用于 20 MHz 宽带)
# --sa: NR 独立组网模式标识
sudo ./nr-softmodem -O gnb.sa.band41.fr1.106PRB.usrpb210.conf -E --sa

5. 常用的启动选项与排错参数表

启动过程中如遇到问题或需精细调整时(例如报错、无同步或 CPU 超出),可以通过 sudo ./nr-softmodem --help 察看 OAI 模块详尽的运行参数。

一些常用并重要的配置标志:

命令标志 说明
射频硬件与时钟
--rf-config-file 给射频前端提供特定的初始化配置文件 (多用于 LMS7002M)
--clock-source 硬件参考时钟源配置 (0: 内部、1: 外部PPS、2: GPSDO)
--time-source 同步时间基准配置 (0: 内部、1: 外部PPS、2: GPSDO)
--emulate-rf / --rfsim 启动无线电模拟器(纯软件验证,无须真实 SDR 射频前端)
--worker-config WORKER_DISABLEWORKER_ENABLE,线程池及 CPU 核亲和性
-C / --CO / -a 分别用于配置所有载波组件的中心下行频率、上行频率偏移与通道 ID 偏移
物理架构隔离
--split73 分列架构 Option 7.3 配置 <CU|DU>:<RemoteIP>:<RemotePort>
--sa / --nsa 区分 gNB 运行在独立组网模式或非独立组网模式下
--noS1 物理侧排障使用,切断上层接口依赖
网络诊断与日志
-C , -g 开启在线日志跟踪以及详细度调整(例如 4:Trace, 3:Debug)
--disable-stats 关闭控制台物理层信息 (L1/L2 MAC) 打桩输出以拯救性能瓶颈环境
--chest-freq / --chest-time 时频域的通道估计(物理层多径衰落排障相关参数)

提示:如果出现物理硬件超时延迟或 TX 过度运行 (如出现大量 U、O 错误),建议检查系统的 dma_latency (/dev/cpu_dma_latency) 与 CPU 缩放状态 (CPU scaling governor 置为 performance) 并适当调整 --thread-pool 亲缘性。