尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

linux 蓝牙调试相关指令

linux 蓝牙调试相关指令 一.背景由于第一次做linux蓝牙项目需要将常用指令进行记录本次文档适合蓝牙linux初学者二.蓝牙初始化和进程启动相关操作依次执行如下命令对蓝牙功能进行初始化操作启动相关进程与工具adb shell //进入shell sh-5.0# bt_init.sh //启用蓝牙初始化脚本对蓝牙进行初始化 sh-5.0# /usr/libexec/bluetooth/bluetoothd -d -C -n //启用bluetoothd守护进程 sh-5.0# bluetoothctl //启用bluetoothctl工具bt_init.sh脚本包含如下步骤killall rtk_hciattach //停止rtk_hciattach进程 echo 0 /sys/class/rfkill/rfkill0/state echo 0 /proc/bluetooth/sleep/btwrite sleep 0.5 //如上三行命令关闭蓝牙电源并延时0.5毫秒 echo 1 /sys/class/rfkill/rfkill0/state echo 1 /proc/bluetooth/sleep/btwrite sleep 0.5 //如上三行命令为开启蓝牙电源并延时0.5毫秒 insmod /usr/lib/modules/hci_uart.ko //加载蓝牙串口驱动 rtk_hciattach -n -s 115200 /dev/ttyS1 rtk_h5 //进行蓝牙初始化 hciconfig hci0 up //打开蓝牙启用bluetoothctl工具的命令执行情况详见下图示例三.蓝牙基本操作在bluetoothctl工具中执行以下命令可操作蓝牙[bluetooth]#power on //打开蓝牙 [bluetooth]#power off //关闭蓝牙 [bluetooth]#discoverable on //开启蓝牙可被搜索发现 [bluetooth]#discoverable off //关闭蓝牙可被搜索发现 [bluetooth]#pairable on //开启蓝牙可配对 [bluetooth]#pairable off //关闭蓝牙可配对 [bluetooth]#scan on //开始扫描周边蓝牙设备 [bluetooth]#scan off //停止扫描周边蓝牙设备 [bluetooth]#devices //查看扫描到的蓝牙设备 [bluetooth]#system-alias XX //设置本地蓝牙设备别名XX为蓝牙设备别名 [bluetooth]#reset-alias //清除本地蓝牙设备别名 [bluetooth]#pair xx:xx:xx:xx:xx:xx //模块与扫描到的蓝牙设备MAC地址配对xx:xx:xx:xx:xx: xx为MAC地址 [bluetooth]#paired-devices //查看已配对的蓝牙设备,注意新版本中此命令没有作用也是devices命令 [bluetooth]#remove xx:xx:xx:xx:xx:xx //根据MAC地址清除配对列表中已配对的蓝牙设备 [bluetooth]#trust 30:A9:98:54:0B:E2 //信任该设备 [bluetooth]# remove 30:A9:98:54:0B:E2 //清除设备 [bluetooth]# info 30:A9:98:54:0B:E2 //查看耳机的详细信息上述trust是信任该设备的作用就是后续可以自动回连如下是详细讲解一、 trust MAC 的核心作用是什么简单来说trust 的核心作用是允许该设备在未来主动向您的开发板发起连接回连时开发板会自动无条件接受无需人工确认。典型场景当您把耳机从充电盒里拿出来戴上时耳机内部的芯片会主动向您的开发板发送连接请求。如果设备处于Trusted: yes状态开发板的蓝牙守护进程会直接放行耳机瞬间自动回连成功。如果设备处于Trusted: no状态开发板会认为这是一个“未经授权的外部设备主动呼叫”为了安全可能会直接拒绝连接或者在后台弹窗等待用户手动点击“允许”而在没有屏幕的嵌入式终端里这就意味着连接会直接失败。二、 为什么有时候不执行 trust 也能连接成功主要有以下两个原因原因 1您是主动发起连接的一方Active Connection当您在终端输入 connect 30:A9:98:54:0B:E2 时是开发板主动去呼叫耳机。因为这个连接指令是您管理员手动下达的系统不需要再去校验“该设备是否安全/是否被信任”因为您已经明确指示要连它。因此只要耳机和板子之前已经完成了pair配对连接就能100%成功无需 trust。原因 2配对成功后系统自动将其设为了信任Auto-Trust在现代的 BlueZ 蓝牙协议栈中当您使用默认代理default-agent成功执行pair建立安全绑定后系统在底层经常会自动、顺便将该设备标记为 Trusted: yes。您可以尝试在刚配对完、还没输入 trust 时运行 info MAC 查看。您会发现其 Trusted: 字段可能已经自动变成了 yes。这种情况下再手动输入 trust 就属于重复操作但完全无害。总结与开发建议pair解决了“两台设备互相认不认识、数据传不传输”的问题安全加密。trust解决了“未来耳机开机能不能自动连回板子”的问题自动化回连。在编写嵌入式开机自动连接、或者自动化量产测试脚本时强烈建议依然保留 trust MAC 这一步。这能确保您的开发板在无人值守、没有屏幕交互的情况下100% 能够稳定地接受耳机的自动回连请求。
返回列表