写点什么

OAI 5G NR+USRP B210 安装搭建

作者:柒号华仔
  • 2022 年 7 月 06 日
  • 本文字数:3656 字

    阅读完需:约 12 分钟

 目录


前言

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.list
sudo vim /etc/apt/sources.list
复制代码


点击并拖拽以移动

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

deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiversedeb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ xenial main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiversedeb-src http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiversedeb-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 查看是否有信息。



点击并拖拽以移动

​编辑


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 IP
                        ipv6       = "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本地IP
        GNB_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。


发布于: 刚刚阅读数: 5
用户头像

柒号华仔

关注

星光不问赶路人,时光不负有心人。 2022.07.01 加入

CSDN 5G领域新星创作者,阿里云星级博主,专注于5G领域,兼顾网络,编解码协议,linux,C/C++等方向,欢迎关注我。

评论

发布
暂无评论
OAI 5G NR+USRP B210安装搭建_5G_柒号华仔_InfoQ写作社区