srsLTE系統安裝教程
原文鏈接 http://www.geeflex.com/Blog/2018-03-12-srsLTE/
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的更多功能。
參考文獻