2014-12-03 3 views
0

Я пытаюсь подключить оксиметр с низким энергопотреблением bluetooth с моим рабочим столом Ubuntu, но у меня возникают некоторые проблемы.Подсоединение устройства bluetooth LE с помощью bluez 4.01

я могу видеть, устройство просто отлично с помощью hcitool lescan, но я не могу подключиться, когда я печатаю

sudo gatttool -b 00:1C:05:FF:ED:A9 -I [ ][00:1C:05:FF:ED:A9][LE]> connect

Эти журналы из hcidump -X:

HCI Event: Command Status (0x0f) plen 4 LE Create Connection (0x08|0x000d) status 0x00 ncmd 1 HCI Event: Command Status (0x0f) plen 4 LE Start Encryption (0x08|0x0019) status 0x00 ncmd 1 HCI Event: Encrypt Change (0x08) plen 4 status 0x06 handle 64 encrypt 0x00 Error: PIN or Key Missing HCI Event: Command Status (0x0f) plen 4 Disconnect (0x01|0x0006) status 0x00 ncmd 1 HCI Event: Disconn Complete (0x05) plen 4 status 0x00 handle 64 reason 0x16 Reason: Connection Terminated by Local Host

Это выглядит как некоторые вид сбоя аутентификации. Проблема в том, что оксигемометр не требует никаких ПИН или ключей доступа. Это просто простой агент, который отправляет данные тому, кто его связывает.

Спасибо

ответ

0

Try с помощью команды hcitool lecc:

sudo hcitool lecc 00:1C:05:FF:ED:A9 
0

Я также сталкиваются с той же проблемой с моим оксиметр. Я еще не дошел до конца, но у меня есть обходное решение для моего дела. YMMV.

В моем случае соединение работает нормально в течение первых нескольких раз, а затем перестает работать с той же ошибкой PIN-кода, которую вы указали. Мое обходное решение заключается в удалении спаривания с помощью оксимитера (который был создан изначально успешных соединений). Я делаю это через «bt-device -r XX: XX: XX: XX: XX: XX». После этого соединение будет успешным. То есть, перед тем, как подключиться, необходимо удалить предыдущие пары.

Это короткий ответ :-) Вот исследование более подробно.

Если вы запустите hcidump как root (sudo hcidump -X), он предоставит вам более подробные данные. То, что вы можете увидеть это:

> ACL data: handle 69 flags 0x02 dlen 6 
    SMP: Security Request (0x0b) 
     auth req 0x00 
< HCI Command: LE Start Encryption (0x08|0x0019) plen 28 
    0000: 45 00 ec 8e 25 1b 09 46 b3 f7 7e ae 20 be 0c 63 E...%..F..~. ..c 
    0010: fc cf ef e5 82 61 e0 eb d4 bd 54 f6    .....a....T. 
> HCI Event: Command Status (0x0f) plen 4 
    LE Start Encryption (0x08|0x0019) status 0x00 ncmd 0 
> HCI Event: Command Status (0x0f) plen 4 
    Unknown (0x00|0x0000) status 0x00 ncmd 1 
> HCI Event: Encrypt Change (0x08) plen 4 
    status 0x06 handle 69 encrypt 0x00 
    Error: PIN or Key Missing 

кажется мне вроде oximiter просит спаривание (первый ACL дампа данных), но BlueZ не инициирует один, как предполагается. Сравните это с первоначальным успешным подключением. Oximiter просит спаривание и в этот момент местные BlueZ действительно реагирует с запросом пары:

> ACL data: handle 70 flags 0x02 dlen 6 
    SMP: Security Request (0x0b) 
     auth req 0x00 
< ACL data: handle 70 flags 0x00 dlen 11 
    SMP: Pairing Request (0x01) 
     capability 0x03 oob 0x00 auth req 0x01 
     max key size 0x10 init key dist 0x00 resp key dist 0x01 
     Capability: NoInputNoOutput (OOB data not present) 
     Authentication: Bonding (No MITM Protection) 
     Initiator Key Distribution:  
     Responder Key Distribution: LTK 
> HCI Event: Number of Completed Packets (0x13) plen 5 
    handle 70 packets 1 
> ACL data: handle 70 flags 0x02 dlen 11 
    SMP: Pairing Response (0x02) 
     capability 0x03 oob 0x00 auth req 0x01 
     max key size 0x10 init key dist 0x00 resp key dist 0x01 
     Capability: NoInputNoOutput (OOB data not present) 
     Authentication: Bonding (No MITM Protection) 
     Initiator Key Distribution:  
     Responder Key Distribution: LTK 

Я до сих пор расследует, чтобы попытаться определить, является ли это ошибка в Bluez, или его ошибки пользователя с моей стороны ,

+0

Большое спасибо за подробный ответ. На самом деле это та же самая проблема, с которой я столкнулся. Он подключается один или два раза, а затем прерывается, пока я не перезагружу компьютер. Какую версию bluez вы используете? Я знаю, что bluetoothctl от bluez 5.X работает безупречно с оксиметром, но из-за проблем с совместимостью мне действительно нужно заставить это работать с bluez 4.X. – user1378063

+0

Проблема, которую я имею, воспроизводима как с bluez4, так и с bluez5. Облегчает ли удаление спаривания (без перезагрузки), а затем соединение работает для вас? Просто пытаюсь определить, является ли ваша проблема одинаковой. – kaylum

+0

Дело в том, что я никогда не мог соединить устройство в первую очередь. Не с диспетчером bluetooth, ни с какой-либо другой консольной командой. Поэтому, когда я запускаю «bt-device -r», он просто возвращает сообщение «не существует». – user1378063

0

Try:

sudo gatttool -t random -b 00:1C:05:FF:ED:A9 -I 

введите connect

Смежные вопросы