基本配置:OAI Intro & Setup

OAI介绍

Openairinterface (OAI) 是一个汇聚全球移动通信开发者的组织 Openairinterface Software Alliance (OSA) 旗下的一个团队,他们的目标是构建开源的无线蜂窝接入网络(RAN)和核心网络(CN)技术。如果你先前没有接触过这些概念,那么你可以简单的认为OAI是一个构建通过使用软件定义无线电(SDR)设备实现4/5G移动蜂窝通信的平台,或者再简单点说:使用其代码构建的应用,可以让你“成为”像中国移动/中国联通等服务运营商,打造个性化但同时符合3GPP标准的移动通信服务。你可以查看下方视频简单直观地观察自己搭建5G端到端平台:

现在你应该对OAI的使用场景有一定的了解了,OAI是一个开源的硬件和软件无线技术平台,包含了模拟、仿真和实时运行三个部分,可以用于部署符合3GPP R15标准下的无线蜂窝网络。OAI是由EURECOM建立的,并在成立之初就强调其“开源”生态,这使得无论是工业界的工程师,还是高校里进行研究的团队都可以使用其代码进行移动通信平台的构建,并在其基础上进行原型研发与验证,同时也为工业界和学术界提供了良好的沟通机制,以便双方更好进行技术研发。

OAI目前可以支持4G LTE、5G NR的应用,不仅仅包括无线空口,还包括无线接入网和核心网。本指南写于2024年8月,当前OAI已全面支持3GPP R15下的协议规范,并逐步向R16以及未来6G的演进。一般情况下,OAI的仿真和模拟不需要配备具体的SDR硬件实体,只需要一个标准的Linux计算机设备(x86/ARM 架构均可)即可使用,这意味着如果要进行算法方面的验证,你可以在一个Linux环境下(真实Linux,虚拟机甚至WSL2)就可以完成你的实验平台搭建;如果要构建实时的移动通信系统,那么你还需要额外配备射频实验设备,如Ettus/NI 的USRP设备使用,并视情况配备天线以及变频器(毫米波频段)。

项目支持

  • OAI的核心网相关组件的代码可以在这里找到。如果你的开发不涉及核心网相关的部分,那么你可以考虑使用Docker部署核心网即可,其具体的搭建流程请参考How to do a container-based simple deployment的官方文档。
  • OAI的RAN相关代码可以在这里找到,你可以通过参考项目的doc文件夹下的内容寻找符合你需求的参考文档,一般来说主要参考NR_SA_Tutorial_COTS_UE.mdNR_SA_Tutorial_OAI_CN5G.md以及NR_SA_Tutorial_OAI_nrUE.md这三篇即可。

配置工作环境

无论是进行开发工作还是生产使用,推荐以下应用以获取更好的使用体验。

  • IDE工具Visual Studio Code,好用、扩展性强的代码编辑器,通过添加扩展可支持几乎所有语言的代码提示与自动补全。
  • 终端文本编辑工具:Vim。简单易上手,不再需要依赖GUI界面即可对文本进行编辑。
  • GNU Debugger(可选):C/C++ 代码调试工具,建议配合VSCode以获得最佳开发体验。
  • SSH 配置(可选):远程开发必备工具,使用openssh-serveropenssh-client 获取最好的远程开发体验。

常见问题

下载代码失败怎么办

请使用代理或其他科学上网手段,咨询你身边的朋友,这里不提供具体的翻墙服务推荐。需要注意一点的是,在终端模拟器中使用网络相关的服务需要设置你的代理服务,具体操作如下:

1
2
3
export https_proxy=192.168.0.101:7890 #192.168.0.101 是运行代理服务如clash的主机IP,7890是这个服务的端口,此处和实际情况对应即可
export http_proxy=192.168.0.101:7890
export all_proxy=192.168.0.101:7890

并且请注意:该代理设置仅在当前终端下有效,如果这个终端关闭/另开一个新的终端,需要在新的终端里重新输入代理设置才可使用代理进行相关的服务。

OAI运行失败或需要OAI技术支持

与一般的开源项目不同,在运行项目时遇到问题不是直接反馈到Issue界面,而是使用Mailing Lists。Issue页面供大家提供Bug反馈与功能开发的讨论,运行项目相关等其他一系列繁琐细碎的问题请使用openair5g-user或devel的服务:

  1. Mailing Lists的 【User归档】【Devel归档】中先搜索是否有类似的问题。在初次点开网页时,网站设定了反爬虫的设定,点击 I am not a spammer 的选项即可。

    I am not a spammer

  2. 使用Advanced Search对你的问题进行搜索,在最下方的Extend search field 中按住Shift键选择搜索的月份,这里建议是每6个月为一个间隔进行搜索,如果一次性搜索全部内容会搜索得非常慢;同时过早的问题可能在较新版本中已经被修复。在上方的输入框输入要搜索的问题,随后搜索即可。

    Use Adavance Search