树莓派命令行连接蓝牙设备

[toc]

安装和早期准备

树莓派通常来说自带了蓝牙软件,但总有例外是吧

1
sudo apt install bluez*

现在,使用以下systemctl命令启用bluetooth.service

1
sudo systemctl enable bluetooth.service

以上是后台启用蓝牙服务。但它需要重新启动您的系统。如果不想重启,也可以执行以下命令:

1
sudo systemctl start bluetooth.service

注意:确保内核模块btusb已加载到系统中。内核模块相当于Windows操作系统中的驱动程序。如果未加载,则使用加载

查看内核加载

1
lsmod | grep btusb

加载btusb进内核

1
modprobe btusb

进入Bluetoothctl的交互模式

nmtui一样,bluetoothctl的交互模式在首次连接时更容易使用。与nmcli一样,非交互模式非常适合脚本编写。如果要进入交互模式,请使用

1
sudo bluetoothctl

完成所有步骤后,您可以退出使用

1
[bluetooth]# quit

在 Linux 中打开蓝牙

要打开蓝牙,请在蓝牙交互模式使用开机命令:

1
[bluetooth]# power on

在我的系统中,我得到以下输出:

1
2
Agent registered
[CHG] Controller E4:5F:01:9D:17:85 Pairable: yes

同样,要关闭它,可以使用该power off命令。

扫描可用的蓝牙设备

首先列出可用的设备

1
[bluetooth]# devices

如果在输出中找不到您的设备,请使用以下命令:

1
[bluetooth]# scan on

image-20230804102708724

如果您希望其他设备可以发现您的 Linux 计算机,请使用下面给出的命令。

1
[bluetooth]# discoverable on

连接到您的蓝牙设备

我们可以通过两种方式做到这一点:
1.配对,然后连接。
2.信任然后连接。我发现它更简单,不那么令人困惑,而且它适用于所有类型的设备。

配对并连接

1
[bluetooth]# pair 50:E6:66:A4:B3:F3

现在使用连接

1
[bluetooth]# connect 50:E6:66:A4:B3:F3

现在,您可能会收到接受连接的提示。

信任和联系

首先,您需要使用以下方法信任您的设备:

1
[bluetooth]# trust 50:E6:66:A4:B3:F3

输出:

1
2
[CHG] Device 50:E6:66:A4:B3:F3 Trusted: yes
Changing 50:E6:66:A4:B3:F3 trust succeeded

现在,bluetoothctl会将您设备的地址保存在您的计算机上。将来,您将不再需要信任该设备。即使系统重新启动,这种节省也会保留下来。现在,您可以使用以下方式连接设备:

1
[bluetooth]# connect 50:E6:66:A4:B3:F3

现在,您可能会收到接受连接的提示。它甚至可能要求您匹配密钥/密码。

1
2
3
4
Request confirmation
[agent] Confirm passkey 000000 (yes/no): yes
[CHG] Device 50:E6:66:A4:B3:F3 Paired: yes
Connection successful

在非交互模式下使用 bluetoothctl 编写脚本

我们也可以通过在前面添加bluetoothctl以非交互模式执行上述命令。例如,开机命令变为

1
bluetoothctl power on

因此,如果您想使用单个命令连接到蓝牙设备,请使用以下命令:

1
bluetoothctl power on && bluetoothctl connect 50:E6:66:A4:B3:F3

注意:如上所述,在执行上述命令之前,不要忘记信任您的设备 50:E6:66:A4:B3:F3 我们设备一生中只需要执行一次。

脚本编写是我喜欢 Linux 的原因之一,您可以将一个命令与另一个命令合并并提高您的工作效率。

从我当前使用上述命令和nmcli命令与计算机共享智能手机的互联网可以看出这一点。它的网络速度也是相当快的同时,蓝牙比Wi-Fi消耗的电能少得多。

1
bluetoothctl power on && bluetoothctl connect 54:0D:F9:F4:B8:E4 && nmcli connection up '橙皮\ Network'

image-20230804191138807

image-20230804191203645

image-20230804191217621

然后,使用ip a命令之后可以看到这个网卡

image-20230804191254468

断开/取消信任蓝牙命令

当我们使用devices命令时,我们得到了一个设备列表。如果出于隐私原因您想要从列表中删除您的设备,请在交互模式下使用以下命令:

1
[bluetooth]# remove 54:0D:F9:F4:B8:E4

如果您不再希望您的设备再被信任,请使用:

1
[bluetooth]# untrust 54:0D:F9:F4:B8:E4

要断开连接,有多种方法:

  • 切换蓝牙设备和/或计算机上的蓝牙开关。

  • 从终端使用bluetoothctl power off命令。

  • 使用标准方法bluetoothctl disconnect 54:0D:F9:F4:B8:E4即可