LinuxにおけるBluetoothデバイスの接続方法についてのまとめます。
LinuxでBluetoothデバイスと接続する際には、bluez
というプロトコルスタックを用います。
今回はbluetoothctl
を使って設定します。bluetoothctl
は対話型の設定ツールです。
私の環境
PC: HPのノートPC(ENVY)
OS: Arch Linux
手順
-
bluez
をインストールする - Bluetoothのデーモンを起動する
-
bluetoothctl
でBluetoothデバイスを接続する - OS起動時に自動的に接続するように設定する
bluezをインストールする
pacman
でbluez
とbluez-utils
をインストールします。
bluez-utils
はbluetoothctl
を含んでいるため、インストールする必要があります。
Arch以外のディストリビューションを使っている場合は、それぞれ対応するパッケージをインストールしてください。
$ sudo pacman -S bluez bluez-utils
Bluetoothのデーモンを起動する
Bluetoothのデーモンを起動します。
これが起動していなければbluetoothctl
を起動しても入力を受け付ません。
$ sudo systemctl start bluetooth.service
OS起動時にbluetooth.service
が起動するようにします。
$ sudo systemctl enable bluetooth.service
bluetoothctlでBluetoothデバイスを接続する
bluetoothctl
を起動します。
$ bluetoothctl
ここからはbluetoothctl
との対話です(プロンプトが変わっていることに注意)。
コントローラを起動します。
# power on
ペアリングしたいデバイスのMACアドレスを調べます。
# devices
デバイスが見つからない場合はスキャンをします。
# scan on
ペアリングをします。
# pair MACアドレス
デバイスによっては信用登録する必要があります。
# trust MACアドレス
接続します。
# connect MACアドレス
これで接続できるはずです。
bluetoothctl
から抜けるには次のコマンドを実行します。
# exit
OS起動時に自動的に接続するように設定する
udev(デバイスマネージャー)の設定ファイルに次の記述を追記します。設定ファイルがない場合は新たに作ります。
# Set bluetooth power up
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig hci0 up"
udevの設定ファイルの書き方について詳しく知りたい場合はこちらが参考になります。
http://www.reactivated.net/writing_udev_rules.html
おしまい
これで再起動後は自動的に接続できるはずです。
参考