# 调试

Source: [https://docs.qualcomm.com/doc/80-70014-13Y/topic/bt_debugging.html](https://docs.qualcomm.com/doc/80-70014-13Y/topic/bt_debugging.html)

要调试蓝牙问题，使用主机日志或空口日志 (OTA)。主机日志包括 Logcat 和 BTSnoop（Fluoride 协议栈）/HCI 日志。这些日志可用于初始调试。

下表列出了调试不同蓝牙问题所需的日志：

| 问题类型 | Logcat | BTSnoop/HCI | 内核日志 | OTA |
| --- | --- | --- | --- | --- |
| 通用 | 需要 | 需要 | 不需要 | 推荐 |
| 蓝牙控制器 | 不需要 | 推荐 | 不需要 | 需要 |
| 蓝牙开启/关闭 | 需要 | 不需要 | 不需要 | 不需要 |
| Crash | 需要 | 不需要 | 需要 | 不需要 |

## 主机日志

在开始之前，确保在 Permissive 模式下启用 SSH，以安全访问主机设备。相关说明，可参见 [SSH 使用指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254Y/how_to.html#how-to-ssh-)。

要从 RB3 Gen2 设备获取蓝牙日志，执行以下操作：

1. 关闭设备蓝牙。
2. 使用以下命令在命令提示符下运行 SSH：

        ssh root@<device_IP_address>Copy to clipboard

    例如，如果设备的 IP 地址为 `10.92.160.222`，执行以下命令：

        ssh root@10.92.160.222Copy to clipboard
3. 输入以下密码来连接 SSH：

        oelinux123Copy to clipboard
4. 按如下方式获取 Logcat 日志：
    1. 通过运行以下命令从设备中拉取蓝牙协议栈配置文件 bt\_stack.conf：

            scp -r root@<IP_address>:/etc/bluetooth/bt_stack.conf <destination_file_path>Copy to clipboard

        要将文件拉取到 PC 的当前文件路径，在命令中输入 `.` 作为 `<destination_file_path>`。

        例如，设备的 IP 地址为 `10.92.160.222`。要从设备中拉取 `bt_stack.conf` 文件，运行以下命令：

            scp -r root@10.92.160.222:/etc/bluetooth/bt_stack.conf .Copy to clipboard

Note: 提示输入密码时，输入 `oelinux123` 以通过安全复制协议 (SCP) 验证文件传输。
    2. 通过在蓝牙协议栈配置文件 `bt_stack.conf`中配置以下参数，将日志级别更改为详细：

            TRC_HCI=6
            TRC_L2CAP=6
            TRC_RFCOMM=6
            TRC_OBEX=6
            TRC_AVCT=6
            TRC_AVDT=6
            TRC_AVRC=6
            TRC_AVDT_SCB=6
            TRC_AVDT_CCB=6
            TRC_A2D=6
            TRC_SDP=6
            TRC_SMP=6
            TRC_BTAPP=6
            TRC_BTIF=6
            TRC_BNEP=6
            TRC_PAN=6
            TRC_HID_HOST=6
            TRC_HID_DEV=6Copy to clipboard
    3. 通过运行以下命令将蓝牙协议栈配置文件推送到设备：

            scp -r bt_stack.conf root@<IP_address>:/etc/bluetooth/bt_stack.confCopy to clipboard

        例如，设备的 IP 地址为 `10.92.160.222`。要将 `bt_stack.conf` 文件推送到设备，运行以下命令：

            scp -r bt_stack.conf root@10.92.160.222:/etc/bluetooth/bt_stack.confCopy to clipboard
    4. 通过运行以下命令收集 Logcat 日志：

            journalctl -f > all_logs.txtCopy to clipboard
    5. 通过运行以下命令拉取 Logcat 文件：

            scp -r root@<IP_address>:<source_file_path_of_all_logs.txt> <destination_file_path>Copy to clipboard

        要将文件拉取到 PC 的当前文件路径，在命令中输入 `.` 作为 `<destination_file_path>`。

例如，设备的 IP 地址为 `10.92.160.222`。要将 Logcat 文件 all\_logs.txt 拉取到当前文件路径，运行以下命令：

            scp -r root@10.92.180.250:/home/root/all_logs.txt .Copy to clipboard
5. 通过运行以下命令拉取 BTSnoop 日志：

        scp -r root@<IP_address>:/etc/bluetooth/btsnoop_hci.log <destination_file_path>Copy to clipboard

    HCIDUMP/BTSnoop 日志可用于确定与应用、蓝牙主机、蓝牙 SoC 还是对端设备有关的问题。

    要将文件拉取到 PC 的当前文件路径，在命令中输入 `.` 作为 `<destination_file_path>`。

例如，设备的 IP 地址为 `10.92.160.222`。要拉取 `btsnoop_hci.log` 文件，可运行以下命令：

        scp -r root@10.92.160.222:/etc/bluetooth/btsnoop_hci.log .Copy to clipboard

如果存在复合设备 USB，则 Q6 会处理唤醒的主机，连接 USB，然后将崩溃 dump 发送到主机。

在独立模式下，蓝牙会唤醒主机并发送崩溃 dump。

## OTA 日志

OTA 日志也称为嗅探器日志。使用 FTS/Ellisys 嗅探器工具捕获蓝牙 OTA 日志，以调试某些 SoC 或对端设备问题以及环境问题。

Last Published: Aug 22, 2024

[Previous Topic
GATT 配置参数](https://docs.qualcomm.com/bundle/publicresource/80-70014-13Y/topics/gatt_config_params.md) [Next Topic
参考资料](https://docs.qualcomm.com/bundle/publicresource/80-70014-13Y/topics/references_acronyms.md)