如何在Linux系统上执行Bluetooth LE Ping操作
验证BLE设备物理层的LE Ping操作方法
BlueZ提供了内置工具来执行LE Ping操作,以下是具体步骤和工具使用方法:
准备工作
- 启用两台设备的蓝牙控制器:
(sudo hciconfig hci0 uphci0为目标控制器编号,根据实际设备调整) - 将从设备设置为可连接状态:
或使用旧版命令:sudo bluetoothctl advertise onsudo hciconfig hci0 leadv 3
使用bluetoothctl执行LE Ping
- 在主设备上扫描并获取从设备的MAC地址:
找到从设备后记录其MAC(例如sudo bluetoothctl scan onAA:BB:CC:DD:EE:FF)。 - 连接到从设备:
sudo bluetoothctl connect AA:BB:CC:DD:EE:FF - 发送LE Ping请求:
默认发送4次Ping,可通过sudo bluetoothctl ping AA:BB:CC:DD:EE:FF-c参数指定次数:sudo bluetoothctl ping -c 10 AA:BB:CC:DD:EE:FF
使用l2ping执行LE Ping
l2ping支持LE模式,直接执行以下命令即可:
sudo l2ping -c 4 -t 0 AA:BB:CC:DD:EE:FF
-c:指定Ping次数-t 0:强制使用BLE链路
验证底层PDU交互
若需要确认LL_PING_REQ和LL_PING_RSP的实际传输,可在另一终端运行btmon抓包:
sudo btmon
执行Ping命令后,btmon会输出完整的蓝牙底层报文,可直接查看物理层的PDU交互是否正常。
注意事项
- 确保两台设备的BlueZ版本足够新,旧版本可能不支持LE Ping的相关命令
- 主设备连接前,从设备必须处于可连接状态
- 操作需具备
sudo权限,或当前用户已加入bluetooth用户组
内容的提问来源于stack exchange,提问作者Danilo Fuchs
相关产品推荐
相关产品推荐

