Bluetooth 调试、性能、故障与安全

Bluetooth 调试、性能、故障与安全

1. 基础状态

1
2
3
4
5
6
rfkill list
btmgmt info
bluetoothctl show
hciconfig -a
ls /sys/class/bluetooth
dmesg | grep -Ei 'Bluetooth|btusb|hci_uart|rfkill|firmware'

2. 抓包

1
2
btmon
btmgmt power on

先启动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
2
3
lsusb -nn
lsusb -t
cat /sys/bus/usb/devices/*/power/control

测试关闭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存在”判定集成完成。

文章互动

阅读 --

留言

0 条留言

正在加载留言…