4、QXDM深度使用:日志配置、关键过滤与实战定位

QXDM 这工具,说白了就是高通的“黑匣子记录仪”。

我刚开始接触它的时候,觉得界面乱糟糟的,一堆看不懂的 log 在刷屏。后来被项目逼着啃了两个月,才发现这玩意儿是真香。今天我就把压箱底的使用习惯分享给你。

4.1 日志配置:别让无效信息淹死你

很多人一打开 QXDM 就点 Start Logging,结果日志文件几分钟就几个 G。嗯,这是典型的“抓了等于没抓”。

我的配置习惯是这样的:

  1. 先连上目标端口:通常选 DM Port 或者 DIAG Port。连不上?检查驱动,或者看看设备管理器里端口有没有感叹号。
  2. 打开 View > Logging Configuration:这里才是核心。
  3. 按需勾选模块:别全选!我只勾当前要查的模块。比如查 Modem 问题,就只勾 0xB822 (Modem)0xB821 (NV)
  4. 设置过滤等级:一般选 Error + Warning + Info。Debug 级别的 log 太啰嗦,除非你非要看某个变量的变化。
我的小技巧:我会在 Logging Configuration 里把 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_READNV_WRITE 事件。
  • 如果看到 NV_FAIL 或者 NV_CORRUPT,基本可以断定硬件或底层驱动有问题。
避坑指南:我曾经在产线上发现一批机器写 NV 失败,最后定位到是 EMMC 分区损坏。所以看到 NV 报错,别只盯着驱动,也要看看存储。

4.2.2 Modem 日志过滤

Modem 日志是查信号、通话、数据业务的核心。你想想看,手机连不上网,是基带没搜到网,还是上层协议栈卡住了?

过滤方法:

  • 输入 Modem0xB822
  • 重点关注 LTE_NASLTE_RRCWCDMA_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 日志能帮你看到底是驱动挂了,还是上层应用在搞鬼。

过滤方法:

  • 输入 WLAN0xB823
  • 关注 WLAN_DRIVER_EVENTWLAN_FW_EVENT
  • 如果看到 WLAN_SCAN_FAIL,大概率是信道干扰或驱动 bug。
注意:WLAN 日志量很大。我建议你只在复现问题时才开启,平时关掉。不然日志文件会膨胀得很快。

4.3 实时抓取与分析

实时抓取,说白了就是“现场直播”。

我的操作流程:

  1. 点击 Start Logging,开始实时抓取。
  2. Filter 栏输入关键词,比如 NVModem
  3. 复现问题(比如开关飞行模式、打电话、连 Wi-Fi)。
  4. 观察日志窗口,看有没有异常消息弹出。
  5. 发现问题后,立刻点击 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 芯片后正常。嗯,这是硬件批次问题。

总结一下:QXDM 用得好,能帮你省下 80% 的排查时间。关键是养成好习惯——先配日志、再过滤、最后分析。别一上来就瞎抓。

好了,这一章就到这里。下一章我会讲 QPST 和 QXDM 的联动使用,到时候教你如何用 QPST 直接修改 NV 参数来验证问题。