admin管理员组文章数量:1642181
一、背景
最近在测试LTE modem链接稳定性的时候,需要长期挂测,LTE modem在系统层生成RNDIS的网卡。
可以看见,上图中有一个名为 usb0的RNDIS网卡,另外有三个ttyUSB设备,参照Modem的指导文档,得知其中只有一个TTYUSB可以用于AT指令调试以及modem 拨号。
这也是很坑的地方,只有一个口要同时用于AT指令查询以及modem 拨号,等于来说二者不能同时进行,因为ttyUSB在AT模式下和modem下面的tty line 是不一样的,简单来说就是在AT模式下,这个ttyUSB在line =0只能承载简单的AT字符这样的内容,但是切换为PPP拨号之后(line =3),底层需要承载PPP这样的报文格式,就不在兼容AT字符。从PPP模式切换出来需要输入‘+++’。
1.1 网络拓扑
二、测试
好了,一切都准备好了以后,就可以开始测试了,装上SIM卡和天线,让设备通过PPP拨上公网,在使用xl2tp拨上服务器,后续我们在应用层会做一个类似于心跳包的逻辑,间隔一段时间服务器会向设备发送一个报文并期待回复:回复成功就是在线,多次没回复就会上报设备离线。
同时路由表如下:
同时结合路由表可知:数据包大多会从ppp0接口路由出去,手动开启该接口的tcpdump抓包 ,这个是公网网卡接口(准确来说应该算是和Modem桥接的一个网卡,底层是USB走线),通过他可以看看是不是和公网链接有问题,由于Xl2tp(基于PPPD)中都有链路保活报文的措施:
但是如果发生这种情况, Xl2tp只能判定是和服务器之间的通信是否正常,换句话说,他看不到和外部公网的链接是否正常,但是设备和服务器之间隔了那么多跳的设备,像和我们相连的modem都估计是在转发我们设备的消息。因此我们需要加入一个可以检测外网的逻辑:
时间很重要,能否核对清楚设备在那个时刻到底发生了什么:
三、离线的网络节点说明
这几次的离线报文如初一则,清一色的报文类似结构(唯一没变的就是PPP0这个网卡接口一直存在,证明公网还在,但是那个时刻的网络连接状态不可知)
可以看见设备发送5次保活报文都没回复,PPPD服务认为链路连接不正常,就进行相应的会话和隧道的拆除,然后再发起下一次注册,就有了那个多的注册信息。
注意:没有收到回复不要认为就是服务器那边的问题,这也是我之前处理这类问题的惯性思维,你需要考虑到这二者之间还有很多的转发节点,其中最值得怀疑的就是modem这个节点,有可能是Modem那边和公网的链接就不正常导致的,这样自然也是收不到回复,因为我的设备和模组之间走的物理的usb链路,本质上这样类似于有线网络,比Modem和基站那边的链接会稳定很多,除非底层的USB驱动出现问题,也会导致传输异常。所以我后续加了一个ping 8.8.8.8这个IP的逻辑,通过二者时间进行比对,看看在Xl2tp服务 发送5次保活报文都失败的时候,8.8.8.8能否ping通,能ping通证明网络出现在运营商和服务器之间,不能ping通就是出现在Modem和运营商网络之间
#!/bin/sh
# 外网 DNS 服务器的 IP 地址
dns_server="8.8.8.8"
# 定义检测函数
check_dns_connection() {
ping -q -c 4 -W 4 -s 2 $dns_server -I ppp0 > /dev/null
if [ $? -eq 0 ]; then
echo "$DATE DNS 连接正常">/dev/null&
else
echo "===>$DATE DNS 连接失败">>/root/networkcheck.log&
fi
}
# 循环检测
while true; do
DATE=`date +20%y%m%d%H%M%S`
check_dns_connection
sleep 1 # 每隔 5 秒检测一次,可以根据需要调整时间间隔
done
四、悄无声息的离线
查看6点这次离线报文的时候,直接呆住了:
设备在6点1分左右就停止抓包,停止抓包就意味着ppp0网卡都没有了。
查看内核打印的日志信息,基本证明了那个时候ppp0已经消失了
可是这个信息提示有EMI(电磁干扰??) ,阿丢,早上6点出现这种情况,这是什么问题,还有这些??
[317688.665057] ERROR ohci-q.c 0x5! 7292000 0x7292fff
[317688.670090] ERROR ohci-q.c 0x5! 735b000 0x735bfff
emm,感觉有点像linux底层的东西了,等我有空回来再研究一下,今天先记录一下
有遇到这种问题的朋友可以交流下您的处理方案,小白第一次遇见这种问题
五、更新
时隔两个月,有空再次捡起来这个问题继续看看,上述的EMI问题,查看了博客之类的,描述成是电磁干扰,应该和usb的两科查分信号线走线有关。
查看我们设备的原理图,之间两个USB信号线之间 “一丝不挂”,并且我们对该模块没有进行过静电测试这一项体检项目,而且我们的usb主机设备在接入LTE Modem之后是工作在全速模式下,因此在这个模式下需要考虑线路兼容性的问题。后续查看LTE Modem手册,厂家有以下建议:
后续参看了他们的参考设计图:
我只是个软件小白,看了这些资料之后想给板子飞线也不会飞,且产品定型之后不太会去考虑改版的问题,以上只是参考厂家的指导文献,如果有朋友遇到,可以参照您手里产品厂家的指导尝试一下 。
本文标签: usbdisabledenablingEMIhub
版权声明:本文标题:usb usb1-port2: disabled by hub (EMI?), re-enabling... 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729317326a1195456.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论