Multiple gamepad drivers - how to force?

Is there a way to choose or force which driver is being used when connecting a bt gamepad?
Right now when I connect it, there seems to be fight between kernel driver and xpadneo and steam inbuilt drivers and whichever manages to grab it faster seems to win and it's rather random.

Either steam or xpadneo would be OK, but the kernel default seems to be the problematic one (when I have uninstalled xpadneo and closed steam then the "bad driver" is only one that connects and it's bad and undesired one) and I would like to disable it or just use either of the other ones. Preferably find a way to choose the one I want in some permanent way.

Also irritating is when for some reason the device gets disconnected in mid game and reconnected, but other driver is chosen. Then you kind of have to either manually disconnect/reconnect either controller or close the game and reopen in for it to understand there is now "different controller" than previously.

blacklist the "bad driver"

echo "blacklist baddriver" | sudo tee -a /etc/modprobe.d/baddriver.conf

you can use udev rules to specify which driver gets used for that specific device.

edit: do you have game-devices-udev installed?

1 Like

smart, but how do I figure out its real name, which obviously isn't "bad driver"?

yes. it's a requirement for steam-manjaro.

Now when i googled what udev is and how to modify the rules I realized it's a can of worms I didn't want to open ... will check the tutorial I found back later when I have more time in hand :smiley:

/usr/lib/udev/rules.d/ is where you'll find the udev files, if you open one you can easily modify or create a new one that detects the device id of your controller and tells it what driver to use. what device are we talking about?

output of lsusb when it's connected, also get xorg and dmesg logs right after connecting it so you can see exactly what it's doing and what driver it's using

1 Like

Xbox One Wireless Controller model 1708
Right now it took xpadneo driver it seems.

07.01.20 12:18	xpadneo 0005	45E:02FD.000F: unknown main item tag 0x0
07.01.20 12:18	input	Xbox Wireless Controller as /devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-8/1-8:1.0/bluetooth/hci0/hci0:69/0005:045E:02FD.000F/input/input34
07.01.20 12:18	xpadneo 0005	45E:02FD.000F: input,hidraw4: BLUETOOTH HID v9.03 Gamepad [Xbox Wireless Controller] on 00:15:83:f6:a9:34
07.01.20 12:18	xpadneo udev	0005:045E:02FD.000F
07.01.20 12:18	xpadneo udev	ok

lsusb doesn't seem to list the device, because it's wirelesslt connected via BT? but relevant BT dongle is:

Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Anecdotal story is, that when I put in fresh batteries, it does seem to stick to xpadneo driver relatively consistently. When the batteries are like weak, the driver jumping starts. :confused:

Modifications and additions rather go to /etc/udev/rules.d as the files in /usr/lib/udev might get overwritten with future updates.
You can just copy the files you want to modify.

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by