Ich habe ein Problem mit dem Befehl rfcomm – nach dem Aufruf rfcomm listen 0 1
habe ich (korrekt) erhalten Waiting for connection on channel 1
. Dann verbinde ich mich über die Android-Anwendung Serial Bluetooth Terminal mit einem Gerät und empfange und sende (korrekt) Nachrichten.
Connection from FF:FF:FF:FF:FF:FF to /dev/rfcomm0
Das Problem tritt auf, wenn ich das Telefon vom Gerät trenne. Auch nach einigen Minuten wird der Befehl rfcomm nicht beendet. Ich habe ihn in einem anderen Terminal getestet und hatte folgende Ergebnisse:
Befehl:
rfcomm
Ergebnis:
rfcomm0: 00:00:00:00:00:00 -> FF:FF:FF:FF:FF:FF channel 1 closed [reuse-dlc release-on-hup tty-attached]
Befehl:
fuser rfcomm0
Ergebnis:
/dev/rfcomm0: 675
Befehl:
dev# ps -aef | grep '675'
Ergebnis:
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
Meine Betriebssystemversion ist Yocto 2.5
Vielen Dank im Voraus für Ihre Hilfe.
Antwort1
Ich habe das gleiche Problem auf Raspberry. Ich denke, es ist ein Fehler im Dienstprogramm rfcomm. Zufällig habe ich einen Workaround gefunden:
sudo rfcomm watch hci0 -L 86400
Die Argumente gehen im obigen Befehl etwas in die falsche Richtung (-L 86400 muss zuerst kommen). Es erzeugt einen kleinen Fehler innerhalb von rfcomm, aber Hokuspokus! Wenn ich jetzt die Verbindung auf der Android-Seite schließe, wird auch der rfcomm-Server beendet. Das ist ein Wunder :)