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