說明:由于OAI搭建系列的貼是在2017年時寫的,是以後來就沒有繼續搞OAI了,手上也沒有USRP這些玩意兒了,很多網友按照17年的教程可能會搭建失敗,但是OAI疊代很快,且本人沒有USRP和白卡去驗證這些問題,是以恕不能一一解答疑惑,抱歉!以前的貼僅做參考。
上個寫輪眼防水
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90TQPl3aU9UeRpXT4FEVkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TMyYDM0ATM3EDNwgDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
1 軟硬體準備
ENB對硬體要求比較高,是以請準備英特爾三代以上的i5/i7處理器。
其次我在ubuntu 17單獨搭過ENB,但是不知道是什麼原因,運作起來非常不穩定。是以我又換回ubuntu 14了,目前這個ENB在ubuntu14上已經連續運作六個小時,沒任何問題。
5-(2)中的修改clone位址方法來自CSDN部落客xrh003(http://blog.csdn.net/xrh003/)
最重要的是網要好,特别是通路外網速度。
2 核心設定
(1) 更換低延遲時間核心:
sudo apt-get update(這一步最好能成功,不然後面就麻煩了)
sudo apt-get install linux-image-3.19.0-61-lowlatency linux-headers-3.19.0-61-lowlatency
然後 shutdown –r now重新開機
(2) 重新開機後uname –a,會顯示系統核心資訊,可以看到:
Linux … 3.19.0-61-lowlatency……..
3 電源管理
為了節能,一般電腦CPU并非全速運作,為了更好的性能,是以需要進行相關設定。
(1) 編輯/etc/default/grub 在裡面添加兩行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable"
GRUB_CMDLINE_LINUX_DEFAULT="processor.max_cstate=1 intel_idle.max_cstate=0 idle=poll”
我是添加到GRUB_CMDLINE_LINUX_DEFAULT="quiet splash”這行的下面兩行
(2) 編輯檔案/etc/modprobe.d/blacklist.conf 在最後添加這句 blacklist intel_powerclam
(3) 重新開機,進入bios關閉與節能或者影響CPU次能性能的設定,如超線程,C-state(這一步非必須,隻要電腦性能夠強,有的電腦bios裡面沒有這些設定,不必擔心)
(4) sudo apt-get install i7z安裝i7z 同時運作i7z檢視CPU運作資訊。
(5) sudo apt-get install cpufrequtils安裝cpufrequtils,然後編輯/etc/default/cpufrequtils檔案(有可能為空檔案),在裡面加上一句:GOVERNOR="performance"
(6) sudo update-rc.d ondemand disable
(7) 重新開機
4 下載下傳源碼
(1) 安裝git: sudo apt-get install git
(2) 克隆源碼git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
5編譯準備(如果前面sudo apt-get update能成功 則先不用換源)
(1) 更換源:sudo gedit /etc/apt/source.list 将裡面所有内容替換為
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
或者換成網易的163源(我感覺這個效果更好)
也可以 點選桌面最左邊第一個圖示 搜尋update-->打開software updater-->等待-->點選setting-->ubuntu software-->download from(選China->163之類的)-->close->reload
如果apt-get update出錯,就:搜尋update-->打開software updater-->等待-->點選setting-->other software-->删掉跟出錯相關的地方。
儲存退出,然後sudo apt-get update
(2)
在進行第二步之前,打開openairinterface5g/cmake_targets/tools/build_helper,用浏覽器通路裡面的
https://gist.github.com/2190472.git
https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
(若第一個位址能通路,則無需進行下面的替換。若第二個位址不能通路,請檢視我另外的一個文章)
編輯源碼包openairinterface5g/cmake_targets/tools/build_helper
注釋掉所有的sodo apt-get update那行
找到這兩行(我下載下傳的版本中,在411,412行,可以搜尋2190472定位)
$SUDO rm -fr /opt/ssh
$SUDO git clone https://gist.github.com/2190472.git /opt/ssh
改為:
$SUDO rm -fr /opt/ssh
$SUDO git clone https://github.com/JackPaul/ssh.git /opt/ssh
6 編譯ENB
(1)進入openairinterface ( 也就是進入源碼檔案夾),依次執行下面操作
source oaienv
cd cmake_targets
./build_oai -I --eNB -x --install-system-files -w USRP
若無紅色報錯,說明編譯成功
若在protobuf-c這地方出錯,請看我另外一個文章
若是顯示apt-get update之類的錯誤 注釋掉build_helper裡面的apt-get update語句
7 配置ENB
(1)編輯源碼包中/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf或者編輯:/targets/PROJECTS/GENERIC-LTE- EPC/CONF/enb.band7.tm2.usrpb210.conf(多輸入輸出)具體如下
(這裡我的EPC主機IP位址為10.105.42.14,ENB主機網卡名為eth0,IP位址為10.105.43.187,子網路遮罩為255.255.252.0—>算出網絡字首為22位)
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "93";(和mme.conf裡面一緻)
// MME parameters:
mme_ip_address = ( { ipv4 = "10.105.42.14";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "10.105.43.187/22";
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "10.105.43.187/22";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
8運作
cd ~/openairinterface5g
source oaienv
./cmake_targets/build_oai -w USRP -x -c --eNB(僅第一次運作時需要,不是必須,這條來自官網教程,但我沒執行)
cd cmake_targets/lte_build_oai/build
sudo -E ./lte-softmodem -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -d(注意将$OPENAIR_DIR換成你自己下載下傳的openairinterface5g路徑 不要直接複制!!!)