4

次の構成でソースから bluez-5.15 をインストールしました。

$ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \
--localstatedir=/var --libexecdir=/lib --disable-systemd

次に、gatttool を /usr/local/bin ディレクトリに手動でコピーする必要がありました

$ sudo cp attrib/gatttool /usr/local/bin/

Raspberry Pi を再起動し、BLE デバイスに接続するために次のことを試しました。

$ sudo hciconfig hci0 up

$ sudo hcitool lescan
LE Scan ...  
EA:FB:B5:CE:B0:13 DfuTarg

$ sudo hcitool lewladd EA:FB:B5:CE:B0:13

$ sudo hcitool lecc EA:FB:B5:CE:B0:13
Could not create connection: Input/output error

そこで、gatttool に接続しようとしました。

$ gatttool -b EA:FB:B5:CE:B0:13 --interactive
[EA:FB:B5:CE:B0:13][LE]> connect
Attempting to connect to EA:FB:B5:CE:B0:13
Error: connect error: Device or resource busy (16)
[EA:FB:B5:CE:B0:13][LE]>

ここで何が欠けていますか - これは構成の問題ですか? エラーは何を意味しますか?

4

2 に答える 2

11

まず、私の構成について同僚と話しました。Raspbian (より具体的には Debian) について、同僚は次の構成設定を推奨しました。

./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-library --with-systemdsystemunitdir=/lib/systemd/system --with-systemduserunitdir=/usr/lib/systemd

その後、さらに調べたところ、正常に接続できた方法は次のとおりです。そのため、接続しようとしていたデバイス (NRF ベースの BLE デバイス) では、LE アドレス フラグを「ランダム」に設定する必要がありました。下記参照:

gatttool -t random -b EA:FB:B5:CE:B0:13 -I

次に結果:

[EA:FB:B5:CE:B0:13][LE]> connect
Attempting to connect to EA:FB:B5:CE:B0:13
Connection successful
[EA:FB:B5:CE:B0:13][LE]> characteristics
handle: 0x0002, char properties: 0x0a, char value handle: 0x0003, uuid: 00002a00
-0000-1000-8000-00805f9b34fb

ハザ!また、セキュリティ レベルを高よりも低く設定する必要がある場合もあります。

[EA:FB:B5:CE:B0:13][LE]> sec-level medium
于 2014-03-11T00:01:18.627 に答える