Linux 是 CLI 驅動的操作系統。因此,能夠通過終端完成各種任務,對於終端死忠粉來說是非常重要的。在本模塊中,您將學習如何從終端執行一項簡單任務:連接到藍牙設備。
什麼是 BlueZ?
在開始之前,我們需要安裝 Linux 的官方藍牙堆棧 BlueZ。
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)
輸入 usermod 命令將當前用戶添加到 lp 組。
$ 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 連接到藍牙設備。這整個過程可以通過編寫合適的腳本來自動化。您也可以通過這種方式連接無線耳機或其他藍牙設備。