问题描述:
终端通过USB连着电脑,可以看到终端注册上网络,但很快又掉网了。
问题分析:
通过modem日志可以看出:
终端刚attach上就detach的原因是QMI收到了PERSISTENT_LOW_POWER命令导致的;
因为有用legacy QMI通道(0x1390),我们怀疑是电脑通过USB给UE发的命令。
具体分析如下:
//终端注册上:
[0xB0ED] OTA LOG 02:50:40.091013 LTE NAS EMM Plain OTA Outgoing MessageAttach request Msg 1
[0xB0EC] OTA LOG 02:50:43.000007 LTE NAS EMM Plain OTA Incoming MessageAttach accept Msg 1
//QMI下发PERSISTENT_LOW_POWER:
//这里是legacy QMI通道(0x1390),而不是正常命令的QMI QCSI通道(0x1544),我们可怀疑是电脑通过USB给UE发的命令。
[0x1390] LOG 02:50:48.937007 QMI Link 2 RX PDU Length: 33
02:50:48.937007 [0x1390] QMI Link 2 RX PDU
IFType = 1
QmiLength = 16
QmiCtlFlags = 0
QmiType = DMS
Service_Dms {
ClientId = 1
SduCtlFlags = REQ
TxId = 33
MsgType = QMI_DMS_SET_OPERATING_MODE_MSG
MsgLength = 4
Service_Dms_V1 {
QmiDmsSetOperatingMode {
QmiDmsSetOperatingModeReqTlvs[0] {
Type = 1
Length = 1
OperatingModeTlv {
OperatingMode = PERSISTENT_LOW_POWER
}
}
}
}
}
//正常命令的QMI QCSI通道也有发这个命令:
[0x1544] LOG 02:50:48.937007 QMI_MCS_QCSI_PKT Length: 48
02:50:48.937007 [0x1544] QMI_MCS_QCSI_PKT
packetVersion = 2
V2 {
MsgType = Request
Counter = 15
ServiceId = DMS
MajorRev = 1
MinorRev = 58
ConHandle = 0x00000000
MsgId = 0x0000002E
QmiLength = 4
Service_DMS {
ServiceDMSV1 {
dms_set_operating_mode {
dms_set_operating_mode_reqTlvs[0] {
Type = 0x01
Length = 1
operating_mode {
operating_mode = DMS_OP_MODE_PERSISTENT_LOW_POWER
}
}
}
}
}
}
[5000/ 1] MSG 02:50:48.937005 Data Services/Medium [ ds_qmi_dms.c 4591] dms set operating mode
[ 5/ 2] MSG 02:50:48.938021 Call Manager/High [ cm.c 7727] =CM= PH CMD - cm_ph_cmd_oprt_mode(), mode=6, uptime=1420, client_id=27, cmd_cb_func=-2020843200, data_block_ptr=-1976053600
[ 5/ 2] MSG 02:50:48.938021 Call Manager/High [ cmph.c 6904] =CM= cmd_info_ptr->oprt_mode 6, cmtask_is_stop_sig_rcvd() 0, ph_ptr->wd_switch_on 0
[0x1544] LOG 02:50:48.938032 QMI_MCS_QCSI_PKT Length: 51
[0x1391] LOG 02:50:48.938032 QMI Link 2 TX PDU Length: 36
//双卡detach:
[3007/ 2/ 3/ 4] MSG 02:50:48.950130 NAS MM/High [ emm_utility.c 4871] DS: SUB 2 =EMM= Detach type 1, srv domain reged 2, reg req srv domain 2
[0xB0ED] OTA LOG 02:50:48.952046 LTE NAS EMM Plain OTA Outgoing MessageDetach request Msg 2
[3007/ 2/ 3/ 4] MSG 02:50:49.025052 NAS MM/High [ emm_utility.c 4871] DS: SUB 1 =EMM= Detach type 1, srv domain reged 2, reg req srv domain 3
[0xB0ED] OTA LOG 02:50:49.027012 LTE NAS EMM Plain OTA Outgoing MessageDetach request Msg 1
//modem执行完命令,通知AP更新状态:
[ 63/ 0] MSG 02:50:48.932500 Android QCRIL/Low [ DiagLogger.cpp 88] [qcril_qmi_nas] RIL[1][qcril_qmi_nas.cpp: 6615] [DispatcherModul(911,1007)] qcril_qmi_nas_dms_event_report_qmi2ril: > qcril_qmi_nas_dms_event_report_qmi2ril:
[ 63/ 0] MSG 02:50:48.932500 Android QCRIL/Low [ DiagLogger.cpp 88] [qcril_qmi_nas] RIL[1][qcril_qmi_nas.cpp: 6619] [DispatcherModul(911,1007)] qcril_qmi_nas_dms_event_report_qmi2ril: oprt 1 / 6
[ 63/ 0] MSG 02:50:48.932500 Android QCRIL/Low [ DiagLogger.cpp 88] [qcril_qmi_nas] RIL[1][qcril_qmi_nas.cpp: 6620] [DispatcherModul(911,1007)] qcril_qmi_nas_dms_event_report_qmi2ril: prl_init 0 / 0
[ 63/ 0] MSG 02:50:49.155000 Android QCRIL/Low [ DiagLogger.cpp 88] [qcril_qmi_nas] RIL[1][qcril_qmi_nas.cpp: 6866] [DispatcherModul(911,1007)] qcril_qmi_nas_dms_op_state_update_handler: > qcril_qmi_nas_dms_op_state_update_handler:
[ 63/ 0] MSG 02:50:49.155000 Android QCRIL/Low [ DiagLogger.cpp 88] [qcril_qmi_nas] RIL[1][qcril_qmi_nas.cpp: 6872] [DispatcherModul(869,1001)] qcril_qmi_nas_dms_op_state_update_handler: reported op mode PERSISTENT_LPM
解决方案:
因为有用legacy QMI通道(0x1390)给UE发PERSISTENT_LOW_POWER命令,我们怀疑这是电脑通过USB给UE发的;
因此再测试时:
1)断开UE和电脑的USB连接;或
2)最好停止并禁用WWAN AutoConfig:WIN+R -->输入:services.msc,确定 →在“ 服务” 里 把 “WWAN AutoConfig” 停止, 并改为“禁用”或“手动”