03 - OAI接入网搭建过程 - 研0

  • 环境要求:Ubuntu 16.04 LTS / CentOS 7 / Ubuntu 14.04 LTS

本文以Ubuntu 16.04.3 LTS 为例,硬件环境为core i7 6500U,16GB DDR3@1600

…广告:…
OAI核心网搭建:https://blog.csdn.net/BUPTOctopus/article/details/81560514
srsLTE搭建:https://blog.csdn.net/BUPTOctopus/article/details/82997806


第零章:可选

  • 0.1 切换至Ubuntu 低延迟内核
sudo apt-get install linux-lowlatency
sudo apt-get install linux-image-`uname -r | cut -d- -f1-2`-lowlatency
sudo apt-get install linux-headers-`uname -r | cut -d- -f1-2`-lowlatency
sudo reboot
  • 0.2 关闭睿频
sudo apt-get install cpufrequtils
sudo vi /etc/default/cpufrequtils

添加:GOVERNOR="performance"

sudo update-rc.d ondemand disable
sudo /etc/init.d/cpufrequtils restart
cpufreq-info
#查看睿频是否成功关闭(频率变动极小)
  • 0.3 删除BIOS中的所有电源管理功能(睡眠状态,特别是C状态)
sudo vi /etc/default/grub
#在末尾添加:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable"
GRUB_CMDLINE_LINUX_DEFAULT="quiet processor.max_cstate=1 intel_idle.max_cstate=0 idle=poll"

sudo vi /etc/modprobe.d/blacklist.conf
#在末未添加:(将Intel的电源管理加入黑名单)
blacklist intel_powerclamp

sudo reboot

第一章 OAI接入网基础文件下载

  • 1.1 安装git
sudo apt-get update
sudo apt-get install subversion git
  • 1.2 Add a certificate from gitlab.eurecom.fr to your Ubuntu
echo -n | openssl s_client -showcerts -connect gitlab.eurecom.fr:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt 
  • 1.3 Disable certificate check completely if you do not have root access to /etc/ssl directory
sudo git config --global http.sslverify false
  • 1.4 接入网基本文件下载
sudo git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git

第二章 Build , Config and Run

  • 2.1 Build
    直接用OAI中的编译脚本build_oai来装依赖的话,需要xx上网,麻烦。现在做了个离线安装包,顺便也是宣传一下我们的开源5G社区(国内):http://community.opensource5g.org/forum.php?mod=viewthread&tid=3#lastpost
    这个页面是NSA的安装教程,eNB部分是一样的。
cd ~/openairinterface5g
sudo git checkout develop    //你想用的分支
source oaienv
cd cmake_targets
  • 接下来一步需要****。
    测试有没有*好可以手动装一下ppa uhd驱动sudo -E add-apt-repository ppa:~ettusresearch/ubuntu/uhd来测试。

让挂个代理就违规了?墙都不让翻做nmd科研呢?

如果还是太慢,可以在build_helper里注释掉以下两句:

sudo vim ~/openairinterface5g/cmake_targets/tools/build_helper

然后注释掉这两句

$SUDO rm -rf /opt/ssh
$SUDO git clone https://gist/github.com/2190472.git /opt/ssh

相应的文件虽然没啥用……我下下来传百度云了:
链接:https://pan.baidu.com/s/1A2OZq1XrLzb89CVKYFxCyw
提取码:8sn7
(就一个文件,ssh.py)

  • 此外如果需要手动装uhd驱动的话可以去http://files.ettus.com/binaries/uhd_stable/src/
  • 装完驱动如果usrp的images下载太慢的话可以直接用我传到百度云的,链接:https://pan.baidu.com/s/18iVdGWKyvPp21_7zvzIJxw 提取码:UHDI 放到/usr/share/uhd/images中,然后再运行build_oai
  • 如果想要手动安装ASN1,就在build_helper中注释掉ASN1的安装函数install_asn1c_from_source

编译:

./build_oai -I --eNB -x --install-system-files -w USRP

参数说明:(可以./build_oai -h查看所有的参数说明)
-I: installs required packages.ASN1和uhd驱动等都需要挂代理。
–eNB: installs eNB, i.e., lte-softmodem.编译成eNB。后面编译成UE这里改成–UE即可。
-x: adds a software oscilloscope feature to the produced binaries.装个软件示波器。
–install-system-files: installs OAI required files in Linux system.
-w: adds the hardware support, which is USRP in our case.

  • 2.2 修改~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/下配置文件的内容
sudo vim ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf

mobile_country_codemobile_network_code 改为跟核心网一样
20893
mme_ip_address中的ipv4改为运行核心网主机的IP
mmeip
NETWORK_INTERFACES中俩IP改为自己的IP
ip
然后把它拷到~/openairinterface5g/cmake_targets/lte_build_oai/build目录下:

注意:最新develop分支eNB的编译也放到cmake_targets/ran_build/build里了,注意下你用的版本和目录

sudo cp ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf ~/openairinterface5g/cmake_targets/lte_build_oai/build/
  • 2.3 修改eNB配置
sudo vi ~/openairinterface5g/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf

因为IMSI=MCC+MNC+MSIN ID,之前测试UE的IMSI设置为208930100001111,所以将某个PLMN的MCC改为208,MNC改为93(PLMN中保证有一个你配置的MCC、MNC就可以),UE0的MSIN改为0100001111.
注意:当换用其他的MCC MNC的时候,比如,如果MCC+MNC是6位,那么MSIN ID只需要9位。
其余的默认就可以,要改的话注意写卡和EPC数据库里都要改。

  • 2.4 run接入网(先插上USRP)
# 旧版路径:
cd ~/openairinterface5g/cmake_targets/lte_build/build
# 新版路径:
cd ~/openairinterface5g/cmake_targets/ran_build/build
# 运行
sudo ./lte-softmodem -O enb.band7.tm1.usrpb210.conf
  • 2.5 测试:写SIM卡,插入手机,连接接入网
Ki: 8BAF473F2F8FD09487CCCBD7097C6862 (即HSS数据库里的key,eNB里的USIM_API_K,不要改,除非HSS里也改)
OP: 11111111111111111111111111111111
OPc:e734f8734007d6c5ce7a0508809e7e9c
C1:00, C2: 01, C3: 02, C4: 04, C5: 08, R1: 40, R2: 00, R3: 20, R4: 40, R5: 60 all in hexa.
SPN (service provider Name): OpenAirInterface
MCC: 208 (FR)
MNC: 93 (new MNO MNC)
IMSI: 208930000000001 (MCC|MNC|id)
SQN (Sequence number): 000000000001 (不是IMSI)
IMEI:(可以不写,写的话注意匹配数据库)35609204079301

第三章 OAI UE

  • 3.1 与1.1到1.4一样
  • 3.2 Build

和接入网build的区别只有–eNB变成了–UE

同样要挂代理,或者像搭接入网时候一样注释掉一部分源码

cd ~/openairinterface5g/cmake_targets
sudo ./build_oai -I --UE --install-system-files -x -w USRP
  • 3.3

通过运行sudo tee UE.log ,可以记录UE日志记录以用于进一步开发/测试。
安装ue_ip.ko内核模块并调出OIP接口oip0。MME将使用IP pool为该接口分配IP地址。
脚本:(注意需要修改一下路径)

sudo vim init_nas_s1
 #!/bin/bash
    LTEIF=oip0
    OPENAIR_DIR=/home/m/openairinterface5g/

load_module() {
  mod_name=${1##*/}
  mod_name=${mod_name%.*}
  if awk "/$mod_name/ {found=1 ;exit} END {if (found!=1) exit 1}" /proc/modules
    then
      echo "module $mod_name already loaded: I remove it first"
      sudo rmmod $mod_name
  fi
  echo loading $mod_name
  sudo insmod $1
}

load_module $OPENAIR_DIR/targets/bin/ue_ip.ko

if [ "$1" = "UE" ]; then
  echo "bring up oip0 interface for UE"
  ifconfig oip0 up
fi

ip route flush cache
sleep 1
sysctl -w net.ipv4.conf.all.log_martians=1
echo "Disabling reverse path filtering"
sysctl -w net.ipv4.conf.all.rp_filter=0
ip route flush cache

# Check table 200 lte in /etc/iproute2/rt_tables
fgrep lte /etc/iproute2/rt_tables  > /dev/null 
if [ $? -ne 0 ]; then
    echo "200 lte " >> /etc/iproute2/rt_tables
fi
ip rule add fwmark 1 table lte
ip route add default dev $LTEIF table lte

执行完脚本之后,

cd ~/openairinterface5g/
sudo chmod +x init_nas_s1
sudo ./targets/bin/init_nas_s1 UE
cd targets/bin
sudo -E ./lte-uesoftmodem.Rel14 -U -C2685000000 -r50 --ue-scan-carrier --ue-txgain 70 --ue-rxgain 80 2>&1 | sudo tee UE.log

具体是lte-uesoftmodem.Rel几取决于下的代码的版本支持到Rel几,
现在(2018.9)的代码版本支持到Rel14,
参数意义:-U:UE数量, -C:设置所有子载波的下行链路频率,
-r:PRB, 目前接入网的可选值: 6, 25, 50, 100。


不更新了,OAI 的4G UE太难用了,4G软终端可以考虑用srsUE,OAI 5G UE现在进展还不错。
见新的博客2018.10.10。
在这里插入图片描述


  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值