web-dev-qa-db-ja.com

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

デバイスのペアリングとペアリング解除、デバイスからのメッセージの表示、デバイスへのメッセージの送信(ファイルシステムを使用してうまくいけば!)、利用可能なフラグの設定を可能にするLinuxのBluetoothユーティリティとは何ですか?

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

16
themirror

デバイスとの対話に使用できるBluetoothを処理するいくつかのツールのリストを次に示します。

hciconfig

hciconfig

  • PCのBluetooth HCIに関する情報を提供します
  • デバイスが稼働中であり、必要なスキャンモードがあることを確認します
  • ランニング hcitool devもこの情報の一部を提供する必要があります

hcitool

hcitool inqおよびhcitool scan

  • 近くのBluetoothデバイスに関する情報を提供するか、むしろ識別します

hcitool info <BTAddr>

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

l2ping

l2ping <BTAddr>

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

sdptool

sdptool browse <BTAddr> or sdptool records <BTAddr>

  • リモートBluetoothデバイスが提供するサービスに関する情報を提供します

obexftp

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>

  • ここで指定するピンは、リモートBTデバイスが提供する必要があるもの、または要求されたときにそのユーザーがそのデバイスに入力するものです。

obexpushd

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.";
    }
    

    注:重要な警告、起動時にバインドしないようにデバイスを構成する場合(バインドなし;)、次を使用してrfcommを手動でスピンアップする必要がありますシリアルポートを使用する前にこのコマンドを実行します(これにはルート権限も必要です)。

    $ Sudo rfcomm connect rfcomm0
    

参考文献

21
slm