低レベル Bluetooth ユーティリティ

低レベル Bluetooth ユーティリティ

デバイスのペアリングとペアリング解除、デバイスからのメッセージの表示、デバイスへのメッセージの送信 (できればファイルシステムを使用して)、および使用可能なフラグの設定を行うことができる Linux 用の Bluetooth ユーティリティは何ですか?

私が念頭に置いているアプリケーションは、たとえば 10 個の小さな Bluetooth キーボードを用意し、各キーボードの各キーを MIDI メッセージを送信するようにマップすることです (明らかに、MIDI 部分はこの OP の一部ではありません)。

答え1

デバイスと対話するために使用できる Bluetooth 関連のツールのリストを以下に示します。

hciconfig

hciconfig

  • PCのBluetooth HCIに関する情報を提供します
  • デバイスが起動して動作しており、必要なスキャンモードがあることを確認します。
  • ランニングでhcitool devもこの情報の一部が得られるはずだ

hciツール

hcitool inqそしてhcitool scan

  • 近くのBluetoothデバイスに関する情報を提供または識別します

hcitool info <BTAddr>

  • リモート Bluetooth デバイスに関する情報を取得する

l2ping

l2ping <BTAddr>

  • リモートBluetoothデバイスと通信できるかどうかを確認する1つの方法

sdpツール

sdptool browse <BTAddr> or sdptool records <BTAddr>

  • リモート Bluetooth デバイスによって提供されるサービスに関する情報を提供します

オベックスftp

obexftp –nopath –noconn –uuid none –bluetooth <BTAddr> –channel <OPUSHChann elNo> –put <FileToPut>

  • リモートデバイス側のピンを指定せずにファイルを送信できます
  • デバイスのOPushチャネル番号は上記のsdptoolから取得されます。

obexftp -b <BTAddr> -v -p <FileToPut>

  • 指定されたBTデバイスにファイルを配置できます
  • obexftpはBTデバイス上のファイルを取得または一覧表示するためにも使用できます。
  • -bオプションを指定するだけで近くのBTデバイスを識別することもできます

パスキーエージェント

passkey-agent –default <Pin>

  • ここで指定する PIN は、リモート BT デバイスが提供するか、またはそのデバイスでユーザーが要求時に入力するものです。

オベックスプッシュ

obexpushd

  • Bluetooth デバイスから送信されたファイルを受信できます。
  • 誰が開始したかに応じて、受信したファイルは対応するホームディレクトリに保存されます。

ペアリング

このサイトの指示に従って、コマンド ライン経由でデバイスを Linux ボックスとペアリングできます。記事のタイトルは次のとおりです。Linux のコマンドラインから Bluetooth デバイスをペアリングする方法

  1. BluetoothデバイスのMACアドレスを見つける

    $ hcitool scan
    
    Scanning ...
        11:22:33:44:55:66   device 1
        12:34:56:78:90:12   device 2
    
  2. 期待されるペアリングコードを渡すように Bluetooth エージェントを設定する

    $ bluetooth-agent 0000 &
    
  3. rfcomm 構成ファイルを編集し/etc/bluetooth/rfcomm.conf、上記の MAC アドレスを入力します。

    rfcomm0 {
      # Automatically bind the device at startup
      bind no;
      # Bluetooth address of the device
      device 11:22:33:44:55:66;
      # RFCOMM channel for the connection
      channel 3;
      # Description of the connection
      comment "This is Device 1's serial port.";
    }
    

    注記:重要な注意点として、デバイスを起動時にバインドしないように設定した場合 (bind no;)、シリアル ポートを使用する前に、このコマンドを使用して rfcomm を手動で起動する必要があります (この場合も、root 権限が必要です)。

    $ sudo rfcomm connect rfcomm0
    

参考文献

関連情報