> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 调试 Wi-Fi 问题

## **报告 Wi-Fi 问题**

要向 [Qualcomm](https://www.qualcomm.com/support) 报告问题，请提供以下详细信息。

* 提供环境搭建信息
  |   **信息类型**   |                                                **描述**                                                |
  | :----------: | :--------------------------------------------------------------------------------------------------: |
  |     平台信息     |                                               平台名称和软件版本                                              |
  |  Wi-Fi AP 信息 |                                        型号名称、信道/模式/带宽/安全性以及固件版本                                       |
  |     相关日志     | 更多信息，请参阅 [ath11k 日志](#logs-for-ath11k)、[ath12k 日志](#logs-for-ath12k)和 [ath10k 日志](#logs-for-ath10k)。 |
  | 测试环境、步骤和预期结果 |                                             报告问题时使用的测试流程。                                            |
* 打包所有用于调试的日志文件并报告给 Qualcomm。
  下表列出了报告问题所需的日志。
  |     **日志名称**    | **协议问题** | **吞吐量问题** |
  | :-------------: | :------: | :-------: |
  |      主机驱动日志     |    必需    |     必需    |
  |       固件日志      |    必需    |     必需    |
  | 无线抓包（sniffer）日志 |    推荐    |     必需    |
  |  Supplicant 日志  |    必需    |     必需    |

## **ath11k 日志**

Wi-Fi 子系统提供了工具和日志以协助排查问题。

### **拉取 Wpa\_supplicant 日志**

如果发现任何问题，请运行以下命令收集 wpa\_supplicant 日志：

```text theme={null}
scp -r root@<ip_addr>:/tmp/wpa_supplicant-log.txt .
```

例如，如果被测设备（DUT）的 IP 地址为 `192.168.1.22`，请运行以下命令：

```text theme={null}
scp -r root@192.168.1.22:/tmp/wpa_supplicant-log.txt .
```

### **拉取 Wi-Fi 主机驱动和固件日志**

要拉取 ath11k 驱动的 Wi-Fi 主机驱动和固件日志，请执行以下操作：

1. 在 DUT 上按如下方式运行 `trace-cmd` 工具：
   * 要获取完整日志，请运行以下命令：
     ```text theme={null}
     trace-cmd record -e ath11k_htt_pktlog -e ath11k_htt_ppdu_stats -e ath11k_htt_rxdesc -e ath11k_log_err -e ath11k_log_warn -e ath11k_log_info -e ath11k_wmi_cmd -e ath11k_wmi_event -e ath11k_log_dbg -e ath11k_log_dbg_dump -e ath11k_wmi_diag -e ath11k_ps_timekeeper
     ```
   * 要获取固件日志，请运行以下命令：
     ```text theme={null}
     trace-cmd record -e ath11k_wmi_diag
     ```
2. 运行目标测试用例或复现问题。
3. 按 **Ctrl + C** 停止 `trace-cmd`。
   `trace.dat` 日志如下所示：
   **示例输出**
   ```text theme={null}
   root@qcm6490:/tmp#
   root@qcm6490:/tmp# trace-cmd record -e ath11k_htt_pktlog -e ath11k_htt_ppdu_stats -e ath11k_htt_rxdesc -e ath11k_log_err -e ath11k_log_warn -e ath11k_log_info
   -e ath11k_wmi_cmd -e ath11k_wmi_event -e ath11k_log_dbg -e ath11k_log_dbg_dump -e ath11k_wmi_diag -e ath11k_ps_timekeeper
   Hit Ctrl+C to stop recording
   ^CCPU0 data recorded at offset=0x7fc000 151552 bytes in size
   CPU1 data recorded at offset=0x821000 163840 bytes in size
   CPU2 data recorded at offset=0x849000
   0 bytes in size
   CPU3 data recorded at offset=0x849000
   0 bytes in size
   CPU4 data recorded at offset=0x849000
   0 bytes in size
   CPU5 data recorded at offset=0x849000
   0 bytes in size
   CPU6 data recorded at offset=0x849000
   0 bytes in size
   CPU7 data recorded at offset=0x849000
   0 bytes in size
   root@qcm6490:/tmp# ls -al
   ls: cannot access 'ssgtzd': Permission denied
   total 8600
   drwxrwxrwt. 10 root  root  280 Sep 16  06:21 .
   drwxr-xr-x. 22 root  root  4096 Sep  9 10:34 ..
   srw-rw-rw-. 1 system system   0 Apr 28  2022 property-vault.socket
   s?????????? ? ?       ?       ?            ? ssgtzd
   drwx------. 3 root   root   60 Apr 28 2022 systemd-private-e9b8fea895944dd5a0fd05770af20d6e-ModemManager.service-52N7rb
   drwx------. 3 root   root   60 Apr 28 2022 systemd-private-e9b8fea895944dd5a0fd05770af20d6e-bluetooth.service-1nYL2F
   drwx------. 3 root   root   60 Apr 28 2022 systemd-private-e9b8fea895944dd5a0fd05770af20d6e-chronyd.service-UmA8vV
   drwx------. 3 root   root   60 Jan  6 1980 systemd-private-e9b8fea895944dd5a0fd05770af20d6e-ninfod.service-nSxLqH
   drwx------. 3 root   root   60 Jan  6 1980 systemd-private-e9b8fea895944dd5a0fd05770af20d6e-rdisc.service-voag6w
   drwx------. 3 root   root   60 Apr 28 2022 systemd-private-e9b81ea895944dd5a0fd05770af20d6e-systemd-logind.service-kHhqPi
   drwx------. 3 root   root   60 Jan  6 1980 systemd-private-e9b8fea895944dd5a0fd05770af20d6e-systemd-resolved.service-hQ2tR3
   drwx------. 3 root   root   60 Jan  1 1970 systemd-private-e9b8fea895944dd5a0fd05770af20d6e-systemd-timesyncd.service-Ghf2u0
   -rw-r--r--. 1 root   root 8687616 Sep 16 06:21 **trace.dat**
   -rw-r-----. 1 root   root 114229 Sep 16 06:04 wpa_supplicant-log.txt
   ```
4. 将 `trace.dat` 日志从 DUT 复制到 Ubuntu 主机设备。
5. 按如下方式获取主机和固件日志：
   * 要从 `trace.dat` 日志中获取主机日志，请运行以下命令：
     ```text theme={null}
     trace-cmd report trace.dat > host.txt
     ```
     **示例输出**
     ```text theme={null}
     username@hu-username-hyd:/local/mnt/workspace/ath11k$ ls -al
     total 18464
     drwxrwxr-x 2 username users    4096 Aug 15 08:48 .
     drwxrwxrwt 12 root root      4096 Aug 15 08:48 ..
     -rw-r--r-- 1 username users 18898944 Aug 15 08:48 trace.dat
     username@hu-username-hyd:/local/mnt/workspace/ath11k$ trace-cmd report trace.dat > host.txt
     username@hu-username-hyd:/local/mnt/workspace/ath11k$ ls -al
     total 19500
     drwxrwxr-x 2 username users    4096 Aug 15 08:48 .
     drwxrwxrwt 12 root  root     4096 Aug 15 08:48 ..
     -rw-rw-r-- 1  username users 1059505 Aug 15 08:48 host.txt
     -rw-r--r-- 1  username users 18898944 Aug 15 08:48 trace.dat
     username@hu-username-hyd:/local/mnt/workspace/ath11k$
     ```
     你可以在 Ubuntu 终端中运行以下命令来安装 `trace-cmd` 工具：
     ```text theme={null}
     apt-get install trace-cmd
     ```
   * 要获取固件日志，请在支持门户上分享 `trace.dat` 日志和问题详情。

### **在 dmesg 中捕获驱动日志**

用于 dmesg 的 ath11k 命令如下：

```text theme={null}
enum ath11k_debug_mask {
          ATH11K_DBG_AHB          = 0x00000001,
          ATH11K_DBG_WMI          = 0x00000002,
          ATH11K_DBG_HTC          = 0x00000004,
          ATH11K_DBG_DP_HTT       = 0x00000008,
          ATH11K_DBG_MAC          = 0x00000010,
          ATH11K_DBG_BOOT         = 0x00000020,
          ATH11K_DBG_QMI          = 0x00000040,
          ATH11K_DBG_DATA         = 0x00000080,
          ATH11K_DBG_MGMT         = 0x00000100,
          ATH11K_DBG_REG          = 0x00000200,
          ATH11K_DBG_TESTMODE     = 0x00000400,
          ATH11K_DBG_HAL          = 0x00000800,
          ATH11K_DBG_PCI          = 0x00001000,
          ATH11K_DBG_DP_TX        = 0x00002000,
          ATH11K_DBG_DP_RX        = 0x00004000,
          ATH11K_DBG_CE           = 0x00008000,
  };
```

你可以使用每条命令获取特定日志。例如：

* 要获取 WMI 相关的驱动日志，请运行以下命令：
  ```text theme={null}
  echo 0x2 > /sys/module/ath11k/parameters/debug_mask
  ```
* 要获取主机目标通信（HTC）相关的日志，请运行以下命令：
  ```text theme={null}
  echo 0x4 > /sys/module/ath11k/parameters/debug_mask
  ```

### **无线抓包器（sniffer）**

无线抓包器可拦截空中传输的 Wi-Fi 帧。使用无线抓包器捕获 Wi-Fi 空口（OTA）数据包。

### **收集固件转储**

当设备崩溃时，固件转储将以 BIN 文件形式保存在 `/var/spool/crash` 目录下。

```text theme={null}
sh-5.1# cd /var/spool/crash/
sh-5.1# ls
0000:01:00.0_2022-04-28_17-51-45.bin
```

请在支持门户上分享此转储文件。

## **ath12k 日志**

Wi-Fi 子系统提供了工具和日志，以协助排查 ath12k 平台上的问题。

### **拉取 Wi-Fi 主机驱动和固件日志**

要拉取 ath12k 驱动的 Wi-Fi 主机驱动和固件日志，请在 DUT 上按如下方式运行 `trace-cmd`：

* 要获取完整日志，请运行以下命令：
  ```text theme={null}
  trace-cmd record -e ath12k -e ath12k_htt_pktlog -e ath12k_htt_ppdu_stats -e ath12k_htt_rxdesc -e ath12k_wmi_diag
  ```
* 要获取固件日志，请运行以下命令：
  ```text theme={null}
  trace-cmd record -e ath12k_wmi_diag
  ```

运行目标测试用例，然后按 **Ctrl + C** 停止 `trace-cmd`。在支持门户上分享生成的 `trace.dat` 文件和问题详情。

### **在 dmesg 中捕获驱动日志**

你可以通过 `debug_mask` 接口启用特定的 ath12k 调试日志。

```text theme={null}
enum ath12k_debug_mask {
        ATH12K_DBG_AHB          = 0x00000001,
        ATH12K_DBG_WMI          = 0x00000002,
        ATH12K_DBG_HTC          = 0x00000004,
        ATH12K_DBG_DP_HTT       = 0x00000008,
        ATH12K_DBG_MAC          = 0x00000010,
        ATH12K_DBG_BOOT         = 0x00000020,
        ATH12K_DBG_QMI          = 0x00000040,
        ATH12K_DBG_DATA         = 0x00000080,
        ATH12K_DBG_MGMT         = 0x00000100,
        ATH12K_DBG_REG          = 0x00000200,
        ATH12K_DBG_TESTMODE     = 0x00000400,
        ATH12K_DBG_HAL          = 0x00000800,
        ATH12K_DBG_PCI          = 0x00001000,
        ATH12K_DBG_DP_TX        = 0x00002000,
        ATH12K_DBG_DP_RX        = 0x00004000,
        ATH12K_DBG_WOW          = 0x00008000,
        ATH12K_DBG_CE           = 0x00010000,
        ATH12K_DBG_ANY          = 0xffffffff,
};
```

* 要获取 WMI 相关的驱动日志，请运行以下命令：
  ```text theme={null}
  echo 0x2 > /sys/module/ath12k/parameters/debug_mask
  ```
* 要获取主机目标通信（HTC）相关的日志，请运行以下命令：
  ```text theme={null}
  echo 0x4 > /sys/module/ath12k/parameters/debug_mask
  ```

## **ath10k 日志**

Wi-Fi 子系统提供了工具和日志，以协助排查 ath10k 平台上的问题。

### **拉取 Wi-Fi 主机驱动和固件日志**

要拉取 ath10k 驱动的 Wi-Fi 主机驱动和固件日志，请在 DUT 上按如下方式运行 `trace-cmd`：

* 要获取完整日志，请运行以下命令：
  ```text theme={null}
  trace-cmd record -e ath10k_log_err -e ath10k_log_warn -e ath10k_log_info -e ath10k_log_dbg -e ath10k_log_dbg_dump -e ath10k_wmi_cmd -e ath10k_wmi_event -e ath10k_htt_stats -e ath10k_wmi_dbglog -e ath10k_htt_pktlog
  ```
* 要获取固件日志，请运行以下命令：
  ```text theme={null}
  trace-cmd record -e ath10k_wmi_dbglog
  ```

运行目标测试用例，然后按 **Ctrl + C** 停止 `trace-cmd`。在支持门户上分享生成的 `trace.dat` 文件和问题详情。

### **在 dmesg 中捕获驱动日志**

你可以通过 `debug_mask` 接口启用特定的 ath10k 调试日志。

```text theme={null}
enum ath10k_debug_mask {
        ATH10K_DBG_PCI          = 0x00000001,
        ATH10K_DBG_WMI          = 0x00000002,
        ATH10K_DBG_HTC          = 0x00000004,
        ATH10K_DBG_HTT          = 0x00000008,
        ATH10K_DBG_MAC          = 0x00000010,
        ATH10K_DBG_BOOT         = 0x00000020,
        ATH10K_DBG_PCI_DUMP     = 0x00000040,
        ATH10K_DBG_HTT_DUMP     = 0x00000080,
        ATH10K_DBG_MGMT         = 0x00000100,
        ATH10K_DBG_DATA         = 0x00000200,
        ATH10K_DBG_BMI          = 0x00000400,
        ATH10K_DBG_REGULATORY   = 0x00000800,
        ATH10K_DBG_TESTMODE     = 0x00001000,
        ATH10K_DBG_WMI_PRINT    = 0x00002000,
        ATH10K_DBG_PCI_PS       = 0x00004000,
        ATH10K_DBG_AHB          = 0x00008000,
        ATH10K_DBG_SDIO         = 0x00010000,
        ATH10K_DBG_SDIO_DUMP    = 0x00020000,
        ATH10K_DBG_USB          = 0x00040000,
        ATH10K_DBG_USB_BULK     = 0x00080000,
        ATH10K_DBG_SNOC         = 0x00100000,
        ATH10K_DBG_QMI          = 0x00200000,
        ATH10K_DBG_STA          = 0x00400000,
        ATH10K_DBG_ANY          = 0xffffffff,
};
```

* 要获取 WMI 相关的驱动日志，请运行以下命令：
  ```text theme={null}
  echo 0x2 > /sys/module/ath10k_core/parameters/debug_mask
  ```
* 要获取主机目标通信（HTC）相关的日志，请运行以下命令：
  ```text theme={null}
  echo 0x4 > /sys/module/ath10k_core/parameters/debug_mask
  ```
