srsLTE系统安装教程
2018-03-12
srsLTE简介
srsLTE是由爱尔兰SoftwareRadioSystems (SRS)公司开发实现的免费开源LTE SDR平台,在AGPLv3 license许可下发布,并且在实现中使用了OpenLTE的相关功能。
SrsLTE的开源过程大致经历了三个阶段:
- srsLTE包含全协议栈的UE(srsUE)以及一个物理层下行链路的收发链路,该阶段可以使用第三方(如OAI)的eNB以及EPC来搭建LTE SDR系统;
- srsLTE开源了srseNB,即srs具备了全协议栈的eNB以及UE,没有EPC,因此需要使用第三方(如Amarisoft)的EPC,搭建LTE SDR的整个网络;
- srsLTE开源了srsEPC,即核心网功能,且一如往常的代码简洁,配置简单,使用方便,到目前为止,既可以通过srsLTE搭建完整的LTE网络。
目前的srsLTE开源代码在Github上管理,链接为https://github.com/srsLTE/srsLTE
其代码主要分为三个模块,即srsUE、srseNB、srsEPC,另外还包括一些底层的库函数:
- srsUE:实现了物理层到IP层的LTE SDR平台;
- srseNB:全协议栈的LTE eNodeB SDR平台;
- srsEPC:轻量级的LTE核心网实现平台,包括HSS、MME以及S/P-GW;
- lib:一套模块化的通用库,包括PHY、MAC、RLC、NAS、S1AP以及GW各层。
下面简单介绍srsLTE整个模块的性能特征,主要包含以下四个部分:
SrsLTE共有特征:
- 支持Realease8(兼容一些Realease9的功能);
- 支持FDD;
- 测试带宽:1.4MHz、3MHz、5MHz、10MHz、15MHz以及20MHz;
- 传输模式1(单天线),2(发射分集),3(CCD),4(闭环空间复用);
- 采用指令集对Turbo编译码进行加速;
- 命令行跟踪测试指标;
- 详细的配置文件等。
SrsUE主要特征:
- 支持UE的小区搜索及同步的过程;
- 软件USIM支持XOR以及Milenge两种鉴权算法;
- 虚拟网卡tun_srsue建立网络连接;
- 与商用基站以及SDR商用基站、核心网进行适配测试,如Amarisoft LTE10。
SrseNB主要特征:
- MAC层采用轮询调度算法;
- 支持周期性及非周期性的CQI反馈;
- 标准的S1AP以及GTP-U接口;
- 目前已经通过商用终端测试,如LG Nexus5、LG Nexus4、HuaWei P9/P9lite以及Huawei dongles:E3276\ E398等。
SrsEPC是单一、轻量级的LTE 核心网实现,其包括下面三个部分:
- MME(Mobility Management Entity),标准的S1AP以及GTP-U接口;
- S/P-GW,标准的连接虚拟网卡的SGi接口;
- HSS(Home Subscriber Server),使用CSV文件格式进行用户数据配置。
射频通用设备支持USRP B210、USRP X300、bladeRF以及LimeSDR。
srsLTE环境搭建
目前srsLTE安装包都包含在一个文件夹中,因此只需要借助cmake、make等工具进行编译,安装即可,以下简单介绍安装步骤:
系统安装
srsLTE运行在Ubuntu系统上,之前在14.04以及17.04系统上均安装成功,所以Ubuntu系统的选择,可以是14.04及以上,计算机配置的话,最好能够i7 CPU,主频越高越好。系统的安装推荐使用U盘制作启动盘,然后进行安装即可,要注意安装的时候分区。下面以Ubuntu 14.04来进行介绍。
常用工具安装
系统安装好之后,需要安装常用工具,如git、vim等,可以使用Ubuntu系统的apt-get进行安装,如安装git,使用以下命令即可:
sudo apt-get update
sudo apt-get install git
当然,git安装完成之后,还需要进行配置,如配置用户及email等。
UHD安装
硬件设备选择USRP B210,因此需要在系统上安装UHD驱动,目前UHD版本3.10.0.0对于OAI以及srsLTE的支持比较稳定,UHD的安装教程可以参考http://blog.csdn.net/jipengwang/article/details/79451729
srsLTE依赖库安装
在Ubuntu14.04系统上,执行以下命令即可:
sudo apt-get install cmake libfftw3-dev libpolarssl-dev libboost-program-options-dev libboost-thread-dev libconfig++-dev libsctp-dev
在Ubuntu 17.04系统上,执行以下命令:
sudo apt-get install cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libboost-thread-dev libconfig++-dev libsctp-dev
另外,srs还提供了srsGUI库,可以用于在调试的时候,实时查看星座图及信号能量,其github链接为:https://github.com/srslte/srsgui
安装命令如下. 首先安装依赖库:
sudo apt-get install libboost-system-dev libboost-test-dev libboost-thread-dev libqwt-dev libqt4-dev
下载及安装命令如下:
git clone https://github.com/suttonpd/srsgui.git
cd srsGUI
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
srsLTE编译安装
从github上clone代码,之后进行编译安装即可,命令如下:
git clone https://github.com/srsLTE/srsLTE
mkdir build
cd build
cmake ../
make
make test
sudo make install
sudo ldconfig
srsLTE运行
srsLTE的运行参数均采用配置文件进行,即只需要在运行程序后面加上配置文件即可,配置参数在配置文件中进行,其中srsLTE对于UE、eNB、EPC均提供了对应的示例配置文件,其放置位置在对应的srsue、srsenb以及srsepc文件夹下,且命名方式为 *.example,如下图所示为srsenb下面的配置文件:
在运行时,可以将这些配置文件复制,并修改文件名,如将drb.conf.example赋值,并命名为drb.conf。
SrseNB以及srsEPC可以运行在一台电脑上,也可以运行在两台不同的电脑上,但是需要保证两台机器之间的IP可达,并修改相关的配置文件;srsUE则需要运行在另一台电脑上。
执行sudo make install之后,就可以直接使用srsepc、srsenb以及srsue进行运行对应的模块,运行命令如下(假设目前位于srsLTE目录下):
- srsepc
cd srsepc/
sudo srsepc epc.conf
- srsenb
cd srsenb/
sudo srsenb enb.conf
- srsue
cd srsue
sudo srsue ue.conf
srsLTE运行界面
如上图所示为srsLTE运行界面,其中srseNB以及srsUE的GUI界面可以在配置文件中进行配置,并且运行eNB的电脑,虚拟网卡名称为srs_spgw_sgi,地址为172.16.0.1,运行UE的虚拟网卡名称为tun_srsue,地址与eNB侧同网段,如下两图所示:
另外,在eNB及UE的运行终端中,可以输入t来实时查看snr、bler等性能指标参数,如下面两图所示:
srsLTE测试
ping命令测试
在运行eNB及UE的电脑上,分别对虚拟网卡tun_srsue以及srs_spgw_sgi进行ping命令测试,如下两图所示:
iperf测试
使用iperf进行灌包测试,以下测试为PRB=50,即带宽10MHz,首先进行下行灌包测试,之后进行上行灌包测试。
UE侧iperf命令为:
iperf –s –u –i 1
eNB侧iperf命令为:
iperf –c 172.16.0.4 –u –i 1 –b 30M –t 60
eNB侧iperf灌包从10M开始,然后是20M,之后是30M,从下图可以看出,下行峰值速率基本在22Mbits/sec左右。
eNB侧iperf命令为:
iperf –s –u –i 1
UE侧iperf命令为:
iperf –c 172.16.0.1 –u –i 1 –b 10M –t 60
UE侧灌包从10M开始,之后是15M,然后是20M,可以看到上行峰值速率在14.7Mbps左右。
根据上面的测试结果,还可以进行配置天线的增益来进行测试增益下的峰值速率,这里只是进行说明如何通过iperf进行速率的测试。
总结
经过上面的介绍与演示,相信大家对于srsLTE的安装、运行以及测试有了一定的了解,之后有空会继续更新如何对配置文件进行修改以及探索srsLTE的更多功能。
参考文献
- https://github.com/srsLTE/srsLTE
- http://www.softwareradiosystems.com/
- http://blog.csdn.net/jipengwang/article/details/79451729