6. 所遇问题分析总结:
1)No APN found for carrier: 46xxx
改一下apn-conf-sdk.xml文件吧,将所对应的46xxx的APN信息写入即可。
2) 网络注册失败,出现:
AT+CGREG?
+CGREG: 1,0
和
AT+CREG?
+CREG: 2,0
我发现有几种情况:
1>没插SIM卡;
2>信号不好(一般3G出现低于100的信号值,说明信号强度太差,无法注册);
3>AT+CFUN=4关机命令,即使后面用了AT+CFUN=1开机,可能因为开机需要时间延迟,造成无法注册,这是我发现的比较诡异的地方,需要咨询一下供应商。
3)pppd call cmnet: connect script failed! pppd exited with 8
发现出现这个错误的原因比较复杂,不一定是真正的cmnet与cmtc-isp两个脚本的问题,按我的经验发现,如果connect script failed!错误出现紧跟着Starting pppd, 那应该是
真正的脚本有问题;如果间隔时间较长,那就不应该是脚本的问题了,脚本语法问题程序很快能检查出来,通常这样的可能是通道通信的问题,rild与pppd用的同一个串
口通道,也可能造成这个错误,通常都会有2-3个通道,换成另一个tty通道就可以了,我想了如下一个办法来调试这个错误:
1>删除文件/etc/init.gprs-pppd,重启后,系统不会用pppd自动拨号;
2>手动拨号, 运行如下命令:
#pppd call cmnet &
第一次运行会出现错误:
Removed stale lock on ttyACM2 (pid 259)
Failed to open /dev/ttyACM2: I/O error
再运行一次:
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/ttyACM2
Remote message: Login OK
PAP authentication succeeded
local IP address 10.77.48.209
remote IP address 192.200.1.21
primary DNS address 211.136.112.50
secondary DNS address 211.136.20.203
目前还不知道为什么这样,正在查,有高手可以指点一下。
另外出现这个问题可能还有其它原因,按出现的时间来看,我认为是比较好的一个排查问题的方法。
附:与xxxx聊天解决问题记录,以供大家参考,可能会有点用(注意,时间要从下往上看呀)
在 2010年12月24日 下午4:43,xxxx写道:
另外,还有一些问题:
我现在这种上网是跟Android完全没有关系的。还没有跟上层完成数据传输。
要完成跟上层的数据传输,就必需要实现要正确的返回我刚才问你的那个问题“GET_IMEI”, "GET_IMSI",
因为这两个返回了,android才能完成与apns-conf.xml文件中的numeric值的匹配。
麻烦指点下,我上面这个理解对不对。还有你现在的apns-conf.xml中主数据可以写入telephony.db数据库吗?
在 2010年12月24日 下午4:39,xxxx写道:
方便就留个联系方式,改天请你吃个便饭。交个朋友。
在 2010年12月24日 下午4:29,xxxx写道:
恩。这个必需的。。。
你也在深圳吧?
在 2010年12月24日 下午4:29,xxxx写道:
# ping 220.181.112.76
PING 220.181.112.76 (220.181.112.76) 56(84) bytes of data.
64 bytes from 220.181.112.76: icmp_seq=1 ttl=50 time=2646 ms
64 bytes from 220.181.112.76: icmp_seq=2 ttl=50 time=1659 ms
64 bytes from 220.181.112.76: icmp_seq=3 ttl=49 time=679 ms
64 bytes from 220.181.112.76: icmp_seq=5 ttl=49 time=185 ms
64 bytes from 220.181.112.76: icmp_seq=6 ttl=50 time=181 ms
64 bytes from 220.181.112.76: icmp_seq=7 ttl=49 time=198 ms
64 bytes from 220.181.112.76: icmp_seq=8 ttl=49 time=185 ms
64 bytes from 220.181.112.76: icmp_seq=9 ttl=50 time=202 ms
原来什么都不用设置就可以拨号成功了?和linux下面的是一样的,只是这么弄好像上层根本响应不到。
在 2010年12月24日 下午4:26,xxxx写道:
I/pppd ( 2319): Connect: ppp0 <--> /dev/ttyUSB5
D/pppd ( 2319): sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x7b8e6e14> <pcomp> <accomp>]
D/pppd ( 2319): rcvd [LCP ConfReq id=0x0 <mru 1500> <asyncmap 0xffffffff> <auth pap> <magic 0x11223344> <pcomp> <accomp>]
D/pppd ( 2319): No auth is possible
D/pppd ( 2319): sent [LCP ConfRej id=0x0 <auth pap>]
D/pppd ( 2319): rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x7b8e6e14> <pcomp> <accomp>]
D/pppd ( 2319): rcvd [LCP ConfReq id=0x1 <mru 1500> <asyncmap 0xffffffff> <magic 0x11223344> <pcomp> <accomp>]
D/pppd ( 2319): sent [LCP ConfAck id=0x1 <mru 1500> <asyncmap 0xffffffff> <magic 0x11223344> <pcomp> <accomp>]
D/pppd ( 2319): sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
D/pppd ( 2319): sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
D/pppd ( 2319): rcvd [LCP ProtRej id=0x2 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
D/pppd ( 2319): sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
D/pppd ( 2319): rcvd [IPCP ConfReq id=0x3 <addr 192.168.0.1>]
D/pppd ( 2319): sent [IPCP ConfAck id=0x3 <addr 192.168.0.1>]
D/pppd ( 2319): rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
D/pppd ( 2319): sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
D/pppd ( 2319): rcvd [IPCP ConfNak id=0x2 <addr 10.233.0.103> <ms-dns1 120.196.165.7> <ms-dns3 221.179.38.7>]
D/pppd ( 2319): sent [IPCP ConfReq id=0x3 <addr 10.233.0.103> <ms-dns1 120.196.165.7> <ms-dns3 221.179.38.7>]
D/pppd ( 2319): rcvd [IPCP ConfAck id=0x3 <addr 10.233.0.103> <ms-dns1 120.196.165.7> <ms-dns3 221.179.38.7>]
I/pppd ( 2319): local IP address 10.233.0.103
I/pppd ( 2319): remote IP address 192.168.0.1
I/pppd ( 2319): primary DNS address 120.196.165.7
I/pppd ( 2319): secondary DNS address 221.179.38.7