天天看點

OAI搭建之ENB

說明:由于OAI搭建系列的貼是在2017年時寫的,是以後來就沒有繼續搞OAI了,手上也沒有USRP這些玩意兒了,很多網友按照17年的教程可能會搭建失敗,但是OAI疊代很快,且本人沒有USRP和白卡去驗證這些問題,是以恕不能一一解答疑惑,抱歉!以前的貼僅做參考。

上個寫輪眼防水

OAI搭建之ENB

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路徑 不要直接複制!!!)