OAI 5G NR+USRP B210安装搭建

OAI 5G NR+USRP B210安装搭建,第1张

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 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查看是否有信息。

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 /openairinterface5g/

source oaienv

cd cmake_targets/

./build_oai -I --phy_simulators

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

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

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

cd /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://outofmemory.cn/langs/758326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-01
下一篇 2022-05-01

发表评论

登录后才能评论

评论列表(0条)

保存