OAI 5G NR + USRP B210:从零搭建低成本开源5G实验平台

张开发
2026/4/19 2:04:32 15 分钟阅读

分享文章

OAI 5G NR + USRP B210:从零搭建低成本开源5G实验平台
1. 为什么选择OAI和USRP B210搭建5G实验平台第一次接触5G实验平台搭建时我也被高昂的设备成本吓退过。直到发现OAIOpenAirInterface这个开源项目配合USRP B210这套性价比极高的硬件才算找到了可行的解决方案。这里先说说为什么这套组合特别适合预算有限的个人开发者和高校实验室。OAI作为欧洲EURECOM组织维护的开源项目完整实现了5G NR协议栈。虽然商用5G设备动辄几十万但用OAIUSRP B210的组合整套成本可以控制在2万元以内。USRP B210虽然带宽只有40MHz3/4采样时但对于学习5G协议和开发验证已经足够。我实测下来这套配置能稳定完成RRC连接建立全过程对于理解5G底层机制特别有帮助。相比更强大的USRP B310B210有三个明显优势价格只有B310的1/3左右USB 3.0接口即插即用省去了额外的电源和PCIe连接体积只有手掌大小搭建移动测试环境更方便。不过要注意5G信号处理对CPU要求较高建议至少配备i7-8700K级别的处理器否则物理层计算会成为瓶颈。2. 硬件准备与系统配置2.1 核心硬件选型指南我的实验平台用了以下配置运行20MHz带宽的5G NR信号非常稳定主机Intel i9-9900K8核16线程32GB DDR4内存1TB NVMe SSDUSRP B210带两根天线Ubuntu 18.04 LTS系统这里特别提醒几个容易踩坑的地方CPU选择5G LDPC编解码非常吃CPU资源实测i5处理器跑20MHz带宽都会卡顿。建议至少8核处理器有条件最好上至强金牌系列。内存带宽USRP B210通过USB 3.0传输I/Q数据双通道内存能显著降低传输延迟。系统版本OAI对Ubuntu 18.04支持最好20.04有时会出现驱动兼容性问题。2.2 Ubuntu系统优化技巧安装完Ubuntu后建议立即做以下优化# 更换为国内源以阿里云为例 sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo apt update sudo apt upgrade -y # 安装必备工具 sudo apt install -y git vim htop gcc g make cmake libboost-all-devUSRP B210驱动安装有个小技巧先装UHD驱动再插设备。以下是完整步骤git clone https://github.com/EttusResearch/uhd.git cd uhd/host mkdir build cd build cmake ../ make -j$(nproc) sudo make install sudo ldconfig插上USRP后运行uhd_find_devices应该能看到设备信息。如果报USB权限错误记得把用户加入plugdev组sudo usermod -aG plugdev $USER3. OAI源码编译实战3.1 获取和准备源码OAI源码更新很频繁建议从GitLab拉取develop分支git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git cd openairinterface5g git checkout develop source oaienv # 初始化环境变量国内用户可能会遇到git clone慢的问题。我的经验是先尝试用SSH协议clone速度通常比HTTPS快如果卡在某个子模块可以手动到GitHub下载对应仓库放到指定目录3.2 编译技巧与排错首次编译建议使用以下命令cd cmake_targets ./build_oai -I --gNB -w USRP这个-I参数会自动安装所有依赖项。几个常见问题处理protobuf编译失败编辑build_helper文件注释掉所有wget和git操作手动下载缺失的依赖内存不足添加swap空间至少8GB或者减少make的并行线程数USB传输错误尝试更换USB3.0接口或者降低采样率后面会讲编译完成后关键可执行文件会生成在cmake_targets/ran_build/build目录下最重要的是nr-softmodemgNodeB主程序。4. 配置与启动5G基站4.1 配置文件详解OAI的配置文件在targets/PROJECTS/GENERIC-NR-5GC/CONF/目录下。以band78为例主要需要修改这些参数plmn_list ({ mcc 460; # 中国移动国家码 mnc 03; # 运营商网络码 amf_ip_address ( { ipv4 192.168.88.31; # AMF服务器IP active yes; } ); }); NETWORK_INTERFACES : { GNB_INTERFACE_NAME_FOR_NG_AMF eth0; GNB_IPV4_ADDRESS_FOR_NG_AMF 192.168.88.31/24; };特别提醒如果只是单机测试可以把AMF IP设为本机IP频点配置要符合当地法规band783.5GHz在国内需要申请许可小区IDcell_id不要与周边基站冲突4.2 启动gNodeB的技巧使用以下命令启动基站sudo ./nr-softmodem -O ../gnb.sa.band78.fr1.106PRB.usrpb210.conf --sa -E关键参数说明--sa独立组网模式-E启用3/4采样率降低USB带宽压力-d启用调试日志排查问题时很有用如果看到日志输出NFAPI: gNB configuration successful说明基站启动成功。这时用支持5G的测试手机应该能搜索到小区信号需要手动设置PLMN。5. 常见问题解决方案5.1 设备连接问题症状USRP经常断开连接检查USB线材质量建议用带屏蔽的短线降低采样率添加--samp-rate 11.52e6参数在BIOS中关闭USB节能模式5.2 高CPU占用处理优化方案限制LDPC解码线程数export OAI_NR_LDPC_MAX_NUM_THREADS4关闭不必要的日志sudo ./nr-softmodem ... --noS1 --nokrnmod 15.3 信号质量优化通过uhd命令可以调整RF参数uhd_usrp_probe --argstypeb200 # 然后调整发射功率、增益等参数实测在办公室环境设置tx_gain60、rx_gain40能获得较好的信噪比。如果出现信号失真可以尝试降低带宽到10MHz测试。6. 进阶实验方向完成基础搭建后可以尝试这些扩展实验多小区组网用两台USRP B210模拟蜂窝网络端到端测试连接开源5GC如free5GC协议分析用Wireshark抓取NGAP接口报文性能优化修改OAI源码实现自定义调度算法我在实验室里用这套平台成功完成了5G URLLC业务的端到端测试时延可以稳定控制在10ms以内。虽然USRP B210的性能有限但对于协议学习和科研验证已经完全够用。

更多文章