基於 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 的實踐學習。

注:下文部分內容摘自 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(上)

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章