我的机器版本号ubuntu 18.04
设置低时延内核
Linux提供了五种内核类型,我们希望系统尽可能的实时,同时又不会降低太多的性能(实时性越高,性能,功耗等的损失越大)。这种情况下,我们可以尝试使用低延时内核。OAI要求使用低时延内核.
首先使用下列命令安装:
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
重启后进入grub2选择页的时候选下面的高级启动选项
进去后选新装上的 -lowlatency 内核启动即可
查看安装内核:
uname -a
显示结果为下面内容,则成功:
Linux alice 5.4.0-65-lowlatency #73~18.04.1-Ubuntu SMP PREEMPT Tue Jan 19 09:45:51 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
设置最大CPU效率
OAI要求移除BIOS(睡眠状态,尤其是C状态)和CPU频率缩放(Intel SpeedStep)的功率管理特征,以保证OAI运行在最大CPU时钟,处在performance模式,并且关闭p-state驱动.
首先添加GRUB_CMDLINE_LINUX_DEFAULT=“quiet intel_pstate=disable”:
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable"
将 Governor设置为performance:
sudo apt-get install cpufrequtils
如果没有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
最后检查CPU内核:
sudo cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
如果显示performance则设置成功
以上设置也可以在BIOS界面进行.
下载
(问题解决见OAI 4G搭建(二):git clone遇到的问题)
克隆仓库
git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git
修改配置文件
基站
gedit ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
查找:
plmn_list = ( { mcc = 110; mnc =01; mnc_length = 2; } );
mcc和mnc改成自己的设置,mme的IP地址改成自己搭建的mme的地址
// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.61.4";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
enable_measurement_reports = "no";
eNB的地址改成本机地址
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "wlp0s20f3";
ENB_IPV4_ADDRESS_FOR_S1_MME = "10.128.220.209/18";
ENB_INTERFACE_NAME_FOR_S1U = "wlp0s20f3";
ENB_IPV4_ADDRESS_FOR_S1U = "10.128.220.209/18";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
ENB_IPV4_ADDRESS_FOR_X2C = "10.128.220.209/18";
ENB_PORT_FOR_X2C = 36422; # Spec 36422
};
UE
gedit ~/openairinterface5g/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf
修改USIM相关设置
UE0:
{
USER: {
IMEI="356113022094149";
MANUFACTURER="EURECOM";
MODEL="LTE Android PC";
PIN="0000";
};
SIM: {
MSIN="9876543210"; # IMSI=MCC+MNC+MSIN,根据HSS中存储的IMSI修改
USIM_API_K="11111111111111111111111111111111"; # 根据HSS中存储的ki修改
OPC="f47f37e4719a9c379e3447f089b1f10a"; # 根据HSS中保存的OP和ki进行计算,得到OPC
};
# Home PLMN Selector with Access Technology
HPLMN= "11001"; # Home PLMN=MCC+MNC,mcc和mnc改成自己的设置
# User controlled PLMN Selector with Access Technology
UCPLMN_LIST = ();
# Operator PLMN List
OPLMN_LIST = ("11001", "20810", "20811", "20813", "20893", "310280", "310028");
# Operator controlled PLMN Selector with Access Technology
OCPLMN_LIST = ("22210", "21401", "21406", "26202", "26204");
# Forbidden plmns
FPLMN_LIST = ();
# List of Equivalent HPLMNs
#TODO: UE does not connect if set, to be fixed in the UE
# EHPLMN_LIST= ("20811", "20813");
EHPLMN_LIST= ();
};
编译
cd openairinterface5g
设置环境变量
source oaienv
cd cmake_targets
编译(问题解决见OAI 4G搭建(三): 编译遇到的问题)
安装依赖库
sudo ./build_oai -I --install-system-files
编译
sudo ./build_oai --eNB --UE -x -w USRP
参数说明:
- -I: installs required packages.安装ASN1和uhd驱动等,安装好后再次编译时可以不加该参数。
- –eNB: installs eNB, i.e., lte-softmodem.后面编译成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.
- –phy_simulators: Makes the unitary tests Layer 1 simulators
- –core_simulators: Makes the core security features unitary simulators
运行
基站
首先连接好USRP
设置环境
source oaienv
进入build目录下
cd ~/openairinterface5g/cmake_targets/lte_build_oai/build
启动基站
sudo -E ./lte-softmodem -O ~/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf -d
查看参数说明
sudo -E ./lte-softmodem -h
UE
设置环境
source oaienv
进入build目录下
cd ~/openairinterface5g/cmake_targets/lte_build_oai/build
配置
../../nas_sim_tools/build/conf2uedata -c ~/openairinterface5g/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf -o .
启动
sudo -E ./lte-uesoftmodem -C 2685000000 -r 50 --ue-rxgain 125 --basicsim
-r 25:基站配置文件的N_RB_DL
-C 2685000000:基站配置文件的下行频率downlink_frequency
–ue-rxgain 125 :UARP的发射信号增益
补充
- ubuntu更换源
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
- 安装git
sudo apt-get install git
- 设置静态IP
关机后再次打开,IP地址改变了,需要重新修改EPC和eNB的配置文件,很麻烦,于是设置了静态IP
首先查看本机网卡名、IP地址和子网掩码,记录下来
ifconfig
查看本机gateway地址,记录下来
route -n
在/etc/netplan目录下,更改文件*.yaml
network:
ethernets:
wlp0s20f3:
dhcp4: no
addresses: [10.128.220.209/18]
gateway4: 10.128.192.1
nameservers:
addresses: [114.114.114.114]
version: 2
renderer: NetworkManager
dhcp4: yes 代表DHCP自动获取IP,将其改为no
然后应用修改
sudo netplan apply