Bluetooth 操作マニュアル
このページの目次
controller・pairing・接続・アプリの profile を分ける。pairing 成功と接続、接続と音声の出力先は別。BlueZ bluetoothctl を使い、MAC は例として置き換える。
| やりたいこと | 参照先 |
|---|---|
| 機器が見つからない | controller と検索 |
| pairing 後も使えない | pair・trust・connect |
| 切断・無音 | 層ごとの診断 |
controller と機器の検索可能状態を確認
service・無線 switch・controller を別に確認する
# BlueZ daemon の状態を確認する
# Bluetooth の software・hardware block を読む
Hard blocked は物理 switch・firmware を確認し、software 解除は Soft blocked に対応する。
# local controller・address を列挙する
controller と headset の address を混同しない。なければ driver・USB・firmware log を見る。
# 既定 controller の電源・機能を読む
# 既知・発見済みの遠隔 device を列挙する
online 一覧でも paired 専用でもない。状態は info で確認する。
# controller 初期化・接続 error を読む
# Bluetooth を使う必要がある時に Soft block を解除する
条件付き操作で毎回は不要。rfkill を再確認し、Hard block は別途処理する。
list は controller、devices は既知・発見済み機器で paired 限定ではない。Powered と rfkill の soft/hard block を分ける。複数 adapter は select で選ぶ。対象を pairing mode にし他ホストとの接続を確認する。
三つの状態を個別に確認
| 状態 | 意味 | 保証しないこと |
|---|---|---|
| Paired | pairing 情報の確立 | 現在の接続や音声動作 |
| Trusted | ローカルのサービス信頼方針 | 無条件の自動再接続 |
| Connected | 現在接続がある | 全 profile とアプリ経路の正常性 |
次は shell ではなく対話型 bluetoothctl 内で入力する。agent が確認・PIN を処理し、両側の数字を照合する。版によって pair が trust/connect も試みるため info の結果で確認する。
一つの session で controller を選ぶ
# shell から BlueZ 対話 session を開く
text block は bluetoothctl prompt に接頭辞なしで入力する。複数 controller なら list の address で select、単一なら省略する。選択は同じ process 内で使う。
select 11:22:33:44:55:66
電源を入れ、show の Powered: yes を確認する。失敗なら rfkill・controller log を先に見る。
power on
show
確認 agent を登録して scan する
人が応答できる session で agent を登録し、確認に答えられるよう開いておく。
agent on
default-agent
device を pairing mode にし、scan で名前・address が一致する記録を待ってから進む。
scan on
pairing を確認して trust・connect を判断する
scan の device address を使い、controller address と混同しない。pair 後に両端の番号を確認し、成否が出るまで次を貼らない。
pair AA:BB:CC:DD:EE:FF
実状態を読み、既に Trusted/Connected なら対応する後続操作は省略する。
info AA:BB:CC:DD:EE:FF
今後の service のため本機で信頼する場合だけ trust する。現在の接続確立とは別。
trust AA:BB:CC:DD:EE:FF
online で今使う場合に connect する。失敗なら error・profile を調べ、pair の反復で済ませない。
connect AA:BB:CC:DD:EE:FF
info で Connected: yes を再確認し、実入力・音声を検証する。信頼解除は同 session の untrust と実 address を使い、切断は別に判断する。
info AA:BB:CC:DD:EE:FF
scan を止めて終了する
成否にかかわらず不要なら scan を止めて shell へ戻る。quit は pairing 解除ではない。
scan off
quit
失敗した層を調べる
| 現象 | 確認と対応 |
|---|---|
| 検索結果なし | 電源・rfkill・検索時間・距離、firmware/USB ログ |
| AuthenticationFailed | 確認コード・古い pairing・他ホスト。再 pairing が必要な場合に双方で削除 |
| 接続済みだが無音 | wpctl status・profile・stream は音声手冊へ |
| 切断が繰り返す | 時刻・理由・電池・2.4 GHz 干渉を照合し、必要なら btmon で再現を記録 |
状態確認と意図した切断
# shell から対象 device の現在状態を読む
実 address を使い Paired/Trusted/Connected・service UUID を読む。複数 adapter なら同じ対話 session で選択・確認する。
# 必要な場合に paired 関係を残して切断する
修復前の必須操作ではない。Connected: no と配対保持を確認する。
制御した再現で HCI 証拠を採取する
# 一方の terminal で Bluetooth event 観測を始める
別 terminal で一度再現して時刻を記録し、ここで Ctrl-C。reason code と service log を照合し、共有前に確認する。
disconnect は pairing を保持し、remove はローカル情報を削除する。service 再起動は他機器にも影響する。btmon の共有前に識別子と通信内容を確認する。