无线学习:OAI环境搭建【无线学习笔记四】

目录 

1、换源:

2、设置低时延内核

3、设置最大CPU效率

4、安装docker

5、解压文件导镜像

6、配置路由和包转发

7、修改 config_container 文件

8、修改 run_container 文件

9、运行epc

10、安装 enb 的依赖

11、安装 UHD

12、编译 ENB

13、修改 enb.conf 配置文件启动 enb

14、启动 enb

15、查看日志有 enb 连上 mme 则证明成功


 写在前面:OAI比较耗性能,所以尽量使用配置高一点的电脑。最重要的一点是别:在笔记本用虚拟机来搭!!!(我是因为条件限制和傻才想着在虚拟机上搭OAI)OAI搭建需要禁止睿频等操作硬件的高权限操作,虚拟机根本完成不了。跳过这些报错装上了也没用,在运行ENB的时候就会发现频率达不到(输出都是NULLLLLLLLLLLLLLLL)


搭建使用的是论坛打包好的文件【省去了科学上网的一大堆问题】:提示信息 - 开源无线网络-OpenXG - Powered by Discuz!

参考博客:

① OAI 4G 核心网搭建_牛奶可乐配不配的博客-CSDN博客

②OAI 4G搭建(一):总体流程_牛奶可乐配不配的博客-CSDN博客

我将论坛打包的文件和 OAI官网ENB 的源码文件都下下来打包放到百度云上了,有这个包就可以不用科学上网,在国内源环境下完成 OAI EPC + OAI ENB 的搭建。

链接:https://pan.baidu.com/s/1rUhCpLeO6cUQYJpwaGUehA 
提取码:r3ax

本文中使用的是 Ubuntu18.04 系统的笔记本,epc和enb在一台机器上


为了排除影响,我在新的系统环境下完成搭建:

1、换源:

sudo gedit /etc/apt/sources.list

 替换为阿里的源:

#  阿里镜像源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

 然后执行:

sudo apt-get update 
 sudo apt-get upgrade

2、设置低时延内核

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

重启后查看是否加载内核成功:

uname -a

显示有 -lowlatency 字样说明加载成功

3、设置最大CPU效率

sudo nano /etc/default/grub

末尾添加:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable"

 然后执行:

sudo apt-get install cpufrequtils
sudo echo GOVERNOR="performance"  >  /etc/default/cpufrequtils
sudo update-rc.d ondemand disable 

出现错误:
   update-rc.d: error: cannot find a LSB script for ondemand
则使用下面的代码

sudo /etc/init.d/cpufrequtils restart
systemd reboot
sudo /etc/init.d/cpufrequtils restart

 查看是否设置成功:

sudo cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

显示 performance 则设置成功

上面的操作应该是永久的,但我一段时间不用,再开机就会发现不是低延时内核和性能模式。所以建议每次开机都需要查一下内核和模式

uname -a

sudo cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

或者写一个脚本 max_cpu 每次开机后都执行一下 ./max_cpu 看看是不是低时延内核和性能模式。

cd ~
touch max_cpu
chmod +x max_cpu

vim max_cpu

//粘贴以下内容
//下面还要配置路由和包转发,所以具体内容看 6、配置路由和转发

4、安装docker

sudo apt install docker.io

给 docker 添加用户权限,可以不用每次运行dockers 都需加上 sudo :

参考:Ubuntu运行docker 权限问题Got permission denied_一个小白的求知路-CSDN博客

sudo groupadd docker             #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker                    #更新用户组
docker ps                        #测试docker命令是否可以使用sudo正常使用

5、解压文件导镜像

上面我整理的两个包:

NSA_insatll_0923.rar 是论坛整理的包(再次表示感谢)

openairinterface5g-master.tar.gz 是官网上enb的源码

下面是 NSA_install_0923.rar 包里文件的描述:

无线学习:OAI环境搭建【无线学习笔记四】_第1张图片

 解压:

rar x NSA_install_0923.rar

 进到 epc docker config 目录下解压 docker_images.tar 包

tar -xvf docker_images.tar

然后进入 docker_images 目录将四个镜像导入到 docker 里面

sudo docker load --input oai-hss:production.tar
sudo docker load --input oai-mme:production.tar
sudo docker load --input oai-spgwc:production.tar
sudo docker load --input oai-spgwu-tiny:production.tar

查看镜像是否导入成功

docker images

6、配置路由和包转发

路由:

#sudo ip route add 192.168.61.0/24 via EPCIP(EPC物理机IP) dev ETH_INFERFACE(enb或gnb机器的接口)

sudo ip route add 192.168.61.0/24 via 10.10.83.150 dev enp0s31f6

前面的 192.168.61.0/24 不用改,是mme的IP地址。后面的10.10.83.150 为装epc的电脑(就是此电脑)的物理IP,enp0s31f6 为物理IP对应的端口。【ifconfig 可以查看】

包转发:

sudo sysctl net.ipv4.conf.all.forwarding=1
sudo iptables -P FORWARD ACCEPT

这个没有写到文件里,所以每次关机就失效了。我就将上面的操作写进  (3、设置最大cpu效率) 的脚本 max_cpu 里面,每次开机检测内核和性能模式的时候顺带配置一遍。

cd ~
touch max_cpu
chmod +x max_cpu

vim max_cpu

//粘贴以下内容

echo "start config cpu ................."

uname -a

sudo /etc/init.d/cpufrequtils restart

systemd reboot

sudo /etc/init.d/cpufrequtils restart

sudo cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

sudo ip route add 192.168.61.0/24 via 10.10.83.150 dev enp0s31f6

sudo sysctl net.ipv4.conf.all.forwarding=1

sudo iptables -P FORWARD ACCEPT

echo "finish config................."

7、修改 config_container 文件

首先先解压  epc docker config 目录下的 epc-fed.tar 文件

tar -xvf epc-fed.tar

解压完出来的是 home 目录(这个我当时找了一会,以为解压完名字相同,linux命令没学明白)

进入 home 目录 直到 epc-fed 的目录:

cd home/g/work/

openair-epc-fed 目录拷贝到用户目录下(方便以后启动epc)

sudo cp -r openair-epc-fed/ ~/

修改 config_container 文件:

cd ~
cd openair-epc-fed/
vim config_container

① 修改IP

无线学习:OAI环境搭建【无线学习笔记四】_第2张图片

 ② 添加延时

防止出现以下报错:Error: The node does not have system_traces yet, probably still bootstrapping【无线学习笔记三】_yuyu的博客-CSDN博客

无线学习:OAI环境搭建【无线学习笔记四】_第3张图片

8、修改 run_container 文件

首先新建一个 oaiepc 目录

cd ~
mkdir oaiepc

 然后将刚刚解压包里的 mme(epc docker config 目录下) 文件放到 ~/oaiepc 目录下

cp mme ~/oaiepc

并修改权限

chmod +x mme

然后修改 run_container 文件里的 mme 路径(路径有点多,要分清楚)

无线学习:OAI环境搭建【无线学习笔记四】_第4张图片

 修改为:

然后在最后添加两行

sudo docker exec -d prod-oai-hss /bin/bash -c "route del default gw 172.17.0.1" 
sudo docker exec -d prod-oai-hss /bin/bash -c "route add default gw 10.10.83.150"

9、运行epc

./config_container 
./run_container 

 都不报错的话,则说明 epc 启动成功

上面的步骤是运行 epc 的,接下来是编译安装 enb

10、安装 enb 的依赖

首先回到刚才解压的目录,解压 oai_install.08.14.tar 文件

tar -xvf oai_install.08.14.tar

然后进到目录里分别执行 installinstall2 ,这两步省去了科学上网下载依赖

./install
./install2

11、安装 UHD

先解压 uhd_install_3.15.tar 文件

tar -xvf uhd_install_3.15.tar 

然后进到目录里执行 install_uhd 文件

./install_uhd

这一步之后 usrp 的驱动就安装好了,可以插上USRP B210 执行以下命令验证一下

sudo uhd_find_devices 

显示以下内容说明驱动依赖等安装完毕

无线学习:OAI环境搭建【无线学习笔记四】_第5张图片

12、编译 ENB

首先解压 openairinterface5g-master.tar.gz 文化

tar -xvzf openairinterface5g-master.tar.gz

然后改名移动到用户目录(方便后面启动)

mv openairinterface5g-master ~/openairinterface5g

接下来编译 enb

cd ~/openairinterface5g/
source oaienv
cd cmake_targets
sudo ./build_oai --eNB --UE -x  -w USRP

13、修改 enb.conf 配置文件启动 enb

首先将之前解压包里的 enb.conf 配置文件拷到指定目录下(/CONF/enb.conf)

cp enb.conf ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/

然后修改配置文件

gedit ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.conf

修改以下部分

无线学习:OAI环境搭建【无线学习笔记四】_第6张图片

将 IP 和端口改成当前机器的

无线学习:OAI环境搭建【无线学习笔记四】_第7张图片

14、启动 enb

cd ~/openairinterface5g/
source oaienv
cd cmake_targets/lte_build_oai/build
sudo -E ./lte-softmodem -O ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.conf -d 

15、查看日志有 enb 连上 mme 则证明成功

无线学习:OAI环境搭建【无线学习笔记四】_第8张图片

你可能感兴趣的:(无线学习笔记,网络安全)