ピンを必要とせずにLinuxでデバイスをペアリングする方法はありますか(テスト目的のため、ルートアクセスがある場合は人間のやり取りなしで行う必要があります)?
bluez-simple-agentは、マウスなどのいくつかの単純なデバイスを除き、ピンを必要とするようです。
/etc/bluetooth/hcid.confでセキュリティをnoneに設定してみてください
http://linux.die.net/man/5/hcid.conf
これはおそらくHCIデバイス(マウス、キーボード、スペースボールなど)でのみ機能します。別の種類のデバイスを使用している場合は、おそらく異なるが似た設定を変更する必要があります。
PINは実際には古くからあるペアリング方法で、現在は Legacy Pairing と呼ばれています。セキュアシンプルペアリングモードは、最新のBluetooth v2.1以降で利用可能ですBluetoothデバイス:SSPMode認証はBluetoothプロトコルスタックによって処理されるため、ユーザーの操作なしで機能します。
デバイスへの接続方法は次のとおりです。
# hciconfig hci0 sspmode 1
# hciconfig hci0 sspmode
hci0: Type: BR/EDR Bus: USB
BD Address: AA:BB:CC:DD:EE:FF ACL MTU: 1021:8 SCO MTU: 64:1
Simple Pairing mode: Enabled
# hciconfig hci0 piscan
# sdptool add SP
# hcitool scan
00:11:22:33:44:55 My_Device
# rfcomm connect /dev/rfcomm0 00:11:22:33:44:55 1 &
Connected /dev/rfcomm0 to 00:11:22:33:44:55 on channel 1
Press CTRL-C for hangup
これにより、デバイスへのシリアル接続が確立されます。
手順(CentOs)に従います。
これは私にとって魅力のように機能しました。もちろん、スーパーユーザー権限が必要です:-)
# hcitool cc <target-bdaddr>; hcitool auth <target-bdaddr>
<target-bdaddr>
を取得するには、以下のコマンドを発行します。$ hcitool scan
注:#
および$
はコマンドラインプロンプトなので除外します。
Ubuntu 14.04およびAndroid try:
hcitool scan #get hardware address
Sudo bluetooth-agent PIN HARDWARE-ADDRESS
PINダイアログがAndroidデバイスにポップアップします。同じPINを入力してください。
注意: Sudo apt-get install bluez-utils
が必要になる場合があります。
注2:PINダイアログが表示されない場合は、最初にAndroidからペアリングを試みてください(PINが間違っているため失敗します)。その後、上記のように再試行します。
~ $ hciconfig noauth
これでうまくいくはずです(bluez 5.23を使用していますが、これ以上シンプルでエレガントなblue-utilsはありません)。ただし、電源を切ってから電源を入れた後、認証が再度必要になるため、変更をhciconfigに永続的にする方法を探しています。これまでのところ、hciconfigの変更は、リブートしても同じままです。電源が切れたときにのみ元に戻ります。誰かがhciconfigを永続的にする方法を見つけたなら、私に知らせてください!