atar-axis / xpadneo

Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S)
https://atar-axis.github.io/xpadneo/
GNU General Public License v3.0
1.95k stars 112 forks source link

rtl8761b (tp link ub500) compatibility report #492

Open andrew-ld opened 2 weeks ago

andrew-ld commented 2 weeks ago

Version of xpadneo

archlinux aur dkms 0.9.6-1

Controller Model

Connection mode

Context

hi, i am opening this issue just to report the current status of compatibility between the xbox controller and the rtl8761b bluetooth receiver.

currently with the mainline kernel (6.10.6) and latest linux-firmware commit (2024-08-30) it disconnect and reconnect randomly.

this problem is not of bluez, nor of xpadneo, nor of the hardware itself.

the problem is a regression with the latest firmware, you go back to a previous version it works perfectly. i put on this repo (https://github.com/andrew-ld/rtl8761b-firmware) the latest working version of the firmware.

i also uploaded a package on aur https://aur.archlinux.org/packages/rtl8761b-firmware

CosmicHeron commented 1 week ago

Can confirm the same problems with the dongle. And ASUS BT500 one as well, since they use the same chip. Looking at Realtek's Open Source repository on GitHub, the last time the driver was updated was 5 years ago so I'm not sure if they'll ever go back and fix it?

Are there even any Bluetooth 5.0 dongles that work with Linux and don't use this chip?

puleglot commented 1 week ago

I can confirm that reverting [1] fixes the issue

Looking at Realtek's Open Source repository on GitHub, the last time the driver was updated was 5 years ago so I'm not sure if they'll ever go back and fix it?

Realtek rtl8761bu implements HCI and works with a standard btusb driver. The only realtek-specific thing in the driver is an implementation of protocol for firmware uploading.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=1de22a39246513ce431de0971a6376093a94c5c1

puleglot commented 1 week ago

I've submitted firmware taken from the latest Windows driver package. Works fine for me. Not sure it will be accepted though. https://lore.kernel.org/linux-firmware/20240904132742.2861526-1-alexander@tsoy.me/T/#u

kakra commented 1 week ago

I've submitted firmware taken from the latest Windows driver package.

It probably doesn't work this way because firmware as part of driver packages is distributed under restrictive licenses. There's a similar problem with the xone driver which needs a firmware blob only available in the Xbox controller Windows driver.

Also, kernel devs cannot take it if it is not signed by official distributors.

But I pretty much like the approach of trying things out and confirming that some release fixes some bugs. This is a good confirmation of a known bug we can document.

andrew-ld commented 1 week ago

at least kernel developers could revert to the latest working version, it seems to fix even other devices https://github.com/andrew-ld/rtl8761b-firmware/issues/1

puleglot commented 1 week ago

Also, kernel devs cannot take it if it is not signed by official distributors.

I've CC'ed an author of previous commits, so I hope to get some feedback at least.