news 2026/4/15 20:11:53

Ubuntu环境下搭建free5GC与OAI gNB/nrUE的5G端到端仿真平台

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu环境下搭建free5GC与OAI gNB/nrUE的5G端到端仿真平台

1. 环境准备与基础概念

在开始搭建5G端到端仿真平台之前,我们需要先理解几个关键组件的作用。free5GC是一个开源的5G核心网实现,相当于5G网络的大脑;OAI gNB是基站(类似4G时代的eNodeB);OAI nrUE则是用户设备模拟器。这三个组件组合起来,就能模拟真实的5G网络环境。

我推荐使用Ubuntu 20.04 LTS版本,这个版本经过社区验证兼容性最好。硬件配置建议至少4核CPU、8GB内存和50GB硬盘空间,如果条件允许,使用物理机比虚拟机性能更好。我曾经在虚拟机里测试时遇到过时钟同步问题,后来改用双物理机部署才解决。

安装前需要准备的依赖项包括:

  • 基础工具链:build-essentialcmakegit
  • 开发库:libsctp-devlibyaml-dev
  • 网络工具:net-toolsiproute2

用以下命令一键安装:

sudo apt update && sudo apt install -y build-essential cmake git libsctp-dev libyaml-dev net-tools iproute2

2. free5GC核心网部署

free5GC的安装分为控制面和用户面两部分。控制面负责信令处理,用户面(UPF)负责数据转发。我遇到过UPF无法启动的问题,后来发现是内核模块加载问题,需要特别注意。

首先克隆代码库:

git clone --recursive -b v3.2.0 https://github.com/free5gc/free5gc.git cd free5gc

编译前需要安装Golang环境。建议使用Go 1.18+版本:

wget https://go.dev/dl/go1.18.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc source ~/.bashrc

关键一步是安装gtp5g内核模块,这是UPF正常工作所必需的:

git clone -b v0.6.1 https://github.com/free5gc/gtp5g.git cd gtp5g make sudo make install

编译完成后,启动核心网服务:

cd ~/free5gc make ./run.sh

验证核心网是否正常运行:

curl http://localhost:8000/api/nf-instances

应该能看到返回的JSON数据。如果遇到端口冲突,可以修改config/目录下的配置文件。

3. OAI gNB基站编译与配置

OAI的编译选项很多,新手容易混淆。我建议首次尝试时使用RF模拟器模式(SIMU),这样不需要额外硬件。

获取源码并切换稳定分支:

git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git cd openairinterface5g git checkout 2023.w36

安装依赖时有个小技巧:使用参数-I会自动安装所需依赖,但国内用户可能需要更换apt源:

./build_oai -I -w SIMU --gNB --ninja

编译gNB和nrUE:

./build_oai --gNB --nrUE -w SIMU --ninja

配置文件位于targets/PROJECTS/GENERIC-NR-5GC/CONF/目录。重点修改:

  • plmn_list中的MCC/MNC(需与free5GC一致)
  • amf_ip_address设为free5GC服务器IP
  • 接口名称和IP地址

示例配置片段:

plmn_list = ({ mcc = 466; mnc = 92; mnc_length = 2; }); amf_ip_address = ( { ipv4 = "192.168.1.100"; preference = "ipv4"; });

4. OAI nrUE用户设备配置

nrUE的配置需要与核心网中的用户数据匹配。在free5GC的Web界面(通常为http://localhost:5000)添加用户时,要确保以下信息一致:

  1. IMSI:466920000000001
  2. 密钥(K):8baf473f2f8fd09487cccbd7097c6862
  3. OPC:8e27b6af0e692e750f32667a3b14605d

nrUE的启动参数很关键,特别是频段和频率设置。对于Band78的仿真:

cd cmake_targets/ran_build/build sudo RFSIMULATOR=127.0.0.1 ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --rfsim --sa

常见问题排查:

  • 如果出现"PBCH解码失败",检查gNB和nrUE的频段配置是否一致
  • "RRC连接超时"通常意味着AMF地址配置错误
  • 使用--phy-test模式可以快速验证射频链路

5. 端到端联调测试

当所有组件都启动后,可以通过以下步骤验证:

  1. 在free5GC控制台查看AMF日志,确认UE注册成功
  2. 在gNB终端查看调度信息,应有类似输出:
[PHY] DL Scheduling: frame 100, slot 2, UE 0, MCS 16, PRB 50
  1. 在nrUE端执行ping测试:
ping -I oaitun_ue1 8.8.8.8

性能优化技巧:

  • 调整min_rxtxtime参数改善时延
  • 使用--parallel-config PARALLEL_SINGLE_THREAD减少上下文切换
  • 在物理机上禁用CPU节能模式

6. 常见问题解决方案

问题1:UPF无法创建GTP隧道解决方法:

sudo modprobe gtp5g lsmod | grep gtp5g # 确认模块加载

问题2:AMF拒绝UE注册检查点:

  1. 确认UE的IMSI已在free5GC注册
  2. 核对gNB配置中的PLMN与核心网一致
  3. 检查时间同步(NTP服务)

问题3:射频链路不稳定尝试调整发射功率:

sudo ./nr-softmodem ... --txgain 75 --rxgain 120

问题4:Docker环境冲突如果使用Docker版free5GC,需要配置网络:

docker network create --subnet=192.168.100.0/24 oai-net

7. 进阶配置与监控

对于想深入研究的开发者,可以:

  1. 使用Wireshark抓包分析NGAP协议
sudo apt install wireshark sudo wireshark -k -i any -f 'port 38412'
  1. 启用详细日志
./nr-softmodem ... --log_config.global_level debug
  1. 性能监控指标
  • gNB侧:cat /proc/net/dev | grep oaitun
  • 核心网侧:curl http://localhost:9090/metrics
  1. Kubernetes部署(生产环境推荐)
kubectl apply -f https://raw.githubusercontent.com/free5gc/free5gc-k8s/master/deployments/base.yaml

这套平台虽然复杂,但通过分步实施和充分测试,完全可以搭建出可用的5G实验环境。我在实际项目中用它验证过网络切片和边缘计算方案,效果很好。关键是要有耐心,遇到问题时多查社区讨论和issue记录。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 13:49:18

AnimateDiff vs Deforum:哪个更适合你的AI视频创作需求?

AnimateDiff vs Deforum:哪个更适合你的AI视频创作需求? 在AI视频生成领域,AnimateDiff和Deforum是当前最活跃的两个开源方案。它们都基于Stable Diffusion生态,却走出了截然不同的技术路径——一个追求“让文字自然动起来”&…

作者头像 李华
网站建设 2026/4/15 10:05:32

Qwen3-VL-2B功能实测:一张图告诉你AI视觉有多强

Qwen3-VL-2B功能实测:一张图告诉你AI视觉有多强 1 为什么说“一张图”就能说明问题? 你有没有试过把一张随手拍的照片上传给AI,然后问它:“这图里有什么?”、“图中文字是什么?”、“这张截图里的表格数据…

作者头像 李华
网站建设 2026/4/4 14:57:50

通义千问3-4B内存优化:4GB量化版移动端部署教程

通义千问3-4B内存优化:4GB量化版移动端部署教程 1. 为什么这个4B模型值得你花10分钟读完 你有没有试过在手机或树莓派上跑大模型?不是“能跑”,而是“跑得顺、答得准、不卡顿”——真正能当主力用的那种。 通义千问3-4B-Instruct-2507&…

作者头像 李华
网站建设 2026/4/12 21:36:31

SMUDebugTool:破解AMD Ryzen硬件调试复杂性的革新方案

SMUDebugTool:破解AMD Ryzen硬件调试复杂性的革新方案 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

作者头像 李华