通过 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 连接到我们的蓝牙设备。 这整个过程可以通过编写合适的脚本来自动化。 此方法也可用于连接无线耳机和其他蓝牙设备!