有馬総一郎のブログ

(彼氏の事情)

2021年04月10日 15:59:28 JST - 3 minute read - Linux

LubuntuでBluetooth機器を扱う時は`bluetoothctl`を使う

LubuntuではGUIでBluetooth機器を制御できることが少ない。ファイル送信、スキャン、接続だけである。まあ、これだけできれば十分だろ?という声もありそうだが、実際はちょっと困る。

システムツールメニュー
システムツールメニュー
BlueDevil ウィザード
BlueDevil ウィザード
BlueDevil Send File
BlueDevil Send File

なので、私はbluetoothctlを使って、Bluetooth機器の管理を行ってるのだけど、意外と苦にならないというか、GUIなくても困らない。

知っておくべきコントロールコマンドは

  • scan on
  • devices
  • connect
  • remove

ぐらい。

ペアリングするときは

  1. scan on
  2. trust [dev]
  3. pair [dev]
  4. connect

する。scan onにすればデバイス情報が表示されるので、そのままconnetしてもペアリング、接続できてしまう。正直、trustpairしなくても、問題ない気がする、今まで困ったことない。

一応、ペアリング済のデイバイスの確認はpaired-devicesで確認できる。一度、接続済なら

  1. devices
  2. connect [dev]

でOK。

削除するときはremove [dev]でOK。何度もconnect [dev]して失敗するときは、一度、bluetoothctlを終了してやりなおすか、接続先のペアリング、もしくは接続状態をやりなおすか、それば大体、上手くいく。

コントロールコマンド 内容
scan on 接続先デバイス検索
devices 接続先デバイス一覧表示
paired-devices ペアリング済デバイス表示
connect [dev] デバイス接続
disconnect [dev] デバイス切断
remove [dev] デバイス削除
info [dev] 接続しているデバイス情報
pair [dev] ペアリング
trust [dev] デバイス信用
list 接続元デバイス一覧表示
show 接続元デバイス情報表示
power on 接続元起動
power off 接続元停止

昔は、Windowsに比べてUbuntuというかLinuxのBluetooth接続は、安定しない印象があったけど、最近は安定している気がする。1

実際の流れはこんな感じ。

$ bluetoothctl 
Agent registered
[CHG] Controller 78:90:12:AB:CD:EF Pairable: yes
[MX Ergo]# scan on
Discovery started
[CHG] Device A1:B2:C3:D4:E5:F6 Name: Pixel 3a
[CHG] Device A1:B2:C3:D4:E5:F6 Alias: Pixel 3a
[MX Ergo]# trust A1:B2:C3:D4:E5:F6
[CHG] Device A1:B2:C3:D4:E5:F6 Trusted: yes
Changing A1:B2:C3:D4:E5:F6 trust succeeded
[MX Ergo]# connect A1:B2:C3:D4:E5:F6
Attempting to connect to A1:B2:C3:D4:E5:F6
[CHG] Device A1:B2:C3:D4:E5:F6 Connected: yes
[CHG] Device A1:B2:C3:D4:E5:F6 Modalias: bluetooth:v00E0p1200d1436
[CHG] Device A1:B2:C3:D4:E5:F6 ServicesResolved: yes
Request confirmation
[agent] Confirm passkey 123456 (yes/no): [CHG] Device 6B:71:BC:32:72:E9 ManufacturerData Key: 0x004c
[agent] Confirm passkey 123456 (yes/no): [CHG] Device 6B:71:BC:32:72:E9 ManufacturerData Value:
[agent] Confirm passkey 123456 (yes/no):   12 34 56 ab c3 e4 f5                             ..[....         
[agent] Confirm passkey 123456 (yes/no): yes
[CHG] Device A1:B2:C3:D4:E5:F6 Paired: yes
Connection successful
[Pixel 3a]# paired-devices 
Device 00:13:7B:69:2B:FF Denon PMA-50
Device CC:D0:01:C1:3F:2E MX Ergo
Device 0A:11:75:33:B4:F3 JPRiDE-R1
Device 00:23:13:02:1F:28 JPRiDE TWS-520
Device A1:B2:C3:D4:E5:F6 Pixel 3a
[CHG] Device A1:B2:C3:D4:E5:F6 RSSI: -53
[CHG] Device A1:B2:C3:D4:E5:F6 RSSI: -61
[CHG] Device A1:B2:C3:D4:E5:F6 RSSI: -52
[Pixel 3a]# 

  1. BluetoothがONにならない、`Can’t init device hci0: Connection timed out (110)`とUPできない。は、ハード的な問題っぽく、その後、Windows 10 Homeをインストールしてみたが、やはりBluetoothがオンとならなかった。 ↩︎