分享

OAI eNB安装指南(USRP B210)

 达坂城大豆 2017-04-29
本帖最后由 ynnop 于 2017-4-21 17:53 编辑

1.        硬件要求
(1)当前基于oai软件建立的eNB和UE是使用Intel架构的PC机,要求支持(SSE, SSE2, SSS3, and SSE4),以下CPU是经过测试验证通过的:
Generation 3/4/5/6 Intel Core i5,i7
Generation 2/3/4 Intel Xeon
Intel Atom Rangeley, E38xx, x5-z8300

个人使用了Gigabyte GB-BRIX-7HA-6500微型电脑来部署OAI无线网,因为其BIOS设置C,P状态较为容易。
(2)对于UE,以下CPU是测试通过的
Intel:registered: Core:tm: i5-6600K CPU @ 3.50GHz × 4
Intel:registered: Core:tm: i5-6600 CPU @ 3.30GHz × 4
(3)支持的RF SDR有如下几种
USRP B210  http://www./product/details/UB210-KIT
USRP X310  http://www./product/details/X310-KIT
BladeRF    http:///
LimeSDR   http:///
EURECOM EXPRESSMIMO2 RF, http://openairinterface.
注:一般不建议使用虚拟机来部署,如果的确要使用,要确保接入到RF硬件被授予透传以及CPU flag(c,p状态)设置正确,此外,要求安装低延迟系统内核和分配足够的CPU资源。
2.        软件要求
(1)建议使用Ubuntu Linux 来部署,对于openairinterface5g的master  branch分支建议使用low-latency kernel 3.19内核的Ubuntu 14.04 LTS版本,对于develop branch(v5.0以后)分支,可以使用low-latency kernel 3.8内核的Ubuntu 16.04版本。
(2)测试通过的master branch 分支为Ubuntu 14.04.3 LTS/Linux Kernel version 3.19(低延迟内核) ,测试通过的develop branch(v5.0以后)为Ubuntu 16.04.2 LTS/Linux Kernel version 3.8(低延迟内核)
3.        软件安装步骤
(1)安装Ubuntu 14.04.3版本,执行sudo apt-get update更新软件源(重要),之后可安装Systemback软件,该软件可以实现Ubuntu下还原点的创建,方便后续安装过程中有问题是可以回退。
(2)安装低延迟内核 low-latency kernel 3.19
sudo apt-get update
sudo apt-get install linux-image-3.19.0-61-lowlatency linux-headers-3.19.0-61-lowlatency
安装完成后 使用命令 uname –a 查看,应该显示为:


(3)在BIOS里关掉所有功耗管理性能(sleep states, in particular C-states,CPU frequencyscaling (Intel SpeedStep)):
(4)在/etc/default/grub 文件中添加如下两行代码,关闭系统中的c,p-state状态
GRUB_CMDLINE_LINUX_DEFAULT='quiet intel_pstate=disable'
GRUB_CMDLINE_LINUX_DEFAULT='processor.max_cstate=1 intel_idle.max_cstate=0 idle=poll'
执行:sudo update-grub,更新系统

(5)在/etc/modprobe.d/blacklist.conf 文件末尾(如不存在,自行创建一个)添加如下代码:
blacklist intel_powerclamp
(6)关闭CPU超线程(Disable CPU Frequency scaling)
Install cpufrequtils:
sudo apt-get install cpufrequtils
编辑文件/etc/default/cpufrequtils (如不存在,自行创建一个)
sudo gedit /etc/default/cpufrequtils
在文件中添加一行代码。
GOVERNOR='performance'
执行如下命令,关闭ondemand daemon,防止重启后被改写.
sudo update-rc.d ondemand disable

(6)重启系统,安装i7z软件来进行上述设置的检查
重启系统
sudo apt-get update
sudo apt-get install i7z
sudo i7z
有如下显示:所有CPU内核要在C0 为100%。


注:Wi-Fi/Bluetooth
We have sometimes noticed real time issues while running lte-softmodem with USRP even after following above procedure. If you happen to face similar problems you should turn off Wi-Fi/Bluetooth (or remove respective drivers, if possible). This fixed the issue on some of our machines.

(6)下载oai无线网eNB代码:

sudo apt-get update
sudo apt-get install git

添加证书(Add a certificate from gitlab. to your Ubuntu 14.04 installation:)

echo -n | openssl s_client -showcerts -connect gitlab.:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt
下载代码:(master brangch)
git clone https://gitlab./oai/openairinterface5g.git
(7)运行Auto build脚本安装缺少的包
cd ~/openairinterface
sudo apt-get update

source oaienv              #非常重要,必须执行这条环境变量设置
cd cmake_targets
./build_oai -I --eNB -x --install-system-files -w USRP       #for USRP
./build_oai -I  --eNB -x --install-system-files -w EXMIMO    #for EXMIMO
./build_oai -I  --eNB -x --install-system-files -w BLADERF   #for BladeRF
./build_oai -I  --eNB -x --install-system-files -w LMSSDR   #for LmsSDR
./build_oai –h   为查看安装帮助文件。
注:如果之前已经存在 OAI build,可用 ./build_oai –c或-C移去已经存在的编译文件。
-c 代表,--clean,Erase all files to make a rebuild from start
只删除编译文件
-C 代表—clean all,Erase all files made by previous compilations, installations将删除所有的编译文件以及预安装的其他文件,包括编译文件夹
一般可用-c,完全清理可用-C
(8)修改eNB配置文件(以USRP B210为例,文件位于
~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf)
tracking_area_code  =  '1';
mobile_country_code =  '208';
mobile_network_code =  '93';
///以上数据要求与核心网保持一致。
////////// MME parameters:
    mme_ip_address      = ( { ipv4       = '192.168.12.62';   ///mme接口IP地址。
                              ipv6       = '192:168:30::17';
                              active     = 'yes';
                              preference = 'ipv4';
                            }
                          );
    NETWORK_INTERFACES :
    {
        ENB_INTERFACE_NAME_FOR_S1_MME         = 'eth0';          ///eNB本端 s1-C接口网卡名称。
        ENB_IPV4_ADDRESS_FOR_S1_MME           = '192.168.12.82/24';///eNB本端 s1-C接口IP地址。

        ENB_INTERFACE_NAME_FOR_S1U            = 'eth0';         ///eNB本端 s1-U接口网卡名称。
        ENB_IPV4_ADDRESS_FOR_S1U              = '192.168.12.82/24'; ///eNB本端 s1-U接口IP地址。
        ENB_PORT_FOR_S1U                      = 2152; # Spec 2152     ///eNB本端 s1-C接口端口号。
    };
(8)编译运行eNB

cd ~/openairinterface5g
sudo apt-get update
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
sudo -E ./lte-softmodem -h #(查看安装帮助文档)
You may print out the help message to see other options. A summary of the above options is given below.
·        -O: configuration file
·        -m: set the maximum downluink MCS
·        -t: set the maximum uplink MCS
·        -x: set the transmission mode, valid option: 1
·        -W: enable L2 Wireshark messages on localhost
Note: some other options are very useful for debugging purposes, such as -V, which enables VCD and generates a log file (/tnp/openair_dump_eNB.vcd) with a lot of details, and -d, which enables software oscilloscope with interactive graphic interfaces. Since both consume a lot of computing resources (one is heavy on file access, the other one is heavy on graphics), you are recommended to disable them for normal use.
注:要确保eNB的S1接口连接正常,否则无法运行。
当eNB连接成功后,再Terminal终端应该可以看到如下信息:
[SCHED][eNB] Started eNB main thread on CPU 1 TID 5273
eNB_thread: mlockall in ...
eNB_thread: mlockall out ...
waiting for sync (eNB_thread)
TYPE TO TERMINATE
Entering ITTI signals handler

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多