System Info:
OS: CachyOS (Kernel 7.0.8-1-cachyos)
DE: KDE Plasma 6.6.5 (Wayland)
Dongle: TP-Link UB500 Plus (Realtek RTL8761BU / ID 2357:0604)
Headset: realme Buds Wireless 3
The Issue:
I recently bought a TP-Link UB500 Plus dongle. It gets recognized, the firmware loads cleanly, and it pairs with my realme Buds. However, I get absolutely no audio when selecting the A2DP profile. The system either forces the buds into the terrible-sounding HSP/HFP (telephony) mode, or the A2DP profile disappears entirely from pavucontrol.
When checking my logs (journalctl --user -u wireplumber), I get this specific error when trying to route audio:
wireplumber[5214]: s-device: Could not find valid non-headset profile, not routing
What I have already tried (and verified):
Disabled my laptop’s internal Intel Bluetooth via udev rules so only the TP-Link adapter is active.
Verified the Realtek firmware (rtl_bt/rtl8761bu_fw.bin) is loading successfully in dmesg without errors.
Disabled Bluetooth on my phone to ensure Multipoint isn’t stealing the A2DP bandwidth.
Checked alsamixer and wpctl status to ensure the master channel isn’t hard-muted.
Wiped /var/lib/bluetooth/* and ~/.local/state/wireplumber/ to clear out any corrupted caches, then re-paired.
Modified /etc/bluetooth/main.conf to add Experimental = true and Disable = Headset to force A2DP.
Created a WirePlumber Lua override (51-bluez-config.lua) to force bluez5.enable-sbc-xq = true and bluez5.enable-msbc = true.
Despite all of this, PipeWire/BlueZ seems to refuse the A2DP handshake with this Realtek chip. Does anyone know if there is a specific quirk, missing codec package, or WirePlumber setting in CachyOS needed to get A2DP working on the RTL8761BU chipset?
Any help is hugely appreciated! (Also i am new to linux)