OAI 5G NR+USRP B210安装搭建

news/2025/1/15 11:09:03/

目录

前言

1. 设备环境

1.1 硬件环境

1.2 USRP

1.3 系统安装 

2. 编译运行 

2.1 OAI编译 

2.2 OAI运行 

2.3 接入测试

2.4 注意事项 

3. 拓展


前言

OAI是还算不错的5G开源代码,如同4G时的srsLTE一样。要搭建实际的OAI运行环境,必不可少的就是USRP,对于5G SA来说,最好是用USRPB310进行搭建,但B310购买相对较难,价格也偏高,而B210就要实惠多了。因此本文使用了USRP B210进行了搭建。以OAI当前开发进度,终端还不能完全入网,但RRC连接是可以走完的。

OAI(OpenAirInterface)是欧洲EURECOM组织发起并维护的一个开源NR/LTE项目。

1. 设备环境

1.1 硬件环境

5G-NR 的处理要求远高于 4G,因此需要高端的PC或服务器。目前OAI正在使用的有:

  1. Intel Core i7 6900K (8 cores), 16GB DDR, 480GB SSD。允许SW LDPC运行在3个核上(高达30Mb/s),或者LDPC运行在FPGA(在80MHz SISO上高达 300Mb/s)。
  2. Intel Core i9 7980EX (18 cores)。允许LDPC SW 解码器并行在 9 或 12 个内核上(高达140Mb/s),或者LDPC运行在FPGA(同上)。
  3. Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz with 18 cores and 2x10Gbit Ethernet

1.2 USRP

USRP有三种可选:

  1. USRP N310

这是专为 5G-NR 设计的最新版 USRP,支持高达 100MHz 的带宽。

     2. USRP X310

这个较旧的平台也适用于 5G-NR,但仅支持高达 80MHz 的带宽和 3/4 采样。

     3. USRP B210

该平台可用于使用 3/4 采样的高达 40MHz 的带宽。

我们选择了USRP B210,其简介如下:

USRP B210 提供了一个完全集成的单板通用软件无线电外设 (USRP™) 平台,具有 70 MHz – 6 GHz 的连续频率覆盖范围。它专为低成本实验而设计,结合了 AD9361 RFIC 直接变频收发器,提供高达 56MHz 的实时带宽、开放且可重新编程的 Spartan6 FPGA 以及快速的SuperSpeed USB 3.0 连接和便捷的总线电源。

1.3 系统安装 

  1. 安装系统Ubuntu 18.04。

     2. 更换163源:

sudo cp /etc/apt/sources.list /etc/apt/sources_bak.listsudo vim /etc/apt/sources.list

注释原有的官方源,替换为以下的163源:

deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse

3.系统更新:sudo apt-get update

2. 编译运行 

2.1 OAI编译 

  1. 下载OAI源码

git clone oai / openairinterface5G · GitLab

     2. 代码编译

cd openairinterface5g

sudo git checkout develop

source oaienv

cd cmake_targets

vim tools/build_helper

注释以下两句:

$SUDO rm -fr /opt/ssh

$SUDO git clonehttps://gist.github.com/2190472.git /opt/ssh

sudo ./build_oai -I --gNB -w USRP

     3.编译完成后,USRP驱动已经安装完毕,USRP插上USB线,运行uhd_find_devices查看是否有信息。

e023003f470544bd8ab1af08f00b9a2f.png

2.2 OAI运行 

  1. 修改配置文件
vim ../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1. 106PRB.usrpb210.conf

修改plmn、AMF IP和GNB IP:

plmn_list = ({mcc = 460;mnc = 03;amf_ip_address    = ( { ipv4       = "192.168.88.31";   //5GC IPipv6       = "192:168:30::17";active     = "yes";preference = "ipv4";});NETWORK_INTERFACES :{GNB_INTERFACE_NAME_FOR_NG_AMF            = "eth0";GNB_IPV4_ADDRESS_FOR_NG_AMF              = "192.168.88.31/24";  //oai本地IPGNB_INTERFACE_NAME_FOR_NGU               = "eth0";GNB_IPV4_ADDRESS_FOR_NGU                 = "192.168.88.31/24";GNB_PORT_FOR_S1U                         = 2152; # Spec 2152};

     2.启动5GC

        这里使用的是自己的5GC。

     3. 启动OAI

cd ran_build/build

sudo ./nr-softmodem -O ~/openairinterface5g/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --sa -E

--SA

sa 标志用于在独立模式下运行 gNB。

为了在独立模式下运行 gNB 和 UE,需要以下标志:

--sa

在 gNB 中,--sa 标志执行以下操作:

RRC根据配置文件对SIB1进行编码,通过NR-BCCH-DL-SCH传输。

在 UE 处,--sa 标志将:

解码 SIB1 并启动 SA 的 5G NR 初始接入程序:

  1. 5G-NR RRC 连接设置
  2. NAS 认证和安全
  3. 5G-NR AS 安全程序
  4. 5G-NR RRC 重配置
  5. 开始下行和上行数据传输

-E

Apply three-quarter of sampling frequency,23.04 Msps to reduce the data rate on USB/PCIe transfers(only valid for 20MHz).

2.3 接入测试

用5G终端进行接入测试,分析Log,可以看到RRC接入过程完成。

2.4 注意事项 

  1. 由于源码库在国外,如果编译过程中某个源码目录下载困难,可以从build_helper中将对应的git语句或wget语句复制出来,在前台直接下载,下载完成后,即刻注释掉对应rm语句和git语句,避免重复下载。
  2. 如果ubuntu 某个国内源由于更新出现问题,在本地apt-get update时出现错误,可以更换其他的国内源。
  3. 第一次编译完成,为节省后续修改代码后的编译时间,可以将build_helper中源码下载命令注释掉:

#    rm -rf /tmp/protobuf-cpp-3.3.0.tar.gz* /tmp/protobuf-3.3.0

#    wget --tries=3 --retry-connrefused https://github.com/google/protobuf/releases/download/v3.3.0/protobuf-cpp-3.3.0.tar.gz

#    rm -rf /tmp/protobuf-c

#    git clone https://github.com/protobuf-c/protobuf-c.git

#    rm -rf /tmp/uhd

#    git clone https://github.com/EttusResearch/uhd.git

#    rm -rf /tmp/bladeRF

#    git clone https://github.com/Nuand/bladeRF.git

#    rm -rf /tmp/soapysdr

#    git clone -b soapy-sdr-0.7.0 --single-branch https://github.com/pothosware/SoapySDR.git

#    $SUDO rm -rf /tmp/asn1c

#    git clone https://gitlab.eurecom.fr/oai/asn1c.git /tmp/asn1c

3. 拓展

OAI编译可以生成的二进制文件有:

  1. LTE用户: lte-uesoftmodem
  2. 5G用户端: nr-uesoftmodem
  3. LTE eNodeB: lte-softmodem
  4. 5G gNodeB: nr-softmodem
  5. LTE PHY 模拟器:dlsim和ulsim
  6. 5G PHY 模拟器: nr_dlschsim nr_dlsim nr_pbchsim nr_pucchsim nr_ulschsim nr_ulsim polartest smallblocktest ulsim ldpctest

构建 PHY 模拟器

可以按如下方式构建 PHY 层模拟器(LTE 和 NR):

cd <your oai installation directory>/openairinterface5g/

source oaienv

cd cmake_targets/

./build_oai -I --phy_simulators

完成构建后,二进制文件在 cmake_targets/phy_simulators/build 目录中可用。
target/bin 目录中也有一个副本,所有二进制文件都以 3GPP 版本号为后缀,目前是.Rel15。

构建 UE、eNodeB 和 gNodeB 可执行文件

下载源文件后,可以使用单个构建命令获取可执行文件:

cd <your oai installation directory>/openairinterface5g/

source oaienv

cd cmake_targets/

./build_oai -I -w USRP --eNB --UE --nrUE --gNB

  1. 该-I选项是安装先决条件,仅在第一次构建 softmodem 或某些 oai 依赖项发生更改时才需要它。
  2. 该-w选项是选择射频板支持。
  3. --eNB是构建lte-softmodem可执行文件和所有必需的共享库
  4. --gNB是构建nr-softmodem可执行文件和所有必需的共享库
  5. --UE是构建lte-uesoftmodem可执行文件和所有必需的共享库
  6. --nrUE是构建nr-uesoftmodem可执行文件和所有必需的共享库

可以实际使用情况,单独构建任何 oai softmodem 可执行文件。完成构建后,二进制文件在cmake_targets/ran_build/build目录中可用。该target/bin目录中还提供了一份副本,所有二进制文件都以 3GPP 版本号为后缀,目前是 .Rel15。


http://www.ppmy.cn/news/240597.html

相关文章

通过JTAG USB将临时FPGA镜像写入USRP RIO

按照以下步骤通过JTAG USB将FPGA镜像写入/恢复到USRP RIO设备&#xff1a; 安装Digilent ADEPT实用程序&#xff0c;之后打开程序。 打开USRP RIO设备的电源。通过USB A - USB B 线缆将其连接到PC。 Adept Utility会将您的设备识别为Dsp 1&#xff1a; 使用Browse …按钮打开…

Leetcode154. 寻找旋转排序数组中的最小值 II

Every day a Leetcode 题目来源&#xff1a;154. 寻找旋转排序数组中的最小值 II 解法1&#xff1a;二分查找 一个包含重复元素的升序数组在经过旋转之后&#xff0c;可以得到下面可视化的折线图&#xff1a; 其中横轴表示数组元素的下标&#xff0c;纵轴表示数组元素的值。…

C/C++基础讲解(一百零三)之经典篇(辗除法/统计字符个数/n个数的和)

C/C++基础讲解(一百零三)之经典篇(辗除法/统计字符个数/n个数的和) 程序之美 前言 很多时候,特别是刚步入大学的学子们,对于刚刚开展的计算机课程基本上是一团迷雾,想要弄明白其中的奥秘,真的要花费一些功夫,我和大家一样都是这么啃过来的,从不知到知知,懵懂到入门,…

安卓平台下的即时通讯技术深入解析【实时聊天应用开发实战】

摘要: 本文将详细介绍如何使用安卓开发技术实现一个实时聊天应用。我们将通过构建一个基于安卓平台的聊天应用,演示如何处理用户注册、登录、消息发送和接收等关键功能。文章将涵盖安卓开发的各个方面,包括用户界面设计、后端服务器搭建、网络通信、数据存储和安全性等。读…

台式计算机怎么联网,台式电脑怎么联网宽带

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。 台式电脑联网宽带的方法是&#xff1a; 1、首先&#xff0c;点击桌面右下角的网络连接按钮&#xff1b; 2、然后&#xff0c;在弹出的网络和共享窗口中点击更改适配器设置&#xff…

台式电脑耳麦合一接线方式

台式电脑耳机和麦克风是分开的&#xff0c;手机耳机则是耳麦合一接口&#xff0c;两种接头区别如下 耳机/喇叭接线如下图对接即可 麦克风的接线方式网上查了好久没找到满意答案&#xff0c;麦克风接头与普通耳机接头一样&#xff0c;麦克风是2线&#xff0c;共地线应该是一样的…

台式计算机用手机流量上网,手机流量怎么给台式电脑用

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。 手机流量给台式电脑用的方法是&#xff1a; 1、首先在手机桌面找到并打开“设置”&#xff0c;然后在设置里找到并打开“个人热点”。 2、接着打开“便携式wlan热点”&#xff0c;设…

苹果台式电脑怎么使用计算机,苹果台式电脑开开不了机怎么办

因为苹果系统拥有非常优秀的封闭性&#xff0c;让越来越多的用户都慢慢的开始使用苹果品牌的电脑&#xff0c;但是在遇到了苹果台式电脑电脑无法开机的情况之后&#xff0c;应当怎样处理呢&#xff1f;下面我们就来给大家详细的介绍一下具体的解决方法。 苹果台式电脑开不了机可…