OAI 5G NR+USRP B210 安装搭建
目录
前言
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 正在使用的有:
Intel Core i7 6900K (8 cores), 16GB DDR, 480GB SSD。允许 SW LDPC 运行在 3 个核上(高达 30Mb/s),或者 LDPC 运行在 FPGA(在 80MHz SISO 上高达 300Mb/s)。
Intel Core i9 7980EX (18 cores)。允许 LDPC SW 解码器并行在 9 或 12 个内核上(高达 140Mb/s),或者 LDPC 运行在 FPGA(同上)。
Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz with 18 cores and 2x10Gbit Ethernet
1.2 USRP
USRP 有三种可选:
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 系统安装
安装系统 Ubuntu 18.04。
2. 更换 163 源:
注释原有的官方源,替换为以下的 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 编译
下载 OAI 源码
git clone oai / openairinterface5G · GitLab
2. 代码编译
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 运行
修改配置文件
修改 plmn、AMF IP 和 GNB IP:
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 初始接入程序:
5G-NR RRC 连接设置
NAS 认证和安全
5G-NR AS 安全程序
5G-NR RRC 重配置
开始下行和上行数据传输
-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 注意事项
由于源码库在国外,如果编译过程中某个源码目录下载困难,可以从 build_helper 中将对应的 git 语句或 wget 语句复制出来,在前台直接下载,下载完成后,即刻注释掉对应 rm 语句和 git 语句,避免重复下载。
如果 ubuntu 某个国内源由于更新出现问题,在本地 apt-get update 时出现错误,可以更换其他的国内源。
第一次编译完成,为节省后续修改代码后的编译时间,可以将 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 编译可以生成的二进制文件有:
LTE 用户: lte-uesoftmodem
5G 用户端: nr-uesoftmodem
LTE eNodeB: lte-softmodem
5G gNodeB: nr-softmodem
LTE PHY 模拟器:dlsim 和 ulsim
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
该-I 选项是安装先决条件,仅在第一次构建 softmodem 或某些 oai 依赖项发生更改时才需要它。
该-w 选项是选择射频板支持。
--eNB 是构建 lte-softmodem 可执行文件和所有必需的共享库
--gNB 是构建 nr-softmodem 可执行文件和所有必需的共享库
--UE 是构建 lte-uesoftmodem 可执行文件和所有必需的共享库
--nrUE 是构建 nr-uesoftmodem 可执行文件和所有必需的共享库
可以实际使用情况,单独构建任何 oai softmodem 可执行文件。完成构建后,二进制文件在 cmake_targets/ran_build/build 目录中可用。该 target/bin 目录中还提供了一份副本,所有二进制文件都以 3GPP 版本号为后缀,目前是 .Rel15。
版权声明: 本文为 InfoQ 作者【柒号华仔】的原创文章。
原文链接:【http://xie.infoq.cn/article/62b4522e9e63aa3b397f34b31】。文章转载请联系作者。
评论