LinuxのBluetooth関連のコマンド

関連投稿
ラズパイでラジコン(2):PS3コントローラとBluetooth接続
Raspberry Piとdualshock3接続(再び)

コマンドラインで接続中のデバイスなどの状態確認などの備忘録

bluetoothctl

sudoでコンソールを起動して使用する。

> sudo bluetoothctl
[NEW] Controller 00:1B:DC:06:BE:29 raspi2 [default]
[NEW] Device 00:21:4F:9C:35:62 00-21-4F-9C-35-62
[bluetooth]#

listshowでコントローラの状態が確認できる

[bluetooth]# list
Controller 00:1B:DC:06:BE:29 raspi2 [default]
[bluetooth]# show
Controller 00:1B:DC:06:BE:29
        Name: raspi2
        Alias: raspi2
        Class: 0x000000
        Powered: yes
        Discoverable: no
        Pairable: yes
        UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v1D6Bp0246d052B
        Discovering: no

接続可能なデバイス一覧、コントローラによるスキャン

[bluetooth]# devices
Device 00:21:4F:9C:35:62 00-21-4F-9C-35-62
[bluetooth]# scan on

接続中のデバイスの情報

[bluetooth]# info
Device 00:21:4F:9C:35:62
        Alias: 00-21-4F-9C-35-62
        Class: 0x000508
        Icon: input-gaming
        Paired: no
        Trusted: yes
        Blocked: no
        Connected: yes
        LegacyPairing: no
        UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v054Cp0268d0100

コントローラの選択

[bluetooth]# select 00:1B:DC:06:BE:29

コントローラを探索可能にする

[bluetooth]# discoverable on
Changing discoverable on succeeded
[CHG] Controller 00:1B:DC:06:BE:29 Discoverable: yes

デバイスの切断と接続

あくまで一時的に切断されるだけで、デバイス側で再度接続要求すると再接続される。

[00-21-4F-9C-35-62]# disconnect 00:21:4F:9C:35:62
Attempting to disconnect from 00:21:4F:9C:35:62
Successful disconnected
[CHG] Device 00:21:4F:9C:35:62 Connected: no

デバイスの信用登録、接続

[bluetooth]# trust 00:21:4F:9C:35:62
Changing 00:21:4F:9C:35:62 trust succeeded
[bluetooth]# connect 00:21:4F:9C:35:62
Attempting to connect to 00:21:4F:9C:35:62

デバイス側での再接続

デバイスごとで再接続方法は異なるが、bluetoothctl起動中だと、接続したときにログが表示される。

[bluetooth]#
[CHG] Device 00:21:4F:9C:35:62 Connected: yes
[00-21-4F-9C-35-62]#

デバイスの解除

[bluetooth]# remove 00:21:4F:9C:35:62

対象デバイスと通信できているか確認

> sudo l2ping 00:11:67:F7:92:40
Ping: 00:11:67:F7:92:40 from 00:1B:DC:06:BE:29 (data size 44) ...
0 bytes from 00:11:67:F7:92:40 id 0 time 80.94ms
0 bytes from 00:11:67:F7:92:40 id 1 time 32.22ms
0 bytes from 00:11:67:F7:92:40 id 2 time 17.55ms

対象デバイスのサービス一覧を習得する。(以下はElecomのBluetoothマウス)

> sdptool browse 00:11:67:F7:92:40
Browsing 00:11:67:F7:92:40 ...
Service Name: Bluetooth v2.1 HID
Service Description: L6KH01v801b_20090630
Service Provider: http://59.120.5.33
Service RecHandle: 0x10000
Service Class ID List:
  "Human Interface Device" (0x1124)
Protocol Descriptor List:
  "L2CAP" (0x0100)
    PSM: 17
  "HIDP" (0x0011)
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  "Human Interface Device" (0x1124)
    Version: 0x0100

Failed to connect to SDP server on 00:11:67:F7:92:40: Connection refused
Service RecHandle: 0x10001
Service Class ID List:
  "PnP Information" (0x1200)
Protocol Descriptor List:
  "L2CAP" (0x0100)
    PSM: 1
  "SDP" (0x0001)
Profile Descriptor List:
  "PnP Information" (0x1200)
    Version: 0x0100

ちなみにdualshock3に対して実施したが情報が返ってこなかった。

> sdptool browse 00:21:4F:9C:35:62
Browsing 00:21:4F:9C:35:62 ...