[Bug 218494] New: btrtl/rtl8761bu: RFCOMM is not working

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.kernel.org/show_bug.cgi?id=218494

            Bug ID: 218494
           Summary: btrtl/rtl8761bu: RFCOMM is not working
           Product: Drivers
           Version: 2.5
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: Bluetooth
          Assignee: linux-bluetooth@xxxxxxxxxxxxxxx
          Reporter: manio@xxxxxxxxxx
        Regression: No

Hi,
I am trying to use an RFCOMM-capable dongle under Arch Linux (kernel:
6.6.10-arch1-1).
The BT usb adapter is:
ID 0bda:8771 Realtek Semiconductor Corp. Bluetooth Radio

dmesg:
[   19.174428] Bluetooth: Core ver 2.22
[   19.174448] NET: Registered PF_BLUETOOTH protocol family
[   19.174448] Bluetooth: HCI device and connection manager initialized
[   19.174452] Bluetooth: HCI socket layer initialized
[   19.174454] Bluetooth: L2CAP socket layer initialized
[   19.174460] Bluetooth: SCO socket layer initialized
[   20.497753] Bluetooth: hci0: RTL: examining hci_ver=0a hci_rev=000b
lmp_ver=0a lmp_subver=8761
[   20.500891] Bluetooth: hci0: RTL: rom_version status=0 version=1
[   20.500894] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_fw.bin
[   20.502433] Bluetooth: hci0: RTL: loading rtl_bt/rtl8761bu_config.bin
[   20.503140] Bluetooth: hci0: RTL: cfg_sz 6, total sz 30210
[   20.898620] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   20.898620] Bluetooth: BNEP filters: protocol multicast
[   20.898620] Bluetooth: BNEP socket layer initialized
[   21.285074] Bluetooth: hci0: RTL: fw version 0xdfc6d922
[   21.430191] Bluetooth: MGMT ver 1.22
[   40.360736] Bluetooth: RFCOMM TTY layer initialized
[   40.360743] Bluetooth: RFCOMM socket layer initialized
[   40.360746] Bluetooth: RFCOMM ver 1.11

The rfcomm utility was not provided so I had to install:
https://archlinux.org/packages/extra/x86_64/bluez-deprecated-tools/

unfortunately the command:
rfcomm connect 0 B8:8B:15:0A:1C:AD
gives:
Can't connect RFCOMM socket: Operation now in progress

I tried also with `bind` argument - all of this gives errors.
Finally I tried python tools to directly use RFCOMM, then even a rust rfcat
tool from:
https://github.com/bluez/bluer/blob/master/bluer-tools/src/rfcat.rs
All gives various errors/timeouts and cannot connect to the dongle's
serial port. I was also trying to pair/connect with bluetoothctl prior
this - no change.
In fact (see below - pairing seems not needed at all).

Finally I started very very old Asus laptop with debian.
I invoked:
rfcomm connect 0 B8:8B:15:0A:1C:AD
and this immediately gives me:
Connected /dev/rfcomm0 to B8:8B:15:0A:1C:AD on channel 1
Press CTRL-C for hangup

... and it works like a charm!!! I can connect minicom and communication is
working (no pairing/connecting with bluetoothctl needed).

dmesg there:
[  298.641307] Bluetooth: Core ver 2.22
[  298.641393] Bluetooth: HCI device and connection manager initialized
[  298.641405] Bluetooth: HCI socket layer initialized
[  298.641409] Bluetooth: L2CAP socket layer initialized
[  298.641419] Bluetooth: SCO socket layer initialized
[  299.673331] Bluetooth: hci0: unexpected event for opcode 0x0000
[  311.510413] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[  311.510422] Bluetooth: BNEP filters: protocol multicast
[  311.510435] Bluetooth: BNEP socket layer initialized
[ 1902.017008] Bluetooth: RFCOMM TTY layer initialized
[ 1902.017026] Bluetooth: RFCOMM socket layer initialized
[ 1902.017048] Bluetooth: RFCOMM ver 1.11

the adapter is:
ID 0b05:1712 ASUSTek Computer, Inc. BT-183 Bluetooth 2.0+EDR adapter

I am now trying to identify the problem/difference. I've logged all data using
btmon from the start to invoking the rfcom connect.

I can see that the difference start when my Asus laptop is showing this:
< ACL Data TX: Handle 42 flags 0x02 dlen 10                                    
                                   #13 [hci0] 40.891571
      L2CAP: Information Request (0x0a) ident 1 len 2
        Type: Extended features supported (0x0002)
> HCI Event: Number of Completed Packets (0x13) plen 5                         
>                                    #14 [hci0] 40.898476
        Num handles: 1
        Handle: 42 Address: B8:8B:15:0A:1C:AD (OUI B8-8B-15)
        Count: 1
> ACL Data RX: Handle 42 flags 0x02 dlen 16                                    
>                                    #15 [hci0] 40.899488
      L2CAP: Information Response (0x0b) ident 1 len 8
        Type: Extended features supported (0x0002)
        Result: Success (0x0000)
        Features: 0x00000000
< ACL Data TX: Handle 42 flags 0x02 dlen 12                                    
                                   #16 [hci0] 40.899554
      L2CAP: Connection Request (0x02) ident 2 len 4
        PSM: 3 (0x0003)
        Source CID: 64

I don't see any L2CAP and RFCOMM lines on the "bad" ArchLinux setup.

ps. I tested the dongle also from Windows and Android - also works OK.

update:
I've exposed the laptop's bluetooth adapter to my ArchLinux using USB/IP
method.
This way on the same platform where the Realtek USB adapter is not
working I was able to also use laptop's BT adapter.

Here are the results:
❯ rfcomm -i hci0 connect 0 B8:8B:15:0A:1C:AD
Can't connect RFCOMM socket: Operation now in progress
# --> problem on realtek

❯ rfcomm -i hci1 connect 0 B8:8B:15:0A:1C:AD
Connected /dev/rfcomm0 to B8:8B:15:0A:1C:AD on channel 1
Press CTRL-C for hangup
^CDisconnected
# --> works great on Asus BT

Conclusion: the ArchLinux platform is OK (i mean the distribution,
bluetooth stack, kernel modules and utilities).

The problem seems to be the Realtek drivers/firmware for my rtl8761bu...

I am attaching full logs (called good and bad). dvbsnoop logs also
included.

update2: I also tested the initial firmware added (from 2021-06-09):
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/log/rtl_bt/rtl8761bu_fw.bin
also doesn't work

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are the assignee for the bug.




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux