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

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

安装依赖包

编译安装SoapySDR

编译安装LimeSDR

编译安装USRP驱动

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

下载并编译eNB

下载并编译EPC(核心网)

配置EPC

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

找到:

替换为:

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

 

 

 

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

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

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

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

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

优先检查设备的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实验环境》上有52条评论

  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通信由硬件实现,不会出现时序问题。

发表评论

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