目录
linux蓝牙测试工具
Bluetoothctl
如下图所示,bluetoothctl可进行蓝牙扫描、信任、配对等功能
hciconfig
在命令行输入hciconfig后可显示设备信息
常用命令:
打开/关闭/重置hci设备:hciconfig hci0 up/down/reset
认证打开/关闭:hciconfig hci0 auth/noauth,直接体现在进行蓝牙连接时,是否输入连接PIN密码,用于PIN配对
查看/改变蓝牙主从状态:hciconfig hci0 lm master(改为主模式)、hciconfig hci0 lm slave(改为从模式)
查看/设置蓝牙名称:hciconfig hci0 name 、hciconfig hci0 name LPA3588
hcitool
查看HCI设备信息:hcitool dev
发现周围蓝牙设备:hcitool -i hci0 inq
蓝牙扫描:hcitool -i hci0 inq
查看探查到的蓝牙信息:hcitool -i hci0 name 88:A9:B7:E6:F1:8F
发送CMD蓝牙命令:hcitool cmd --help
开启spp服务
1. 模块配置
关闭蓝牙
sudo hciconfig hci0 down
重置蓝牙
sudo hciconfig hci0 reset
打开蓝牙
sudo hciconfig hci0 up
让蓝牙可连接可发现
sudo hciconfig hci0 piscan
2. 添加SPP服务
配置好以后,需要手动添加SPP服务
sudo sdptool add SP
添加成功会有如下返回结果:
Serial Port service registered
3. 查看SPP服务
sudo sdptool browse local
问题:
运行后报错:Failed to connect to SDP server on FF:FF:FF:00:00:00: No such file or directory
解决:修改系统中蓝牙服务的启动选项,-C的意思就是compat,兼容性模式运行蓝牙服务
sudo vim /lib/systemd/system/bluetooth.service
ExecStart=/usr/lib/bluez5/bluetooth/bluetoothd -C
重启蓝牙服务:
sudo systemctl daemon-reload
sudo systemctl restart bluetooth.service
再次查看
sudo sdptool browse local
找到上述服务,串口服务SPP开启成功
linux蓝牙手机调试
hcitool scan 扫描蓝牙设备
sdptool add SP 为本地设备增加SPP服务(在上一小节中着重介绍)
打开手机上的蓝牙串口工具(为了增加spp服务)
sdptool browse 蓝牙mac地址 查看手机蓝牙spp服务在哪个信道(例如我的蓝牙手机spp服务在信道4)
mknod /dev/rfcomm0 c 216 0 创建设备节点
chmod 666 /dev/rfcomm0 设置权限
rfcomm bind 0 蓝牙设备mac地址 4 (信道4 之前搜索到spp服务的信道别忘了)
rfcomm connect 0 蓝牙设备mac地址 4(连接蓝牙设备)
如果此时出现Can't create RFCOMM TTY: Address already in use
rfcomm release 0 (释放已使用的蓝牙rfcomm tty)
再次连接即可 #rfcomm connect 0 蓝牙设备mac地址 4(连接蓝牙设备)
问题分析:
执行rfcomm时报错:RFCOMM TTY support not available
问题原因:内核中rfcomm tty选项没有打开
解决方法:
在sdk的内核目录找到该选项并使能
CONFIG_BT_RFCOMM=y
修改后重新编译内核并烧录进板子即可
Failed to connect to SDP server on FF:FF:FF:00:00:00: No such file or directory
找到这个文件:
/etc/systemd/system/dbus-org.bluez.service
修改如下代码:
#ExecStart=/usr/lib/bluetooth/bluetoothd
ExecStart=/usr/lib/bluetooth/bluetoothd --compat
sudo systemctl daemon-reload
sudo systemctl restart bluetooth
windowsPC蓝牙测试
1. 在windows蓝牙设置中选择更多蓝牙选项
2. 添加虚拟传入传出口
3. 使用串口助手进行收发测试
编译瑞芯微rk3588的sdk中的rkwifibt-app
问题分析
Ubuntu交叉编译rkwifibt时缺库
No package 'glib-2.0' found
解决方法:sudo apt-get install libglib2.0-dev
No package 'dbus-1' found
解决方法:sudo apt-get install libdbus-1-dev
参考文档:
Ubuntu上实现蓝牙串口通讯(SPP)_ubuntu 蓝牙串口_Chuck_lin的博客-CSDN博客
linux蓝牙建立spp服务连接_蓝牙spp_白小溪via的博客-CSDN博客
Ubuntu蓝牙Bluetooth命令行连接发送文件完整流程_ubuntu 蓝牙发送指令_新潮技术研究社的博客-CSDN博客