Tengo un problema con el comando rfcomm; después de invocarlo, rfcomm listen 0 1
obtuve (correctamente) Waiting for connection on channel 1
. Luego, me conecto a un dispositivo a través de la aplicación Serial Bluetooth Terminal de Android y (correctamente) recibo y envío mensajes.
Connection from FF:FF:FF:FF:FF:FF to /dev/rfcomm0
El problema surge cuando desconecto el teléfono del dispositivo. Incluso después de unos minutos, el comando rfcomm no finaliza. Lo he probado en otro terminal, con resultados:
dominio:
rfcomm
resultado:
rfcomm0: 00:00:00:00:00:00 -> FF:FF:FF:FF:FF:FF channel 1 closed [reuse-dlc release-on-hup tty-attached]
dominio:
fuser rfcomm0
resultado:
/dev/rfcomm0: 675
dominio:
dev# ps -aef | grep '675'
resultado:
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
La versión de mi sistema operativo es Yocto 2.5.
Gracias de antemano por tu ayuda.
Respuesta1
Tengo el mismo problema con Raspberry. Creo que es un error en la utilidad rfcomm. Accidentalmente, encontré una solución alternativa:
sudo rfcomm watch hci0 -L 86400
Los argumentos van un poco mal en el comando anterior (-L 86400 debe ir primero). Produce un pequeño error dentro de rfcomm, ¡pero hocus-pocus! Si ahora cierro la conexión en el lado de Android, el servidor rfcomm también finaliza. Eso es un milagro :)