三步走教程的最后一篇,也搁置了比较久。这里的UE是用白卡烧写的SIM卡,不是oaisim。步骤不多,细心+耐心。预警:如果遇到可以注册但不能上网,比较难解决。 后文再谈
0、前期准备
(1)成功连接的OAI eNB 和OAI EPC。有几个基本标志:1、eNB侧运行scope可以弹出观察窗,且不会提示eNB 没有 associated with MME; 2、EPC侧可以观测到mme与eNB连上了。
(2)可编程白卡(programmed SIM card)+读卡器。笔者的SIM卡是某宝网购的。
(3)手机一枚。我用的荣耀V10。
1、EPC处修改信息:
在浏览器访问数据库。用户名是root,密码是之前自己设置的:
localhost/phpmyadmin
在左侧栏操作,选择oai_db。
这个用户和之前填的MCC和MNC有关。我之前配置文件中都是208/93,所以选择开头是20893的任何用户均可(建议用20893)。这里选择的是208930000000005的那个用户。点击edit,核对如下信息:
上述信息中需要修改的有NOT_PURGED。key和OPc如果跟我一样就可以先不管,不一样的话等等在写卡部分谈。注意表中“mmeidentity_idmmeidentity”的值是1。
(2)核对mmeidentity值(点击mmeidentity)
我的主机名是nano,因此对应的mmehost是nano.openair4G.eur,可以看到其idmmeidentity值为1。如果是其他主机名,如wty,其idmmeidentity值为4,那么对应(1)中的值也要修改为4。反正对应相等就行。
点击Insert插入一条apn,内容对着图抄就行。
(4)修改pgw(点击pgw)
修改一条pgw记录,我修改的id是3(忘了是修改的还是添加的新纪录了)。ipv4就写EPC的地址,ipv6对应。记住这条pgw的id。
(5)修改pdn(点击pdn)
找到(1)中选择的用户,这里要注意的就是pgw_id的值要和(4)中刚刚修改的那条id对应。
2、写卡
三个我画椭圆的:
(A)IMSI15:在(1)中你的选择;
(B)KI:(1)中查到的key值,左边有个框不要勾起来;
(C)OPC:(1)中查到的OPc值。
框框里头的是可以用旁边的auto自动生成的。
SPN自己取,这个就是之后手机左上角的运行商的名字了。搞定之后左边有一个Same with LTE点一下。
关于KI和OPc的值。我们一共有5个变量,列举如下:
(1)phpmyadmin中的key值
(2)phpmyadmin中的OPc值
(3)hss.conf中的OP值
(4)SIM卡中需要烧写的KI值
(5)SIM卡中需要烧写的OPc值
他们的关系是:
(2)是电脑自动计算的(根据(1)和(3))
(1)=(4)
(2)=(5)
如果你的key值(1)是:8BAF473F2F8FD09487CCCBD7097C6862
且/usr/local/etc/oai/hss.conf中的OP值(3)是:1006020f0a478bf6b699f15c062e42b3
那么你的OPc值(2)就是:e734f8734007d6c5ce7a0508809e7e9c
如果你采取其他的(1)或(3)值,那么根据我上面描述的对应关系,自行修改这些值。
3、手机端:
插入白卡,接下来的操作就和具体手机有关系了。我的是华为荣耀V10。找到设置网络的界面。我的如下:
(1)添加一条apn,名字随便取,APN为oai.ipv4,其他可以都不填
(2)打开数据国际漫游!很重要。
(3)点击网络运营商,关闭自动选择,然后手机会自动搜索可用运营商,过一会儿就能搜到20893了。点击,注册,即可享受网络。
4、遇到的坑
其实过得有点久了,记不太清,主要有这几个:
(1)不支持的SIM卡。之前用的库存的卡,结果是老型号的卡,OAI并不支持,因此也读不出任何信息来。一般是新买的卡不会出现这个问题。至于后来买的卡是某宝买的,就不挂链接了,买之前问一下支不支持OAI就行。
(2)不支持的频段。eNB的教程里建立用的是band7的conf(band7一般是国外的频段)。我的是荣耀V10,并不支持band7,于是也搜不到20893的运营商。解决方案:A.更换支持band7的手机(支不支持可以去百度手机配置,这里又有个坑是小米5明明写了支持band7,却搜不到,仔细了解才知道小米5支持的band7不完整。)B.用其他频段建立eNB,笔者后来限于没有手机,用band3建立了eNB。
这里我分享一下我建立band3采用的conf文件:
https://download.csdn.net/download/qq_42030961/10783282
(3)可以注册进网络但不能上网。这个问题非常复杂且不好解决。首先必须100%确认上文的信息是认真改了的,然后再去查看是哪里报错了,这个得具体问题具体分析。如果无法注册进网络,估计是OPc/KI之类的值导致的鉴权错误。如果搜不到网络,估计是手机频段的问题了。如果试了什么都不能解决:
重装eNB是一个值得尝试的选择。——作者亲身经历
下面解决方法贴自OAI官网:
https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/HowToConnectCOTSUEwithOAIeNBNew
Issue 3: UE Connects but cannot access Internet.
遇到的问题是隔了比较久写的。没谈到的点,欢迎在评论区讨论。