Bluetooth rfcomm not working


#1

Hello,
i’m using a BT/WiFi IoT expansion card (from Talos), WiFi is working fine and I can initialize BT module without problems. I just got an issue when I want to create a serial connection with a paired device.
After pairing the device with bluetoothctl I run:
rfcomm bind 0 00:11:22:33:44:55
I can see the new serial device in /dev/
crw-rw---- 1 root tty 216, 0 May 17 14:03 rfcomm0
but when I cat the rfcomm I receive no messages from the remote device and the command just stuck and I cannot kill it or recover to the shell.

It’s a very strange behaviour, I tested the same device with another board (i.mx6) with the same BT/WiFI WL18xx combo chip and everything is working fine.
I played around changing mdev, modifying bluetoothd with no luck, I’ve replaced the whole OS too (with yocto 2.4 hf), same problem, I can create the rfcomm but I get stuck after few secs on opening the rfcomm dev.

Is there some limitation/sec. feature in the kernel that lock down serial connections or I just forgot to enable something in the modem?

Thanks!!


#2

Just an update, I think the problem is in ioctl RFCOMMCREATEDEV… or somewhere in the handling of the lock of the created device.
I didn’t investigate further but I just modified my software to use a simple socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) to connect(s, (struct sockaddr *)&addr, sizeof(addr)) to the remote bluetooth device instead of opening the /dev/rfcomm0 file and its working fine.