Bluetooth/BlueZ - 'rfcomm listening' 명령이 종료되지 않습니다.

Bluetooth/BlueZ - 'rfcomm listening' 명령이 종료되지 않습니다.

rfcomm 명령에 문제가 있습니다. 호출한 후 rfcomm listen 0 1 (올바르게) 을 얻었습니다 Waiting for connection on channel 1. 그런 다음 Android 애플리케이션 직렬 Bluetooth 터미널을 통해 장치에 연결하고 (올바르게) 메시지를 보내고 보냅니다. 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

내 OS 버전은 Yocto 2.5입니다.

도움을 주셔서 미리 감사드립니다.

답변1

라즈베리에서도 같은 문제가 발생했습니다. rfcomm 유틸리티의 버그인 것 같습니다. 우연히 해결 방법을 찾았습니다.

sudo rfcomm watch hci0 -L 86400

위 명령에서는 인수가 약간 잘못된 방향으로 진행됩니다(-L 86400이 먼저 시작되어야 함). rfcomm 내부에서는 작은 오류가 발생하지만 hocus-pocus! 이제 Android 측에서 연결을 닫으면 rfcomm 서버도 종료됩니다. 그건 기적이에요 :)

관련 정보