bluetoothctl は、Linux の Bluetooth管理コマンドです。
Kali Linuxなどで広く使われている BlueZ の対話型管理ツールで、Bluetoothアダプタや接続機器を操作できます。
* BlueZ:LinuxおよびAndroidで公式に採用されているオープンソースのBluetoothプロトコルスタック(通信手順の集合体)です
基本的な機能
- Bluetoothアダプタの確認
- BluetoothのON/OFF
- デバイスのスキャン
- 周囲のBluetooth機器の確認
- ペアリング
- 接続・切断
- 信頼済みデバイスの登録
- Discoverable / Pairable の設定
- Bluetoothアダプタの情報確認
起動
以下のコマンドで起動します
bluetoothctl
プロンプトが “[bluetoothctl]>” となり、対話モードになります

ここに下記の様々なコマンドを入力します。
終了コマンドは ‘quit’ 又は ‘exit’ です。
主な表示コマンド
list
利用可能なコントローラをすべて表示します
下図の例ではコントローラーが1つしか無いので、それのみ表示され、そしてそれが選択(default表示)されています。

show
選択されているコントローラの情報を表示します

主な項目の意味
| 項目 | 意味 |
|---|---|
| Controller | Bluetoothアダプタ |
| public | Public Address |
| Name | Bluetooth名 |
| Alias | 表示名 |
| Powered | Bluetooth機能が有効か |
| Discoverable | 他機器から発見可能か |
| Pairable | ペアリングを受け付けるか |
info
ペアリング・接続した相手デバイスの情報を表示します
| 項目 | 意味 |
|---|---|
| Name | 機器名 |
| Paired | ペアリング済み |
| Trusted | 信頼済み |
| Connected | 現在接続中 |
| UUID | 提供するBluetoothサービス |
paired-devices
ペアリングされているデバイス一覧を表示します
設定コマンド
設定に入る前に、bluetoothデバイスの3種類の状態について
デバイスの状態ついて
bluetooth機器の稼働状態は、3つの段階
- power
- discoverable
- pairable
があります
⚫️ power ➡️ off (電源off)
⬇️
on(電源on)
⬇️
⚫️ discoverable ➡️ off (見つからない)
⬇️
on (見つかる)
⬇️
⚫️ pairable ➡️ off (接続拒否)
⬇️
on (接続可能)
なお、Discoverableは一定時間(デフォルトでは180秒)で自動的にOFFになる設定になっています。
下記showコマンドの11行目にDiscoverableTimeout:…(180)の記載が見えます。

bluetoothのペアリングにモタついていると接続が出来なくなる現象はこの設定のせいのようです。
つまり不用意に未知の相手から接続されてしまうというリスクに対応するセキュリティ仕様として時間制限があるようです。
select
デフォルトのコントローラを変更する(コントローラが複数ある場合)
power
Bluetooth レシーバーの電源のオン・オフを切り替える
- power on
- power off
discoverable
Bluetooth レシーバーを、他のデバイスから検索可能な状態にするかどうかを変更する
- discoverable on
- discoverable off
discoverable-timeout
discoverable on を実行したあとに、自動的に discoverable off にするまでの時間を設定する。(デフォルトは180秒)
discoverable-timeout 秒数
pairable
Bluetooth レシーバーのペアリング可否の状態を変更する
- pairable on
- pairable off
pair
デバイスとペアリングする
connect/disconnect
デバイスと接続。切断する
trust/untrast
デバイスを信頼する・信頼しない
block/unblock
デバイスをブロックする・ブロック解除する
検索コマンド
scan
周囲のbluetooth機器(ペアリング・接続可能なデバイス一覧)を検出します(同一機器が重複して検出されます)
- scan on ➡️ 検索開始
- scan off ➡️ 検索終了
devices
ペアリング・接続可能なデバイス一覧を表示する(上記scanの結果を整理して表示します)
一般的には、scan on ➡️ scan off ➡️ devices の順で実行します
まとめ
bluetoothデバイスの情報表示と操作をするコマンド、 ‘bluetoothctl’ についての投稿でした。
bluetooth機器は、’discoverable’ という状態を持つので操作が少し複雑になっています。
よく使うコマンド一覧
| コマンド | 機能 |
|---|---|
list | Bluetoothアダプタ一覧 |
show | 現在のアダプタ情報 |
select <MAC> | 使用するアダプタを選択 |
power on | Bluetooth ON |
power off | Bluetooth OFF |
scan on | 周囲の機器を検索開始 |
scan off | 検索停止 |
devices | 発見済み機器一覧 |
info <MAC> | 特定機器の詳細 |
pair <MAC> | ペアリング |
connect <MAC> | 接続 |
disconnect <MAC> | 切断 |
trust <MAC> | 信頼済みにする |
untrust <MAC> | 信頼解除 |
remove <MAC> | 登録済み機器を削除 |
discoverable on | 自機を発見可能にする |
discoverable off | 発見可能状態を解除 |
| discoverable-timeout <秒数> | 発見可能時間の変更 (秒数を0とした場合は無制限on) |
pairable on | ペアリング可能にする |
pairable off | ペアリング不可にする |
system-alias <名前> | Bluetooth名を変更 (他の機器から見える名前を変更) |
quit, exit | 終了 |
1行コマンド
対話モードに入らずに1行コマンド実行もできます
下記のように ‘bluetoothctl’ に続けてコマンドを入力します
bluetoothctl [–options] commands

コメント