使用 Bluetooth SPP 协议连接交换机 Console 口进行调试的完整配置过程,包含设备扫描、配对、RFCOMM 连接排错记录。
Bluetooth SPP Console 调试交换机 - 配置总结
1. 环境信息
| 项目 |
值 |
| 操作系统 |
Arch Linux (Kernel 7.1.9) |
| 蓝牙适配器 |
XX:XX:XX:XX:XX:XX (Qualcomm) |
| 蓝牙协议栈 |
BlueZ 5.87 |
| 目标设备 |
XY_SPP_XXXXVXXX |
| MAC 地址 |
AA:BB:CC:DD:EE:FF |
| SPP 波特率 |
9600 (蓝牙 SPP 不使用波特率,此为软件层配置) |
2. 扫描发现的设备
| MAC |
名称 |
用途 |
| AA:BB:CC:DD:EE:FF |
XY_SPP_XXXXVXXX |
✅ 目标交换机 SPP Console |
| AA:BB:CC:DD:EE:01 |
XY_BLE_XXXXVXXX |
BLE 版本 (未使用) |
| AA:BB:CC:DD:EE:02 |
XXX的AirPods |
无关 |
| AA:BB:CC:DD:EE:03 |
LYWSD03MMC |
温湿度传感器 (无关) |
3. 已完成的步骤
3.1 设备配对 ✅
1 2
| bluetoothctl pair AA:BB:CC:DD:EE:FF bluetoothctl trust AA:BB:CC:DD:EE:FF
|
- 状态: Paired=yes, Bonded=yes, Trusted=yes
3.2 RFCOMM 通道探测 ❌
1
| python3 /tmp/bt_debug.py
|
- 通道 1-30 全部返回
connect(): wrong format
- 原因: 需要
sudo 加载 rfcomm 内核模块并安装 bluez-deprecated-tools 包
4. 当前阻塞问题
问题: RFCOMM 连接失败
1
| OSError: connect(): wrong format
|
根本原因:
rfcomm 模块已加载 (lsmod | grep rfcomm 显示已加载)
- 但缺少
/dev/rfcomm0 设备节点
- 需要安装
bluez-deprecated-tools 包提供 rfcomm CLI 工具
解决方案 (需要 sudo 权限)
1 2 3 4 5 6 7 8 9 10 11
| sudo pacman -S bluez-deprecated-tools
sudo rfcomm bind /dev/rfcomm0 AA:BB:CC:DD:EE:FF 1
ls -la /dev/rfcomm0
minicom -D /dev/rfcomm0 -b 9600
|
5. 替代方案 (无需 sudo)
方案 A: 使用 socat 桥接
1 2 3 4 5
| bluetoothctl connect AA:BB:CC:DD:EE:FF
socat PTY,link=/tmp/bt_spp,raw,echo=0 TCP:localhost:RFCOMM_PORT
|
方案 B: Python RFCOMM 脚本 (待调试)
已创建脚本 /tmp/bt_spp_console.py,但需要修复 struct 打包问题。
6. 后续步骤
- 获取 sudo 权限 执行安装命令
- 查询 RFCOMM 通道号:
1 2
| sdptool browse AA:BB:CC:DD:EE:FF | grep -A 10 "Serial Port"
|
- 绑定并连接:
1 2
| sudo rfcomm bind /dev/rfcomm0 AA:BB:CC:DD:EE:FF <CHANNEL> minicom -D /dev/rfcomm0 -b 9600
|
7. 工具和脚本位置
| 文件 |
说明 |
/tmp/bt_spp_console.py |
Python SPP 控制台桥接脚本 |
/tmp/bt_debug.py |
RFCOMM 连接调试脚本 |
/tmp/bt_spp_dbus.py |
D-Bus API 连接脚本 |
8. 参考命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| bluetoothctl scan on
bluetoothctl info AA:BB:CC:DD:EE:FF
bluetoothctl pair AA:BB:CC:DD:EE:FF bluetoothctl trust AA:BB:CC:DD:EE:FF
bluetoothctl connect AA:BB:CC:DD:EE:FF
bluetoothctl paired-devices
|
最后更新: 2026-09-08
状态: ⏳ 等待 sudo 权限完成安装
转载时请注明,本篇文章来自 qibohan.com.