Bluetooth/BlueZ - команда «rfcomm listen» не завершается

Bluetooth/BlueZ - команда «rfcomm listen» не завершается

У меня проблема с командой rfcomm - после вызова rfcomm listen 0 1 я получаю (правильно) Waiting for connection on channel 1. Затем я подключаюсь к устройству через приложение Android Serial Bluetooth Terminal и (правильно) получаю и отправляю сообщения. Connection from FF:FF:FF:FF:FF:FF to /dev/rfcomm0Проблема возникает, когда я отключаю телефон от устройства. Даже через несколько минут команда rfcomm не завершается. Я проверил ее в другом терминале, вот результаты:

команда:

rfcomm

результат:

rfcomm0: 00:00:00:00:00:00 -> FF:FF:FF:FF:FF:FF channel 1 closed [reuse-dlc release-on-hup tty-attached]

команда:

fuser rfcomm0

результат:

/dev/rfcomm0: 675

команда:

dev# ps -aef | grep '675'

результат:

root 675 649 0 07:36 pts/1 00:00:00 rfcomm listen 0 1 root 694 628 0 07:50 pts/0 00:00:00 grep 675

Моя версия ОС — Yocto 2.5.

Заранее спасибо за вашу помощь.

решение1

У меня та же проблема на Raspberry. Думаю, это ошибка в утилите rfcomm. Случайно нашел обходной путь:

sudo rfcomm watch hci0 -L 86400

Аргументы немного не так идут в команде выше (-L 86400 должен идти первым). Это приводит к небольшой ошибке внутри rfcomm, но фокус-покус! Если я теперь закрою соединение на стороне Android, сервер rfcomm также завершит работу. Это чудо:)

Связанный контент