通过 CLI 连接到蓝牙设备

Linux 是一个 CLI 驱动的操作系统。 因此,对于铁杆终端粉丝来说,能够通过终端完成各种任务是非常重要的。 在本模块中,我们将学习如何通过终端完成一项此类微不足道的任务,即连接到蓝牙设备。

什么是BlueZ?

在开始之前,我们需要安装 BlueZ,Linux 官方蓝牙协议栈!

BlueZ 为核心蓝牙层和协议提供支持。 它灵活、高效并使用模块化实现。 它有许多有趣的功能:

  • 完整的模块化实施
  • 对称多处理保险箱
  • 多线程数据处理
  • 支持多种蓝牙设备
  • 真正的硬件抽象
  • 所有层的标准套接字接口
  • 设备和服务级别安全支持

因此,如果我们计划使用蓝牙,这是一个必要的要求!

安装 Bluez

在 Debian/Ubuntu 上,您可以使用 apt 命令:

$ sudo apt -y install bluetooth bluez bluez-tools rfkill 

在基于 Arch 的发行版上,您可以使用 pacman 命令:

$ sudo pacman -S bluez bluez-utils util-linux 

在 Fedora/CentOS 可以使用 dnf 命令:

$ sudo dnf -y install bluez bluez-tools 

将用户添加到所需组

在我们继续之前,我们需要确保我们的用户是 lp 团体。 您可以检查当前用户所属的组:

$ id uid=1000(user) gid=1000(user) groups=1000(user),998(wheel) 

要将当前用户添加到 lp 组,请键入 usermod 命令:

$ sudo usermod -aG lp $USER $ newgrp lp 

现在检查,我们应该看到我们已经被添加到 lp 团体!

$ id uid=1000(user) gid=991(lp) groups=991(lp),998(wheel),1000(user) 

有了这个,我们现在终于可以继续连接到蓝牙了。

开启蓝牙服务

要在启动时启用蓝牙服务,请使用以下命令启用它:

$ sudo systemctl enable --now bluetooth.service 

要检查服务是否成功激活,请输入:

$ sudo systemctl status bluetooth.service ● bluetooth.service - Bluetooth service      Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)      Active: active (running) since Fri 2021-04-30 09:11:50 IST; 2h 0min ago        Docs: man:bluetoothd(8)    Main PID: 443 (bluetoothd)      Status: "Running"       Tasks: 1 (limit: 4587)      Memory: 2.9M      CGroup: /system.slice/bluetooth.service              └─443 /usr/lib/bluetooth/bluetoothd 

这样我们的蓝牙服务就启动并运行了! 接下来,确保它现在被阻止:

$ rfkill ID TYPE      DEVICE      SOFT      HARD  0 wlan      phy0   unblocked unblocked  2 bluetooth hci0   blocked   unblocked 

如果它被阻止,请使用以下方法解除阻止:

$ rfkill unblock bluetooth 

最后确认它已被解锁:

$ rfkill ID TYPE      DEVICE      SOFT      HARD  0 wlan      phy0   unblocked unblocked  2 bluetooth hci0   unblocked unblocked 

现在我们准备进入下一步。

连接到蓝牙设备

要连接到设备,我们将使用一个名为的实用程序 bluetoothctl 这将使我们能够做各种事情,例如发现和配对设备! 开始 bluetoothctl 只需键入:

$ bluetoothctl 

这应该让我们进入一个交互式提示,允许我们执行各种任务。

蓝牙控制

打开控制器电源

要打开蓝牙控制器,请在交互式提示中键入以下内容:

[bluetooth]# power on 

扫描附近的设备

在连接之前,我们需要使用以下命令扫描附近的设备:

[bluetooth]# scan on 

这应该会为我们提供附近所有蓝牙设备及其 Mac ID 的列表

扫描设备

现在,我们将连接到蓝牙耳机!

配对我们的设备

要配对目标设备,请输入:

[bluetooth]# pair [ID] 
与我们的设备配对与我们的设备配对

配对成功后,我们就可以进行下一步了。

信任我们的设备 [Optional]

您还可以通过以下方式信任设备:

[bluetooth]# trust [ID] 
信任设备信任设备

连接我们的设备

最后将您的设备连接到:

[bluetooth]# connect [ID] 

请注意,这有时可能会失败,您可以继续重试,直到成功连接到您的设备。

连接到我们的设备连接到我们的设备

因此,我们已成功通过终端连接到我们的设备!

结论

因此,我们通过 CLI 连接到我们的蓝牙设备。 这整个过程可以通过编写合适的脚本来自动化。 此方法也可用于连接无线耳机和其他蓝牙设备!