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.87k stars 110 forks source link

gentoo + 045e:02ea Microsoft Corp. Xbox One Controller (wired usb) #480

Open darkicekeel opened 3 days ago

darkicekeel commented 3 days ago

as you can imagine, i'm struggling to get this to work. installed xpadneo and modprobe hid-xpadneo, no success in having this working through usb cable. what am i missing here?

kakra commented 3 days ago

xpadneo cannot work with USB unless your USB device would be a HID device. But Xbox controllers in USB mode use GIP instead of HID. The in-kernel xpad driver does support the GIP mode.

I'm planning on implementing GIP later by converting GIP und HID with a user-space daemon. That way, we can also work with the Xbox dongle. But currently there's no concrete plans on when to do that.

darkicekeel commented 3 days ago

so, only bluetooth? i'm waiting for a "supposed compatible" dongle. i'll see if xpadneo will work with that, as soon as it arrives

kakra commented 3 days ago

so, only bluetooth?

Yes, in full context, it means exactly that. But xpadneo doesn't depend on Bluetooth, it is a HID driver. Actually, it doesn't even see the Bluetooth connection.

i'm waiting for a "supposed compatible" dongle. i'll see if xpadneo will work with that, as soon as it arrives

It should work. Until then, the stock-kernel xpad driver will support USB mode of this controller. It should just work via USB, no matter if xpadneo is installed. Both drivers do not conflict if used/enabled/installed at the same time because xpad does NOT handle HID.

darkicekeel commented 2 days ago

what if i've got xpadneo xboxdrv AND xpad in the kernel.... will they conflict somehow or is it possible to keep all together?

kakra commented 2 days ago

You can use both at the same time.

There's one pitfall: If you disconnect Bluetooth, modern bluez versions will keep the device node around for fast reconnects. If you switch to USB then, your system sees two controllers: one seemingly dead, one over USB. Most Proton games are pretty silly and just look for inputs on the first connected controller, rendering the "second" useless. You can fix this by restarting the bluez service. But this is cumbersome while in a game.

There's a "secret hidden" configuration setting for bluez which will make it remove disconnected devices, but I don't remember what it is called. It's not documented, you only find it by looking in the git commit history of bluez. I think they just forgot to document that.