OAI 4G搭建(一):总体流程

我的机器版本号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的发射信号增益

补充

  1. 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
  1. 安装git
sudo apt-get install git
  1. 设置静态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
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值