Today I spent a while to fix a problem with my DualSense controller that really annoyed me for a while now, but I never found the time to fix. (disclaimer: summary was created by AI)

After restarting my openSUSE system, my DualSense controller would connect via Bluetooth but wasn’t recognized as a gamepad. It only worked after unplugging and replugging the Bluetooth dongle (ASUS USB-BT500).

Cause: The Bluetooth dongle wasn’t initializing correctly after a reboot. While the controller could establish a Bluetooth connection, it wasn’t registering as an input device (/dev/input/by-id/). Only after manually resetting the dongle (by unplugging and replugging it) would the connection stabilize.

Solution: I created a udev rule to automatically reset the dongle after every reboot, ensuring proper initialization. This fixed the issue, and the controller is now reliably detected.

The udev rule:

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="190e", RUN+="/usr/bin/hciconfig hci1 reset"

(Replace 0b05:190e with your dongle’s ID from lsusb.)

After creating the rule with sudo nano /etc/udev/rules.d/99-bt-dongle-reset.rules and reloading udev (sudo udevadm control --reload-rules && sudo udevadm trigger), the controller now works immediately after boot.

Maybe this is helpful for somebody facing a similar issue. Or you can tell me, why this solution is a bad idea and why I should not listen to AI.

  • xilophor@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 hours ago

    Not sure on if there’s a way to update it purely on linux, but you can pretty easily get a windows VM going and passthru USB to the VM. I’ve done this with a razer mouse since the (unofficial) software for razer on linux was lacking in my use case