Bluetooth 调试、性能、故障与安全
1. 基础状态
1 | rfkill list |
2. 抓包
1 | btmon |
先启动btmon再复现,观察HCI command、status、event、disconnect reason。空中协议问题需独立sniffer。
3. UART
检查:
-controller和host baud一致;
-RTS/CTS pinmux;
-RX/TX是否交叉;
-reset/clock;
-host-wake;
-是否已运行hciattach或serdev已绑定;
-UART DMA/PIO overrun。
逻辑分析仪应按H4/H5 framing解码。
4. USB
1 | lsusb -nn |
测试关闭autosuspend只能用于定位,不应直接作为最终修复。
5. Firmware
从日志记录准确requested path、ROM/LMP/HCI revision。确认文件权限、大小、版本和下载后的boot event。
6. RK3588低功耗
逐项验证:
-rfkill unblock后的reset波形;
-32k clock;
-UART RTS/CTS;
-BT_WAKE;
-HOST_WAKE中断计数;
-suspend pinctrl;
-shared Wi-Fi/BT rail。
7. 性能
-提高UART baud前验证signal和flow control;
-USB避免错误hub拓扑和频繁autosuspend;
-SDIO优化block size/IRQ但兼顾Wi-Fi;
-检查CPU idle/wakeup latency;
-A2DP吞吐还受codec和BlueZ影响;
-HFP问题重点看USB isoc或UART时延。
8. 常见故障
| 现象 | 首要检查 |
|---|---|
| 无hci0 | transport probe、attach、power |
| hci0 up timeout | firmware、baud、reset |
| 扫描正常连接失败 | 地址、firmware、加密事件 |
| suspend后失联 | wake GPIO/IRQ/clock |
| Wi-Fi开关影响BT | shared rail/coexistence |
| 音频卡顿 | RF干扰、UART flow、USB isoc |
9. 安全
-限制raw HCI、mgmt、VHCI权限;
-关闭不需要的legacy protocols和debug;
-使用受控firmware;
-及时修复Bluetooth stack/controller漏洞;
-关闭不需要的discoverable/pairable;
-采用Secure Connections并限制legacy pairing;
-devcoredump按敏感数据处理。
10. 产品证据
保留kernel config、最终DTB、firmware hash、controller revision、btmon复现、rfkill/GPIO dump和功耗波形,避免仅凭“hci0存在”判定集成完成。
正在加载留言…