gatttoolを使用せずにLinuxでBLEデバイスをペアリングする方法は?

gatttoolを使用せずにLinuxでBLEデバイスをペアリングする方法は?

一部のBLE(Bluetooth Low Energy)デバイスは、Linuxでペアリングするのが困難です。私が見つけることができるすべての情報(含む)これ質問)提案はgatttool次のように使用する必要があります。

sudo gatttool -t random -b E7:2D:83:06:AA:AB -I
[E7:2D:83:06:AA:AB][LE]> connect

残念ながら、廃止され、gatttool複数のLinuxディストリビューションには配布されなくなりました。

これアーチLinuxドキュメントbtgatt-client交換する必要があると言いますgatttool。以下を試しましたが、成功しませんでした。

$ btgatt-client -d F9:B9:1D:A5:73:F4 -t random -v
btgatt-client: Opening L2CAP LE connection on ATT channel:
     src: 00:00:00:00:00:00
    dest: F9:B9:1D:A5:73:F4
Connecting to device... Done
[GATT client]# att: (chan 0x5623a9b9d6e0) ATT op 0x08
[GATT client]# att: < 08 01 00 ff ff 3a 2b                             .....:+         
[GATT client]# att: Channel 0x5623a9b9d6e0 disconnected: Software caused connection abort
[GATT client]# gatt: Primary service discovery failed. ATT ECODE: 0x00
[GATT client]# gatt: Failed to initialize gatt-client
[GATT client]# GATT discovery procedures failed - error code: 0x00
[GATT client]# Device disconnected: Software caused connection abort

残念ながら、文書が不足して進行方法がわからない。

ベストアンサー1

元の質問で述べたように、bluetoothctlペアリングに使用する必要があります。また、btmgmt事前にそれを使用してデバイスを正しく設定することもできます。 Linuxでデバイスをペアリングするときに一般的に従う手順は次のとおりです。

  1. 検索、接続、ペアリングできるようにデバイスを設定します。
    sudo btmgmt power off
    sudo btmgmt discov on
    sudo btmgmt connectable on
    sudo btmgmt pairable on
    sudo btmgmt power on
    
  2. デジタルペアリングを許可するようにデバイスを設定します。
    bluetoothctl --agent KeyboardDisplay
    
  3. その後、デバイスが周辺機器の場合は、リモートデバイスがペアリング要求を送信するのを待つ必要があります。

デバイスが中央デバイスの場合は、次のコマンドを使用してペアリングを開始できます。

pair 00:11:22:33:44:55

00:11:22:33:44:55ペアリングしたいデバイスのアドレスはどこにあります(scan on/コマンドを使用してscan off見つけることができます)。

あなたの質問に答えるのに役立つ追加情報を含むリンクは次のとおりです。

おすすめ記事