基於 OAI 部署私有的 4G EPS(上)

基於 OAI 部署私有的 4G EPS,做者分爲上下兩部分進行闡述,本文主要分享上部份內容,大綱以下:
硬件設備要求
操做系統要求
All-In-One 部署網絡拓編程

下部份內容回顧:
部署步驟
前期部署
安裝 OAI-CN
安裝 OAI-RAN網絡

前言 架構

前段時間筆者去北京郵電大學參加了今年冬季的 OpenAirInterface Workshop Fall 2019,收穫頗豐。尤爲是對 Mosaic5G 演示的經過 Ubuntu Snap 來快速部署 OAI All-In-One 實驗環境的方式印象深入。Ubuntu Snap 部署方式的優勢是快速便捷,適合新手入門體驗 OAI,或者非通訊專業人士搭建方案驗證環境。但並不適合 OAI 開發者。本文主要是對 Ubuntu Snap 部署方式進行驗證以及對 4G LTE/EPC 的實踐學習。ide

注:下文部份內容摘自 PPT 《FlexRAN-Training》工具

1性能

硬件設備要求學習

運行平臺測試

建議在 Intel x86 架構上運行 OAI,由於 DSP(數字信號處理器)須要大量使用到整數指令集(SSE, SSE2, SSS3, SSE4, and AVX2)。OAI 在如下 CPU 型號完成了測試:操作系統

Generation 3/4/5/6 Intel Core i5, i7
Generation 2/3/4 Intel Xeon
Intel Atom Rangeley, E38xx, x5-z8300線程

除了常見的 PC 以外,筆者也看見過有人在 UP Board(Intel Atom x5-Z8350 四核 CPU,4GB RAM,64GB eMMC)上跑。至於樹莓派(Raspberry Pi)是不建議的,首先由於樹莓派採用的是 ARM Cortex-A72 架構 CPU ,而後樹莓派 4 才引入了 USB 3.0,這意味着舊版本的樹莓派並不支持常見的 USRP RF 外設。簡而言之,我的實驗建議使用新一點的 PC。若是想作移動基站的話則能夠考慮 UP Board。

UP Board

基於 OAI 部署私有的 4G EPS(上)

Raspberry Pi 4 Model B

基於 OAI 部署私有的 4G EPS(上)

RF 外設

總得來講,OAI 同時支持空口外設(硬件外設支持)和系統級仿真(純軟件)兩種部署方式。有條件的話,筆者推薦入手 RF 外設,總體運行狀況相對穩定,也更感性直觀。同時能夠選擇的 RF 外設也不少,例如:USRP 系列或者 LimeSDR。筆者使用了是非官方版本的 USRP B210,便宜好用。

關於 USRP B210 更詳細的介紹,請瀏覽《USRP B210 軟件定義的無線網絡支撐設備》。

USRP B210

基於 OAI 部署私有的 4G EPS(上)

LimeSDR

基於 OAI 部署私有的 4G EPS(上)

可編程 SIM 卡

在使用 RF 外設部署的場景中也有兩種不一樣的 UE 側部署方式,一種是使用 SIM 卡 + 手機的組合,另外一種則是使用 PC + RF 外設模擬手機的組合。

基於 OAI 部署私有的 4G EPS(上)

固然了,除了在調試 UE 側功能實現的場景中,後者則顯得沒有必要了。筆者也使用了前一個部署方式,須要 3 個要素:

可編程的 SIM 卡(白卡)
SIM 卡讀寫設備
SIM 卡編程軟件

白卡推薦使用德國 Sysmocom 產的 sysmoUSIM-SJS1,這種卡在國內是不多見的,能夠上 taobao 或 xianyu 碰碰運氣。須要注意的有兩點,第一是首選新卡,不然 OAI 可能不支持;第二是購買時要確認白卡是具備 ADM key 的。關於 SIM 卡的詳細信息能夠瀏覽《讀寫可編程 SIM/USIM 卡》。不推薦使用常規的移動、聯通、電信卡,實際上筆者也沒有測試過是否可行,但據說是有些問題。

至於 SIM 卡讀寫設備選擇就不少了,筆者選擇的是 Omnikey CardMan 3121 USB CCID Reader,這個是 sysmoUSIM 官方文檔推薦的讀寫設備,taobao 可購。須要注意的是,Omnikey 只是一個讀寫外設,具體的讀寫操做、管理還須要使用到額外 SIM 卡編程軟件,在 Linux 操做系統上推薦使用 pySIM。關於 Omnikey + pySIM 的組合還有一個坑,就是要使用 Ubuntu 18.04,不然可能會碰見因爲驅動缺失致使發現不了 Omnikey 設備的狀況,這個在後文中有詳細記錄。Windows 操做系統能夠考慮 SIM Personalize tools,不過這個工具也比較認白卡,有些新卡可能就只讀不寫了。

基於 OAI 部署私有的 4G EPS(上)

UE 終端

上面也提到了 UE 終端可使用手機也可使用 PC 模擬,但如今 OAI 的 UE 仿真很不太穩定,不是一個好的選擇。至於手機的選擇也有講究,要注意手機的 Band(頻段)和 eNB 的 Band 是一致的,不然手機沒法搜索到你的 「網絡運營商」。由於有些國產手機是不支持某些國外 Band 的,好比小米 5 就對國外的 Band7 支持得不完整。若是你選擇了默認的 Band7 來部署 eNB(查看 eNB 配置文件中的配置項 eutra_band,e.g. eutra_band=7),那麼就可能會出現問題。一般大廠的手機沒有這個問題,但若是碰見了不妨檢查一下。

三星 Note8 的頻段

基於 OAI 部署私有的 4G EPS(上)

高精度參考時鐘

高精度的參考時鐘是可選的,假如在你試驗的場景中,手機須要在多個 eNB 之間切換,此時纔會須要,手機接入 eNB 會更快。高精度參考時鐘可使用 USRP B210 兼容的 GPS-DO 模塊。若是你沒有使用 USRP B210 也能夠採用 GPS-DO 擴展板 + 板載的晶振模塊(時鐘模塊)+ GPS 天線的組合,利用 GPS 的時間信號來進行時鐘的校準。GPS-DO 比較貴,也可使用外接的 OCXO 恆溫晶振,不須要天線。

USRP B210 專用 GPSGO

基於 OAI 部署私有的 4G EPS(上)

2

操做系統要求

部署 OAI 的操做系統首選 Ubuntu Linux 發行版,由於 OAI 是在 Ubuntu 上進行開發的,因此這是目前最穩定的部署平臺。筆者使用的是 Ubuntu 16.04 LTS。

NOTE 1:不建議在虛擬機上運行,由於某些虛擬機可能沒有加載須要的 CPU feature。

NOTE 2:不建議在容器上運行,由於 EPC 須要安裝內核模塊。

內核要求

OAI 對內核很是敏感,不少莫名其表的錯誤都是由內核不適應致使的,因此切記檢查內核的版本。筆者使用的是 Ubuntu 16.04 自帶的 Kernel 4.15.0,能夠部署成功但不能就說是沒有更好的選擇了。

安裝 low-latency kernel(低延時內核):

基於 OAI 部署私有的 4G EPS(上)

加載了 GTP 內核模塊(for OAI-CN):

基於 OAI 部署私有的 4G EPS(上)

CPU Frequency scaling

OAI eNB 的實時性(Real-Time Operation)要求很是高,爲了接入更多的 UE,須要進一步壓榨 PC 的性能。CPU 調頻功能容許操做系統經過提升或下降 CPU 的頻率來達到省電目的,這裏咱們將 CPU 的頻率打滿,不讓操做系統本身控制 CPU 的頻率。

在 BIOS 中移除電源管理功能(P-states, C-states)
基於 OAI 部署私有的 4G EPS(上)

在 BIOS 中關閉超線程(hyper-threading)

基於 OAI 部署私有的 4G EPS(上)

禁用 Intel CPU 的 P-state 驅動(Intel CPU 專用的頻率調節器驅動)

基於 OAI 部署私有的 4G EPS(上)

將 intel_powerclamp(Intel 電源管理驅動程序)加入啓動黑名單

基於 OAI 部署私有的 4G EPS(上)

關閉 CPU 睿頻

基於 OAI 部署私有的 4G EPS(上)

三、All-In-One 部署網絡拓撲

基於 OAI 部署私有的 4G EPS(上)

相關文章
相關標籤/搜索