4、QXDM深度使用:日志配置、关键过滤与实战定位
QXDM 这工具,说白了就是高通的“黑匣子记录仪”。
我刚开始接触它的时候,觉得界面乱糟糟的,一堆看不懂的 log 在刷屏。后来被项目逼着啃了两个月,才发现这玩意儿是真香。今天我就把压箱底的使用习惯分享给你。
4.1 日志配置:别让无效信息淹死你
很多人一打开 QXDM 就点 Start Logging,结果日志文件几分钟就几个 G。嗯,这是典型的“抓了等于没抓”。
我的配置习惯是这样的:
- 先连上目标端口:通常选 DM Port 或者 DIAG Port。连不上?检查驱动,或者看看设备管理器里端口有没有感叹号。
- 打开 View > Logging Configuration:这里才是核心。
- 按需勾选模块:别全选!我只勾当前要查的模块。比如查 Modem 问题,就只勾
0xB822 (Modem)和0xB821 (NV)。 - 设置过滤等级:一般选
Error + Warning + Info。Debug 级别的 log 太啰嗦,除非你非要看某个变量的变化。
Max Log File Size 设成 50MB。文件满了自动分割,不会丢数据,也好管理。
4.2 关键 Log 过滤:NV、Modem、WLAN
日志刷屏的时候,你得知道哪些是“金子”。
4.2.1 NV 日志过滤
NV(Non-Volatile)存储着射频校准、IMEI、配置参数。我遇到过一台机器信号差,查了半天,最后发现是 NV 里的 PA 增益参数被写坏了。
过滤方法:
- 在 Filter 栏输入
NV或者0xB821。 - 关注
NV_READ和NV_WRITE事件。 - 如果看到
NV_FAIL或者NV_CORRUPT,基本可以断定硬件或底层驱动有问题。
4.2.2 Modem 日志过滤
Modem 日志是查信号、通话、数据业务的核心。你想想看,手机连不上网,是基带没搜到网,还是上层协议栈卡住了?
过滤方法:
- 输入
Modem或0xB822。 - 重点关注
LTE_NAS、LTE_RRC、WCDMA_RRC这些协议层消息。 - 看到
REGISTRATION_REJECT或者ATTACH_FAIL,立刻停下来分析原因码。
举个例子:
// 一个典型的附着失败日志
[0xB822] LTE_NAS: ATTACH_REJECT (cause: 0x0F)
// 0x0F 表示 "No suitable cells in tracking area"
// 这说明手机搜到了信号,但网络侧不认它。可能是 SIM 卡问题或网络配置问题。
4.2.3 WLAN 日志过滤
Wi-Fi 断流、连不上、速度慢,这些破事我见多了。WLAN 日志能帮你看到底是驱动挂了,还是上层应用在搞鬼。
过滤方法:
- 输入
WLAN或0xB823。 - 关注
WLAN_DRIVER_EVENT和WLAN_FW_EVENT。 - 如果看到
WLAN_SCAN_FAIL,大概率是信道干扰或驱动 bug。
4.3 实时抓取与分析
实时抓取,说白了就是“现场直播”。
我的操作流程:
- 点击 Start Logging,开始实时抓取。
- 在 Filter 栏输入关键词,比如
NV或Modem。 - 复现问题(比如开关飞行模式、打电话、连 Wi-Fi)。
- 观察日志窗口,看有没有异常消息弹出。
- 发现问题后,立刻点击 Stop Logging,保存日志文件。
为什么要立刻停?因为日志文件太大,回头分析时你会崩溃的。我一般只抓问题发生前后 10 秒的日志,够用了。
4.4 常见问题定位实战
光说不练假把式。我拿三个真实案例给你讲讲。
案例一:手机搜不到网
现象:插卡后一直显示“无服务”。
分析:打开 QXDM,过滤 Modem 日志。看到 LTE_RRC: CELL_SEARCH_FAIL。这说明手机连小区都搜不到。进一步看射频日志,发现 RF_TUNER_LOCK_FAIL。嗯,射频前端有问题。
结论:硬件射频通路故障,换了个天线开关就好了。
案例二:Wi-Fi 频繁断流
现象:连接 Wi-Fi 后,每隔几分钟断一次。
分析:过滤 WLAN 日志,看到 WLAN_FW_EVENT: BEACON_LOSS。这说明手机收不到路由器的 Beacon 帧。再查信道,发现周围干扰严重。
结论:手动切换信道后问题解决。后来我建议驱动团队优化了信道选择算法。
案例三:NV 参数写不进去
现象:校准工具写 NV 时提示失败。
分析:过滤 NV 日志,看到 NV_WRITE_FAIL: EIO。I/O 错误,说明底层存储有问题。用 QPST 读 NV 分区,发现部分扇区坏了。
结论:更换 EMMC 芯片后正常。嗯,这是硬件批次问题。
好了,这一章就到这里。下一章我会讲 QPST 和 QXDM 的联动使用,到时候教你如何用 QPST 直接修改 NV 参数来验证问题。