ubuntu 16.04系统LimeSDR V1.4使用OpenAirInterface搭建LTE实验环境

操作系统调整

参考 ubuntu 16.04低延迟内核 安装低延时内核CPU调整为最大性能模式,并且不允许降低频率。

$ sudo apt-get install cpufrequtils

$ sudo touch /etc/default/cpufrequtils

$ sudo sed -i "/GOVERNOR.*/d" /etc/default/cpufrequtils

$ test -s /etc/default/cpufrequtils && sudo sed -i '$a\GOVERNOR=\"performance\"' /etc/default/cpufrequtils || echo "GOVERNOR=\"performance\"" | sudo tee /etc/default/cpufrequtils

$ sudo update-rc.d ondemand disable

$ sudo reboot

安装依赖包

$ sudo apt-get install cmake g++ libpython-dev python-numpy swig git libsqlite3-dev libi2c-dev libusb-1.0-0-dev libwxgtk3.0-dev freeglut3-dev

编译安装SoapySDR

$ cd ~

$ git clone https://github.com/pothosware/SoapySDR.git

$ cd SoapySDR

$ git pull origin master

$ mkdir build && cd build

$ cmake ..

$ make -j4

$ sudo make install

$ sudo ldconfig

编译安装LimeSDR

$ cd ~ 

$ git clone https://github.com/myriadrf/LimeSuite.git

$ cd LimeSuite

#目前的测试发现,超过这个版本的代码无法正常的发出信号,
#也就是手机搜索不到我们创建好的基站,
#反复研究,确认是“Commit 9883bb97 by ignasj, 2017-06-30 下午04:20” 
#对于“lms7_device.cpp”的修改导致的问题,原因为天线发射增益设置不正确
#解决方法参考 https://www.mobibrw.com/?p=11957
#截止目前2018.09.03版本的代码貌似已经修正这个问题了,应该已经可以正常使用了。
#测试来说,还是使用这个版本吧

$ git checkout v17.06.0

# 不可删除build目录,清理build目录后要还原被误删除的文件,
# 原因在于build目录下存在mcu程序,默认应用启动后从这个目录提取mcu程序刷新到设备

$ mkdir build ; cd build

# cmake -DCMAKE_BUILD_TYPE=Debug ..
$ cmake ..

$ make -j4

$ sudo make install

$ sudo ldconfig

$ cd ../udev-rules/

$ sudo bash install.sh

# Download board firmware
$ sudo LimeUtil --update

#固件下载地址 http://downloads.myriadrf.org/project/limesuite/
#如果上述的固件无法下载,可以从此处下载一份拷贝
#https://www.mobibrw.com/wp-content/uploads/2018/03/17.06-LimeUtils-fpga-fw.zip

编译安装USRP驱动

$ sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-mako doxygen python-docutils python-requests cmake build-essential

$ cd ~

$ git clone git://github.com/EttusResearch/uhd.git

$ cd uhd; mkdir host/build; cd host/build

$ cmake -DCMAKE_INSTALL_PREFIX=/usr ..

$ make -j4

$ sudo make install

$ sudo ldconfig

#下面脚本的作用是到http://files.ettus.com/binaries/images/下载最新的镜像文件,并解压缩到 /usr/share/uhd/images目录下

$ sudo /usr/lib/uhd/utils/uhd_images_downloader.py

#如果上面的镜像下载失败,可以尝试执行如下命令从本站下载
# cd ~ ; wget https://www.mobibrw.com/wp-content/uploads/2018/03/uhd-images_003.010.003.000-release.zip
# sudo unzip uhd-images_003.010.003.000-release.zip -d /user

下载并解压缩需要的补丁,点击此处下载

$ cd ~

# 原始补丁地址 http://open-cells.com/d5138782a8739209ec5760865b1e53b0/opencells-mods-20170710.tgz

$ wget https://www.mobibrw.com/wp-content/uploads/2018/03/opencells-mods-20170710.tgz

$ tar xf opencells-mods-20170710.tgz

下载并编译eNB

$ cd ~

$ git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git

$ cd openairinterface5g

$ git checkout develop

#目前的补丁程序只在这个版本上是有效的,后续版本会补丁失败
$ git checkout 08b8b3142df16831396a5283a015564ff56bf91c -b ubuntu16

#应用补丁
$ git apply ../opencells-mods/eNB.patch

#对于国内的用户来说,国外的几个代码地址需要修改一下,否则会出现无法下载或者下载非常慢的情况
$ sed -i "s/git clone https:\/\/gist.github.com\/2190472.git \/opt\/ssh/wget https:\/\/www.mobibrw.com\/wp-content\/uploads\/2018\/03\/ssh.tar.gz \&\& sudo tar -zxvf ssh.tar.gz -C \/opt/g" cmake_targets/tools/build_helper

$ sed -i "s/git clone https:\/\/gitlab.eurecom.fr\/oai\/asn1c.git \/tmp\/asn1c/wget https:\/\/www.mobibrw.com\/wp-content\/uploads\/2018\/03\/asn1c.tar.gz \&\& tar -zxvf asn1c.tar.gz -C \/tmp/g" cmake_targets/tools/build_helper

$ sed -i "s/https:\/\/pypi.python.org\/packages\/18\/fa\/dd13d4910aea339c0bb87d2b3838d8fd923c11869b1f6e741dbd0ff3bc00\/netifaces-0.10.4.tar.gz/https:\/\/www.mobibrw.com\/wp-content\/uploads\/2018\/03\/netifaces-0.10.4.tar.gz/g" cmake_targets/tools/build_helper

$ sed -i "s/https:\/\/github.com\/google\/protobuf\/releases\/download\/v2.6.1\/protobuf-2.6.1.tar.gz/https:\/\/www.mobibrw.com\/wp-content\/uploads\/2018\/03\/protobuf-2.6.1.tar.gz/g" cmake_targets/tools/build_helper

$ sed -i "s/git clone https:\/\/github.com\/protobuf-c\/protobuf-c.git/wget https:\/\/www.mobibrw.com\/wp-content\/uploads\/2018\/03\/protobuf-c.tar.gz \&\& tar -zxvf protobuf-c.tar.gz/g" cmake_targets/tools/build_helper

$ sed -i "s/http:\/\/mirrors.dotsrc.org\/gcrypt\/gnutls\/v3.1\/gnutls-3.1.23.tar.xz/https:\/\/www.mobibrw.com\/wp-content\/uploads\/2018\/03\/gnutls-3.1.23.tar.xz/g" cmake_targets/tools/build_helper

$ sed -i "s/https:\/\/ftp.gnu.org\/gnu\/nettle\/nettle-2.5.tar.gz/https:\/\/www.mobibrw.com\/wp-content\/uploads\/2018\/03\/nettle-2.5.tar.gz/g" cmake_targets/tools/build_helper 

#修正兼容问题,更高版本的protobuf-c跟我们上面安装的版本不匹配,会导致编译错误
$ sed -i "s/cd protobuf-c/cd protobuf-c \&\& git checkout 2a46af42784abf86804d536f6e0122d47cfeea45/g" cmake_targets/tools/build_helper

#执行编译
$ source oaienv  

$ ./cmake_targets/build_oai -I       # install SW packages from internet

# ./cmake_targets/build_oai  -w USRP --eNB # compile eNB
# 注意如果后续重新编译过limesdr的驱动,这部分也需要重新编译

$ ./cmake_targets/build_oai -c -w LMSSDR --eNB

下载并编译EPC(核心网)

$ git clone https://gitlab.eurecom.fr/oai/openair-cn.git

$ cd openair-cn

$ git checkout develop

$ git checkout 724542d0b59797b010af8c5df15af7f669c1e838 -b ubuntu16

#应用补丁 
$ git apply ../opencells-mods/EPC.patch

#对于国内的用户来说,国外的几个代码地址需要修改一下,否则会出现无法下载或者下载非常慢的情况
$ sed -i "s/git clone https:\/\/gitlab.eurecom.fr\/oai\/freediameter.git -b eurecom-1.2.0/wget https:\/\/www.mobibrw.com\/wp-content\/uploads\/2018\/03\/freediameter.tar.gz \&\& tar -zxvf freediameter.tar.gz \&\& cd freediameter \&\& git checkout eurecom-1.2.0 \&\& cd ../g" build/tools/build_helper

$ source oaienv; cd scripts

#安装依赖的软件,库
$ ./build_hss -i
# Do you want to install freeDiameter 1.2.0 ?<y/N>: yes
# 其他具体情况自行处理


#对于国内的用户来说,国外的几个代码地址需要修改一下,否则会出现无法下载或者下载非常慢的情况
$ sed -i "s/git clone git:\/\/git.osmocom.org\/libgtpnl/wget https:\/\/www.mobibrw.com\/wp-content\/uploads\/2018\/03\/libgtpnl.tar.gz \&\& tar -zxvf libgtpnl.tar.gz/g" ../build/tools/build_helper



#Install 3PP SW for mme and spgw
$ ./build_mme -i
# Do you want to install freeDiameter 1.2.0 ?<y/N>: no
# Do you want to install asn1c rev 1516 patched? <y/N>: no
# Do you want to install libgtpnl ? <y/N>: yes
# 其他具体情况自行处理



$ ./build_spgw -i
# Do you want to install libgtpnl ? <y/N>: no

#调整mme的编译模板,默认情况下mme编译出来的是Debug版本,
#但是这会触发"src/gtpv2-c/nwgtpv2c-0.11/src/NwGtpv2c.c"的断言异常
#”mme: ~/openair-cn/src/gtpv2-c/nwgtpv2c-0.11/src/NwGtpv2c.c:487: nwGtpv2cCreateLocalTunnel: Assertion `0' failed.“
#这个断言异常并不是大问题,直接无视即可
#因此我们把此处的编译调整为RelWithDebInfo
$ sed -i "s/\"Debug\"/\"RelWithDebInfo\"/g" ../build/mme/CMakeLists.template

#修正代码里面的几处问题
$ sed -i "s/while 0/while (0)/g" ../src/utils/log.h

$ sed -i 's/char[ \t]*pid_dec\[32]/char pid_dec\[128]/g' ../src/utils/pid_file.c

#正式进行编译操作
$ ./build_hss -c -v

$ ./build_mme -v

$ ./build_spgw -v

配置EPC

# 拷贝配置文件
$ cd ~

$ sudo mkdir -p /usr/local/etc/oai

$ sudo cp -rp opencells-mods/config_epc/* /usr/local/etc/oai


# 生成证书文件
$ cd openair-cn; source oaienv; cd scripts

$ ./check_hss_s6a_certificate /usr/local/etc/oai/freeDiameter hss.OpenAir5G.Alliance

$ ./check_mme_s6a_certificate /usr/local/etc/oai/freeDiameter mme.OpenAir5G.Alliance

# 配置出口网卡的名字,这个网卡用于访问互联网的时候使用
# 如果只有一块有线网卡,并且用这块有线网卡上网,则使用如下命令即可拿到网卡名
# `ifconfig | grep "Link" | awk '{print $1}' | grep "en"` 
# 其他情况请根据实际情况配置网卡
$ sudo sed -i "s/PGW_INTERFACE_NAME_FOR_SGI.*/PGW_INTERFACE_NAME_FOR_SGI = \"`ifconfig | grep "Link" | awk '{print $1}' | grep "en"`\";/g" /usr/local/etc/oai/spgw.conf

# 配置访问MySQL时候的密码,"/usr/local/etc/oai/hss.conf",此处假定MySQL的密码为"123"
$ sudo sed -i "s/^MYSQL_pass.*/MYSQL_pass = \"123\"/g" /usr/local/etc/oai/hss.conf


#导入数据库,建立表结构
$ ./hss_db_import 127.0.0.1 root 123 oai_db ~/opencells-mods/opencells_db.sql

修改我们UE需要使用的配置文件

$ cd ~

$ cd openairinterface5g; source oaienv

#配置文件为"targets/PROJECTS/GENERIC-LTE-EPC/CONF/"目录下的包含lmssdr的配置文件
$ sed -i "s/mobile_network_code.*/mobile_network_code = \"92\";/g" ./targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf

$ vim ./targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf

找到:

////////// MME parameters:
mme_ip_address      = ( { ipv4       = "192.168.12.148";
                          ipv6       = "192:168:30::17";
                          active     = "yes";
                          preference = "ipv4";
                        }
                      );

NETWORK_INTERFACES :
{
    ENB_INTERFACE_NAME_FOR_S1_MME            = "eth0";
    ENB_IPV4_ADDRESS_FOR_S1_MME              = "192.168.12.150/24";

    ENB_INTERFACE_NAME_FOR_S1U               = "eth0";
    ENB_IPV4_ADDRESS_FOR_S1U                 = "192.168.12.150/24";
    ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
};

替换为:

////////// MME parameters:
mme_ip_address      = ( { ipv4       = "127.0.0.20";
                          ipv6       = "192:168:30::17";
                          active     = "yes";
                          preference = "ipv4";
                        }
                      );

NETWORK_INTERFACES :
{
    ENB_INTERFACE_NAME_FOR_S1_MME            = "lo";
    ENB_IPV4_ADDRESS_FOR_S1_MME              = "127.0.0.10/8";

    ENB_INTERFACE_NAME_FOR_S1U               = "lo";
    ENB_IPV4_ADDRESS_FOR_S1U                 = "127.0.0.10/8";
    ENB_PORT_FOR_S1U                         = 2152; # Spec 2152
};

测试功能,按照顺序打开四个独立Shell

$ echo -ne "\033]0;HSS\007" 

$ cd ~

$ cd openair-cn; source oaienv; cd scripts; 

#貌似需要运行之前先清理一下数据库才行,否则可能导致设备无法入网,应该是个BUG
$ ./hss_db_import 127.0.0.1 root 123 oai_db ~/opencells-mods/opencells_db.sql

$ ./run_hss

 

$ echo -ne "\033]0;MME\007" 

$ cd ~

$ cd openair-cn; source oaienv; cd scripts; 

$ ./run_mme

 

$ echo -ne "\033]0;SPGW\007" 

$ cd ~

$ cd openair-cn; source oaienv; cd scripts; 

$ sudo -E ./run_spgw

 

$ echo -ne "\033]0;EUE\007" 

$ cd ~

$ cd openairinterface5g; source oaienv

#配置文件为"targets/PROJECTS/GENERIC-LTE-EPC/CONF/"目录下的包含lmssdr的配置文件
#这个配置文件跟天线的接入方式直接相关,天线接入的是主板上的RX1_H,TX1_2这两个天线接口
#最后的-d 参数是启动图形界面分析流量

$ sudo -E ./cmake_targets/lte_build_oai/build/lte-softmodem -O ./targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf --rf-config-file ./targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini -d

#如果启动之后,出现 “[PHY][E]TX : Timeout (sent 6800/7680)” 这样的红色内容,然后退出,可以多尝试几次,一般就可以恢复正常了

正常启动之后,用手机(比如华为荣耀7)搜索运营型,可以找到一个名为20892的运营商,或者有些欧洲制式的手机可以正确的显示Eurecom这个法国电信运营商的名字。

设备使用的SIM卡建议从淘宝购买可以重复写入的LTE测试卡(大约30元每张的样子),卡内的内容请严格遵守下图的信息进行写入,包括灰色区域,看似不可写而无效,但是如果不设置成下图的样子,就会无法联网:

上述的代码如果下载困难,可以从本站下载一份拷贝。

SoapySDR源代码下载
LimeSuite源代码下载
USRP源代码下载
openairinterface5g源代码下载
openair-cn源代码下载
推荐使用LimeUtil刷新的固件
有需要上述的写卡软件的(SIM Personnalize tools),可以点击这里下载

如果发生手机等设备无法连接到我们自己搭建的基站,在确定测试卡信息填写完全正确的前提下,如果lte-softmodem窗口出现下图的红色错误信息:

[PHY][E]ERROR: Format 1A: rb_alloc (1ff) > RIV_max (144)

优先检查设备的MTU,如果设备的MTU大小超过1500,则会导致这种问题,/usr/local/etc/oai/spgw.conf里面配置的MTU大小就是1500,这个大小可以设置为1536,但是貌似会导致应用异常。
目前已知的是小米Note1会记录上次联网时候设备的MTU大小,如果恰好连接过MTU1536的基站,貌似会使用这个数字,导致问题。
一般建议Android手机执行adb shell ifconfig观察一下手机的输出。

手机如果要实现上网,需要手工创建一个APN,如下图,名字任意填写即可

主要的设置为下图,APN协议APN漫游协议承载系统,这三个要设置,否则MME会崩溃(src/nas/emm/sap/emm_cn.c:358 空指针异常),主要是协议不支持,导致处理异常。正常情况下,已经自动设置了MCCMNC,如果没有自动设置,请手工修改成MCC 208MNC 92

手机实验的时候有个小技巧,可以解决频繁插拔SIM卡的问题,就是把手机设置成飞行模式,再取消飞行模式,可以强制手机重新搜索基站并建立连接,因而减少对于SIM卡的插拔操作。

参考链接


发布者

《ubuntu 16.04系统LimeSDR V1.4使用OpenAirInterface搭建LTE实验环境》上有87条评论

  1. Did it possible to emulate the limesdr like usrp and use the command "sudo –E ./lte-softmodem –o $OPENAIR_DIR/targets/PROJECT/GENERIC-LTE-
    EPC/CONF/enb.band7.tm1.usrpb210.conf –d "with the same hardware but use only the soapyUHD like driver with the OAI !? what kind of command on the terminal should I do for doing it !?

      1. OAI with LimeSDR Mini run perfectly now. For the authentication, we have pisword simcard reader writter but the default driver with it couldn't write the usim (OPc,ki, imsi,iccid ...). Is it possible to know where did you download or how to get your software "SIM Personnalize tools" to test it?

          1. Is it possible that you send the software that you use for my mail !!! because someone still use the same software in pisword and it run perfectly! if it's possible, please send to my mail the software that you use for the USIM?

            Chears

          2. Even for the piswords simcardreader_writer, It's run perfectly for the reading and writing !!! Thanks you very much!!! Thanks a lots

        1. hey, did'nt you add msisdn somenumber on msisdn and on the sql database ? The phone see the network but I can't authenitcate on it now. If it's possible also! i would like to demand you the logfile of all command
          ./run_spgw
          ./run_mme
          ./run_hss
          sudo -E ./cmake_targets/lte_build_oai/build/lte-softmodem -O ./targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf --rf-config-file ./targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini -d

      1. hey, did'nt you add msisdn somenumber on msisdn and on the sql database ? The phone see the network but I can't authenitcate on it now. If it's possible also! i would like to demand you the logfile of all command
        ./run_spgw
        ./run_mme
        ./run_hss
        sudo -E ./cmake_targets/lte_build_oai/build/lte-softmodem -O ./targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf --rf-config-file ./targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini -d

          1. you said that : "sometimes we must clear all database and rerun the sql script to rebuild the database ,you can try" , could you give me any example of sql command for doing it if it's not so demanding please ?

          2. Mine always has problem of authentication. if it's possible to have the modified open-cells.sql and to load to file .grsp the configuration used on the gsmwritter. it's could help me to understand what i did bad!

          3. I don't modify open-cells.sql ,you can try modify this file.

            as i know ,if you have problem of authentication, usually it is a real time problem ,your system is not real time or not real time linux kernel or cpu too high

            After mobile send auth request ,cell must send response immediately ,if delay even 1us ,the auth will failed.

            please check this.

  2. 博主你好,我最近入手了limesdr硬件,然后完全按照你的这篇博客进行操作(HostOS, 软件版本号等都和你保持一致),但是在enb的shell窗口中 显示一条红色错误信息:[SCTP][E][sctp_enb_read_from_socket] sctp_recvmsg(fd 41, len -1):connection time out:110, 然后显示[EMU][N]waiting for eNB application to be ready, 之后就没有进一步log输出了。接着继续等了10分钟左右也没有进一步进展。请问可能是什么原因造成的?谢谢!

      1. 检查了一下,mme的ip手误写错了,导致这个问题。
        还有一个问题,用了谷歌官方手机nexus 6p尝试搜网,按照博主的贴图写好白卡并插入白卡打开手机,nexus 6p报告找不到SIM卡,又尝试了其他几个手机nexus4/5/6都是同样的问题,感觉应该不是卡或者卡槽接触不良的问题,是不是白卡的设置参数上有点问题?博主尝过的成功的手机有哪些?多谢!

        1. 小米,华为都可以,这个应该不是卡的问题,估计是手机限制了,因为默认是法国电信的,貌似谷歌的手机在欧盟是有限制的,试试修改一下国家代码试试,另外就是这个要求FDD的,如果你手机只能使用TDD的话,确实是有问题的。

        2. 另外注意,你买的是4G SIM卡还是2G SIM卡,你必须使用4G的SIM卡,两者差价差不多一倍的,你联系一下买卡的卖家,确认一下这个事情才行。

  3. 多谢博主!应该是4G的白卡,30块左右一张的那种。
    还有, 博主,你有尝试过用limesdr+OAI+opencoreims 做端到端的VoLTE呼叫吗?还有博主,你有微信公众号或者微信方便加个好友吗?

  4. 博主你好, 再请教一个问题。我刚刚买了红米6A和华为荣耀畅玩7A,都是号称全网通手机,但是用红米6A可以手动搜网,并搜到20892的网,但是无法注册成功。用华为荣耀畅玩7A,连20892的网都搜不到。请问一下这可能是什么问题?难道手机太新了?得用老一点的手机才行?多谢!

    1. 这个没关系的,如果出现无法注册成功,一般说明是设备设置上存在问题,最常见的就是内核不是实时内核,而是非实时内核,或者机器上其他任务导致了处理器开销太大,请注意一下内核版本以及CPU利用率。
      设备需要跟基站进行一次通信,双方需要一次双向认证,这个认证时间的精度要求非常高,如果发生内核不实时,会造成时间精度不正确,导致双向认证不通过。

  5. 您好,想請問一下,按照教程安裝完EPC後,過一段時間oai_db會從phpmyadmin上消失,但電腦裡還有oai_db的檔案,只是新增上去的user資料全部都不見了,再重新匯入oai_db後過一段時間又會自己消失,請問這樣是為什麼呢?

    1. 应该是某个脚本重新创建了一遍数据库,这个请查找全部脚本中创建数据库部分的功能,看看能不能找到相关的代码

      1. 請問eNB連上EPC後,有時會自己斷線是為什麼呢?
        UE連上EPC後,也常常自己斷線,這樣是為甚麼呢?
        還有最近UE連上EPC後,原本有下載流量,可以連上其他網頁的,但是現在變成可以連上eNB,有上載流量但下載流量一直是0,無法上網,想請問這樣是發生什麼問題呢?

      2. 想請問一下eNB連上EPC後常常自己斷線是為甚麼呢?
        UE連上eNB之後也常常自己斷線,這是為甚麼呢?
        另外原本UE連上eNB時,是有下載跟上傳流量的,可以上網,但現在UE連上eNB之後,只有上傳沒有下載流量,不能上網了,請問這樣是發生什麼問題呢?

  6. 想請問一下,eNB連上EPC之後常常自己斷線是為甚麼呢?
    UE連上eNB之後也常常自己斷線是為什麼呢
    還有以前UE連上線的時候,上傳下載都有流量,可以連上其他網頁,但現在UE連上eNB之後只有上傳有流量,下載流量為0,無法連線,這樣是發生甚麼問題呢?

    1. 最近是不是执行过apt-get upgrade 或者apt-get dist-upgrade ? 如果执行过,看一下内核 uname -a 非常可能被替换成非普通内核了,需要手工安装一遍低延时内核,这个问题非常头疼!

    1. 这个太笼统了,貌似是你的设备发送了不支持的控制报文信息,导致EPC解析不了,一般这个是由于手机等UE设备发送的协议中使用了高版本的协议导致的,我记得当时是由于某个配置文件错了,或者某个协议错了,具体记不到了。

  7. 你好,我的是虚拟机环境,IP:10.10.70.134,直接复制你的MME配置,报错“[SCTP][E][sctp_eNB_read_from_socket] sctp_recvmsg (fd 42, len -1 ): Connection refused:111

  8. ./build_spgw -i后libgtpnl选择不安装,提示“SPGW not compiled, to compile it, re-run build_spgw without -i option”请问这样是正常的吗?

  9. 博主,写入第二卡,只需要把IMSI改成SQL里面的IMSI就可以了吧,其他配置不动。另外2个手机如何打电话和发短信,我在手机设置里面没有获取到本机号码。

  10. Scanning dependencies of target oai_lmssdrdevif
    Building CXX object CMakeFiles/oai_lmssdrdevif.dir/home/xiaohuang/openairinterface5g/targets/ARCH/LMSSDR/USER$
    /home/xiaohuang/openairinterface5g/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp: In function ‘int trx_lms_st$
    /home/xiaohuang/openairinterface5g/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp:196:40: error: too many argu$
    LMS_VCTCXOWrite(lms_device,129,true);
    ^
    In file included from /home/xiaohuang/openairinterface5g/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp:39:0:
    /usr/local/include/lime/LimeSuite.h:971:26: note: declared here
    API_EXPORT int CALL_CONV LMS_VCTCXOWrite(lms_device_t * dev, uint16_t val);
    ^
    CMakeFiles/oai_lmssdrdevif.dir/build.make:62: recipe for target 'CMakeFiles/oai_lmssdrdevif.dir/home/xiaohuan$
    make[3]: *** [CMakeFiles/oai_lmssdrdevif.dir/home/xiaohuang/openairinterface5g/targets/ARCH/LMSSDR/USERSPACE/$
    CMakeFiles/Makefile2:815: recipe for target 'CMakeFiles/oai_lmssdrdevif.dir/all' failed
    make[2]: *** [CMakeFiles/oai_lmssdrdevif.dir/all] Error 2
    CMakeFiles/Makefile2:827: recipe for target 'CMakeFiles/oai_lmssdrdevif.dir/rule' failed
    make[1]: *** [CMakeFiles/oai_lmssdrdevif.dir/rule] Error 2
    Makefile:378: recipe for target 'oai_lmssdrdevif' failed
    make: *** [oai_lmssdrdevif] Error 2

    openairinterface5g编译报错有没有解决的方法

    1. 这个东西,我也是只能指定编译版本才能编译通过的,不是任何版本都可以的,他们改动太多,太频繁,这个很难处理,你可以用我编译时候的那个版本先看看

  11. Connecting to device: LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D424DF1993644
    Reference clock 40.00 MHz
    LoadConfig() - file not found
    Failed to load configuration file
    libusb: warning [libusb_exit] application left some devices open
    LoadConfig() - file not found
    画面刚弹出来一会就闪退了

  12. I'm executing this command: "git apply ../opencells-mods/EPC.patch"
    but it notify "
    error: patch failed: build/tools/build_helper:99
    error: build/tools/build_helper: patch does not apply
    error: patch failed: src/common/common_defs.h:109
    error: src/common/common_defs.h: patch does not apply
    error: patch failed: src/gtpv1-u/gtp_mod_kernel.c:31
    error: src/gtpv1-u/gtp_mod_kernel.c: patch does not apply
    error: patch failed: src/gtpv1-u/gtp_mod_kernel.h:6
    error: src/gtpv1-u/gtp_mod_kernel.h: patch does not apply
    error: patch failed: src/gtpv1-u/gtpv1u_task.c:111
    error: src/gtpv1-u/gtpv1u_task.c: patch does not apply
    error: patch failed: src/oai_hss/utils/hss_config.c:297
    error: src/oai_hss/utils/hss_config.c: patch does not apply
    error: patch failed: src/s6a/s6a_peer.c:88
    error: src/s6a/s6a_peer.c: patch does not apply

    I tried to fix it but it failed . Can you help me ? Thank you !

  13. I'm executing the command: "git apply ../opencells-mods/EPC.patch"
    but it notify :
    error: patch failed: build/tools/build_helper:99
    error: build/tools/build_helper: patch does not apply
    error: patch failed: src/common/common_defs.h:109
    error: src/common/common_defs.h: patch does not apply
    error: patch failed: src/gtpv1-u/gtp_mod_kernel.c:31
    error: src/gtpv1-u/gtp_mod_kernel.c: patch does not apply
    error: patch failed: src/gtpv1-u/gtp_mod_kernel.h:6
    error: src/gtpv1-u/gtp_mod_kernel.h: patch does not apply
    error: patch failed: src/gtpv1-u/gtpv1u_task.c:111
    error: src/gtpv1-u/gtpv1u_task.c: patch does not apply
    error: patch failed: src/oai_hss/utils/hss_config.c:297
    error: src/oai_hss/utils/hss_config.c: patch does not apply
    error: patch failed: src/s6a/s6a_peer.c:88
    error: src/s6a/s6a_peer.c: patch does not apply

    I tried to fix it but it failed. Can you help me ? Thank you !

    1. 一般是系统不实时导致的,检查一下系统的实时性设置,OS是否使用了低延时内核,CPU部分是否禁用Boost频率是否设置为定频,二级缓存是否关掉,是否禁止省电

  14. 博主你好,我用的是ubuntu16.04的虚拟机,下载固件后执行LimeUtil --update报错,这个过程都后续有影响么?大概是什么问题你呢?谢谢

    root@eNodeB:/home/enodeb/LimeSuite/udev-rules# LimeUtil --update
    No devices found

    1. 不建议用虚拟机,因为设备的USB部分是USB3.0的,USB 3.0由于是高速传输(5Gbbps)因此对于数据传输信号的时序要求非常高,虚拟机模拟出来的USB设备由于操作系统转换,会造成额外的延时。这个延时会造成高速通信总线信号超时,导致通信异常。建议用物理机,物理机的USB通信由硬件实现,不会出现时序问题。

  15. 博主你好 ,这套系统可以用一个LimeSDR和一台Ubuntu就能搞定么,之前搞srsLTE貌似要两台机器两套硬件 。
    另外LimeSDR mini可以么?

  16. 博主,我在虚拟机上安装了了ubuntu1404,OAI为v0.6.1。但运行时提示ULLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLO[PHY][E][recv] received 4113 samples out of 7680
    L[PHY][E]Time: 7.74638 s
    ERROR_CODE_OVERFLOW (Overflow)

    [PHY][E]rx_rf: Asked for 7680 samples, got 4113 from USRP。
    我该怎么去考虑和解决这个问题啊?我感觉是时延太大引起的问题,但我不知道怎么去降低时延。我已经做过相关电源管理的设置。

      1. 不要用虚拟机,虚拟机没办法做到实时,必须是物理机,时序要求非常严格,即使物理机,也是不能百分百满足实时需要的,真正的基站要依赖物理芯片保证实时性

  17. 博主你好,我手机连入基站后开始大约1分钟左右能上传下载,但是一分钟后eNB就开始输出
    [PHY][E]ERROR: Format 1A: rb_alloc (1ff) > RIV_max (144)
    然后手机就无法联网连,我在手机上安装超级终端,确定手机的MTU就是1500,所以请问还有萨满可能的原因会导致这个问题呢?

      1. 博主你好,感谢你的回复。
        所以针对这两种情况我该怎么解决呢?
        1.我使用的是ubuntu16.04,安装的是OAI官网教程步骤给的4.4.0的lowlatency的内核,也不是用的虚拟机,还有什么其他的方法可以降低时延吗?
        2.手机请求高版本的协议,是指手机上LTE协议版本高于OAI的LTE协议吗?
        谢谢。

        1. 1. 尝试编译比较新的代码,估计要费劲不少,建议试试 srsLTE 我后期都是使用 srsLTE 的,OpenAirInterface的代码实在是有些惨不忍睹
          2. 换个早期版本的手机试试或者在协议广播中调低支持的LTE协议版本,LTE协议分多个版本,进化很快,但是实际上OpenAirInterface并没有完全实现对应版本的功能,他广播出来支持很高的版本,实际上支持的都不是非常完整,比如声明支持 LTE 10 ,实际上比较完整支持的只是LTE 8
          3. 如果学习的话,强烈推荐 srsLTE 代码非常清晰流畅

  18. 好的,谢谢博主。
    请问srsLTE是不是比较轻量级?但是好像对电脑硬件的要求更高?
    另外,我看见srsLTE目前支持的也只是达到Release 8,这个版本是不是对于学习LTE协议的已经够了?

    1. 1. srsLTE的代码效率比OpenAirInterface要低一些,比如有些汇编部分的优化比较简单,但是就是因为优化少,才会使得思路很清晰,容易读懂。
      2. srsLTE底层有几套代码,其中一套是运行在X86系统的,优化较多,另外一套是运行在实时硬件上的,基本上没有优化,这套代码在跟优化后的代码输出结果相同,但是非常易懂。
      3. 没必要追最新的,先把基本原理看明白,后面的都是在这些版本上增加新的Feature。

    1. 这块没有操作过,但是默认都是IPV4的,核心网部分都是软件模拟实现的,改成IPV6支持应该比较简单,OAI更多的是验证功能,不是商用。

  19. 博主您好!

    还有个问题请教下,基站、EPC以及终端的配置文件位置在哪里,还是代码直接写死的,oai的代码逻辑比srslte混乱很多,读起来比较头疼

    1. 我当时看的时候,也是一头雾水,没有头绪,后期是使用srsLTE来分析的,https://github.com/srsLTE/srsLTE srsLTE 的代码清爽的想让人哭!

  20. 博主您好!
    还有个问题请教下,我现在按照您的这些配置修改运行起来了,然后手机也能找到这个基站,但是在/tmp目录下没看到任何log信息,这个log怎么开启呢?

  21. 博主,你好!

    使用USRP测试,除了编译基站时使用./cmake_targets/build_oai -w USRP --eNB # compile eNB这个命令,那么在启动时基站的这个需要怎么改,选择哪个配置文件,内容如何修改,请指教,谢谢!
    sudo -E ./cmake_targets/lte_build_oai/build/lte-softmodem -O ./targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf --rf-config-file ./targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini -d(这是用limesdr设备的启动脚本,usrp的呢?)

    1. USRP的设备没有用过,当时太贵了,但是比LimeSDR用起来要简单的这个配置文件你直接修改就可以的,里面指定了相关的配置频段等信息,官方代码中有直接操作USRP的配置文件的。你参考调整一下就可以了。

  22. 博主你好!

    请教个问题,使用usrp B210设备测试时,除了编译时执行./cmake_targets/build_oai -w USRP -x -c --eNB # compile eNB,

    在启动的时候,应该怎么操作呢?(limesdr设备启动是sudo -E ./cmake_targets/lte_build_oai/build/lte-softmodem -O ./targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf --rf-config-file ./targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini -d)

    配置文件可以修改为这个enb.band7.tm1.25PRB.usrpb210.conf,但是ini文件怎么办呢?

    谢谢!

    1. 我记得在某些版本上,这些配置文件都存在的,后期他们删除了好多,你可以Git看一下以前的版本,至于配置文件,参考srsLTE的部分也可以,这两部分控制硬件是相同的。

  23. 博主请教一下,用LimeSDR和srsLTE,UE也用LimeSDR和srsue实现的。
    1、为什么只在一个频段下UE可以attach上,其他频率要么attach上就release了,要么根本连不上。
    2、白卡在哪里可以买到?
    3、手机用iphone行吗?

    1. 1.只在一个频段下UE可以attach上 这个更可能是你的硬件,你硬件可能只能工作在某个固定的频段上,这个参考硬件芯片手册,这个说的很清楚的。
      2.白卡在哪里可以买到 淘宝
      3.手机用iphone行吗? 这个没有测试过,不好说。

  24. I got this error with Ubuntu 18.04
    how to fix it ?
    git apply ../opencells-mods/eNB.patch
    error: patch failed: cmake_targets/tools/build_helper:95
    error: cmake_targets/tools/build_helper: patch does not apply

回复 zheng 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注