ターゲット デバイスが i.MX25 ボードからの認証を要求していたことが判明しました。
通常、PIN コードの処理は bluetooth-agent を使用して行われます。
しかし、このエージェントは実際にはボードにインストールされていなかったので (インストールされていると思っていました...)、要求された PIN コードを手動で入力する必要がありました。
これが私がやった方法です:
- 編集 /etc/bluetooth/rfcomm.conf 、以前と同じように
- ローカル bt アダプタを「起動」:hciconfig 0 up
- ページと照会のスキャンを有効にする:hciconfig 0 piscan (これについてはよくわかりません)
- 簡易ペアリングを無効にする:hciconfig 0 sspmode 0
- 編集 (または作成) /usr/var/lib/bluetooth/00:15:83:44:39:E2 /ピンコード
- 「pincodes」ファイルに次の行を追加します (引用符なし):"00:07:80:5A:48:93 045678 "
- Bluetooth デーモンを手動で開始します:bluetoothd
00:15:83:44:39:E2 ローカル デバイスの Bluetooth アドレスです。
00:07:80:5A:48:93 ターゲット デバイスの Bluetooth アドレスです。
045678 は対象デバイスの PIN コードです。
l2ping の動作:
# l2ping 00:07:80:5A:48:93
Ping: 00:07:80:5A:48:93 from 00:15:83:44:39:E2 (data size 44) ...
4 bytes from 00:07:80:5A:48:93 id 0 time 13.14ms
4 bytes from 00:07:80:5A:48:93 id 1 time 26.34ms
rfcomm 接続の動作:
# rfcomm connect 0
Connected /dev/rfcomm0 to 00:07:80:5A:48:93 on channel 1
Press CTRL-C for hangup
2015 年 6 月 15 日更新
今日、前述のように、そのターゲット デバイスで再度 l2ping を試みました。何らかの理由で、「許可が拒否されました」というエラーが表示されます。
これは私が回避策として考え出したものです:
- 保存 /usr/var/lib/bluetooth/00:15:83:44:39:E2 /ピンコード 他の場所
- /usr/var/lib/bluetooth/00:15:83:44:39:E2 の下のすべてを削除します
- 再起動
- 保存したPINコードを入力してください /usr/var/lib/bluetooth/00:15:83:44:39:E2 の下にファイルを戻します
- 前述のように ping を再試行します