调试 BlueZ 协议栈
在启用或收集日志之前,请执行以下操作:- 启用 SSH 以访问您的主机设备。有关说明,请参阅 使用 SSH 登录。
- 将 DUT 和远程设备置于蓝牙有效范围内。
-
在命令提示符中使用以下命令运行 SSH:
示例 如果设备的 IP 地址为
10.92.160.222,请运行以下命令: -
输入以下密码以连接到 SSH:
启用 BlueZ 日志
要启用 BlueZ 日志,请在 SSH 中执行以下操作:-
运行以下命令启用读写权限:
-
在文本编辑器中打开 Bluetooth 服务文件。
示例
要在 VI 编辑器中打开
bluetooth.service文件,请运行以下命令: -
在文件中的以下行末尾追加
-d选项: - 保存文件。
-
运行以下命令重新加载 Bluetooth 守护进程:
-
运行以下命令重启蓝牙:
收集 BlueZ 日志
-
要收集 BlueZ 用户空间日志,请在 SSH 中运行以下命令:
-
要收集所有日志,请在 SSH 中运行以下命令:
收集 snoop 日志
要收集 snoop 日志,请在 SSH 中执行以下操作:-
运行
hcidump工具。 -
运行以下命令保存文件:
示例 要将 snoop 日志保存到
snoop.log文件,请运行以下命令:如果设备有多个 HCI 接口,请在捕获 snoop 日志时使用-i选项指定目标接口。请先运行hciconfig以识别可用接口。 示例输出要在hci1上捕获 snoop 日志,请运行以下命令:示例输出
启用 PipeWire 日志
要启用 PipeWire 日志,请在 SSH 中执行以下操作:-
在文本编辑器中打开 PipeWire 配置文件。
示例
要在 VI 编辑器中打开
pipewire.conf文件,请运行以下命令: -
取消注释日志级别并将其设置为
4或5。 - 保存文件。
-
运行以下命令重新加载 Bluetooth 守护进程:
-
运行以下命令重启 PipeWire:
启用 WirePlumber 服务日志
要启用 WirePlumber 服务日志,请执行以下操作:-
运行以下命令验证 WirePlumber 服务的状态:
-
在文本编辑器中打开 WirePlumber 服务文件。
示例
要在 VI 编辑器中打开
wireplumber.service文件,请运行以下命令: -
将以下调试变量添加到文件中的所有服务部分:
- 保存文件。
-
运行以下命令重新加载 Bluetooth 守护进程:
-
运行以下命令重启 WirePlumber 服务:
- 验证服务状态,确认其是否以指定的标志运行。
启用 ofono 服务日志
要启用 ofono 服务日志,请在 SSH 中执行以下操作:-
运行以下命令验证 ofono 服务的状态:
示例输出
-
在文本编辑器中打开 ofono 服务文件。
示例
要在 VI 编辑器中打开
ofono.service文件,请运行以下命令: -
在文件中的以下行末尾追加
-d选项: - 保存文件。
-
运行以下命令重新加载 Bluetooth 守护进程:
-
运行以下命令重启 ofono 服务:
- 验证服务状态,确认其是否以指定的标志运行。
收集 SSR 转储日志
在 Qualcomm Linux 软件中,如果任何蓝牙子系统模块崩溃,SSR 功能会在蓝牙驱动中收集所需的固件崩溃转储,然后重启蓝牙子系统。崩溃转储文件位于/var/spool/crash/ 目录。
关于 SSR 日志记录,请注意以下几点:
-
要验证 SSR 日志是否已启用或禁用,请运行以下命令:
返回值:
-
1:SSR 日志记录已禁用。 -
0:SSR 日志记录已启用。
-
-
要启用 SSR 日志,请运行以下命令:
-
要手动收集 SSR 日志,请执行以下操作:
要手动收集 SSR 崩溃转储,请确保设备蓝牙已打开。
-
运行
hcitool工具。 -
运行以下命令向控制器发送崩溃命令:
示例输出触发的崩溃会在
/var/spool/crash/目录生成一个 BIN 文件。 示例输出 -
确保已在
/var/spool/crash/目录生成 BIN 文件。
-
运行
默认情况下未安装用户空间转储收集工具。请安装或配置一个工具(例如
systemd-coredump 或 kdump-tools),将转储保存到 /var/spool/crash/。如果您观察到任何超时或蓝牙硬件错误,请联系 Qualcomm 并共享该 BIN 文件。
