13. bluetooth¶
LubanCat-P1板卡板载wifi/bt芯片,型号为rtl8821cs,驱动方式为sdio/uart,使用蓝牙功能时需要下载蓝牙固件。
13.1. 下载蓝牙固件¶
1 2 3 4 5 6 7 8 9 10 11 12 13 | #进行配置
sudo /mnt/system/usr/bin/rtk_hciattach -n -s 115200 ttyS2 rtk_h5 &
#部分信息输出如下
Realtek Bluetooth :Start downloading...
Realtek Bluetooth :Send last pkt
Realtek Bluetooth :Disable host hw flow control
Realtek Bluetooth :h5_hci_reset: Issue hci reset cmd
Realtek Bluetooth :Receive cmd complete event of command: 0c03
Realtek Bluetooth :Received cc of hci reset cmd
Realtek Bluetooth :Init Process finished
Realtek Bluetooth :Realtek Bluetooth post process
Realtek Bluetooth :Device setup complete
|
以上作用是指定的串口设备(ttyS2),设置波特率(115200 bps)进行通信,通过指定rtk_h5协议,可以配置和管理与Realtek芯片相关的通信协议和设置,其中配置的一部分就是下载固件到模块。
13.2. 配置和连接蓝牙¶
使用命令行配置蓝牙,我们需要使用工具—-bluetoothctl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # 进入bluetoothctl命令行
bluetoothctl
# 进入bluetoothctl命令行后,类似:[bluetooth]#
# Controller代表arm板上的蓝牙设备,Device代表蓝牙耳机
# 按如下步骤初始化蓝牙设备,并连接蓝牙耳机
# 查看帮组
help
power on
agent on
default-agent
# 启动扫描
scan on
# 假如蓝牙耳机地址为:04:8C:9A:F2:54:4B
trust 04:8C:9A:F2:54:4B
# 配对
pair 04:8C:9A:F2:54:4B
# 连接
connect 04:8C:9A:F2:54:4B
# 查看蓝牙耳机信息
info 04:8C:9A:F2:54:4B
# 断开连接
disconnect 04:8C:9A:F2:54:4B
# 不想自动连接上蓝牙耳机,可以删除配对信息
remove 04:8C:9A:F2:54:4B
|
更多关于命令行蓝牙连接,可参考 https://blog.csdn.net/chenjk10/article/details/90317028
13.3. 关闭蓝牙验证¶
默认开启蓝牙连接验证,如果需要关闭验证可以操作以下步骤:
安装工具包:
1 2 | sudo apt update
sudo apt install bluez util-linux
|
新建/usr/lib/systemd/system/bt-agent.service 写入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 | [Unit]
Description=Bluetooth Auth Agent
After=bluetooth.service
PartOf=bluetooth.service
[Service]
Type=simple
ExecStart=/usr/bin/bt-agent -c NoInputNoOutput
User=root
[Install]
WantedBy=bluetooth.target
|
最后启动服务,添加到系统自启动服务中
1 2 | sudo systemctl start bt-agent
sudo systemctl enable bt-agent
|