You are not logged in.
Hello!
On my PC, I can connect my DualSense 5 and my Pro Controller over Bluetooth or USB C. For USB C, the same is true for my Laptop. However, my Laptop cannot do so for Bluetooth. Both systems are running a fully up-to-date Arch Linux system, updated as of this morning.
Whilst the controllers can Bluetooth correctly to the system, as shown by bluetuith, the LEDs keep rotating on the controller. This shows that joycond hasn't taken effect. The trackpad also doesn't take effect in the case of the DualSense.
I have already extensively troubleshot this with Ask Brave and I wasn't able to get anything sorted and done. I tried everything from checking lsmod, to the udev rules, to checking bluetooth input, and even after all of that: no joystick devices.
All of the following commands are run from a fresh boot, after connecting one Pro Controller and one DualSense 5 controller.
Below are several troubleshooting steps that I tried:
lsmod | grep hid_nintendo
~ # lsmod | grep hid_nintendo
hid_nintendo 57344 0
ff_memless 24576 2 hid_nintendo,hid_playstation
~ #lsmod | grep hid_playstation
~ # lsmod | grep hid_playstation
hid_playstation 45056 0
ff_memless 24576 2 hid_nintendo,hid_playstation
led_class_multicolor 16384 1 hid_playstation
~ #sudo systemctl status joycond
~ # sudo systemctl status joycond
[sudo] password for jazztache:
● joycond.service - joycond
Loaded: loaded (/usr/lib/systemd/system/joycond.service; enabled; preset: disabled)
Active: active (running) since Sat 2026-05-16 11:55:30 AEST; 5min ago
Invocation: be4fadaf9543485b90b09be6ba0c48a1
Main PID: 932 (joycond)
Tasks: 1 (limit: 18777)
Memory: 508K (peak: 2.5M)
CPU: 15ms
CGroup: /system.slice/joycond.service
└─932 /usr/bin/joycond
May 16 11:55:30 arch-lenovo systemd[1]: Started joycond.
May 16 11:55:30 arch-lenovo joycond[932]: adding epoll_subscriber: fd=4
~ # cat /usr/lib/udev/rules.d/*nintendo* /etc/udev/rules.d/*
~ # cat /usr/lib/udev/rules.d/*nintendo* /etc/udev/rules.d/*
fish: No matches for wildcard '/usr/lib/udev/rules.d/*nintendo*'. See `help language#wildcards-globbing`.
cat /usr/lib/udev/rules.d/*nintendo* /etc/udev/rules.d/*
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
~ # ls /etc/udev/rules.d && bat --paging=never /etc/udev/rules.d/*
~ # ls /etc/udev/rules.d && bat --paging=never /etc/udev/rules.d/*
50-joyshockmapper.rules 71-webusb-alpakka.rules 99-dualsense.rules 99-gamepad-fix.rules
─────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: /etc/udev/rules.d/50-joyshockmapper.rules
─────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ # Steam Controller udev write access
2 │ KERNEL=="uinput", SUBSYSTEM=="misc", TAG+="uaccess", GROUP="input", OPTIONS+="static_node=uinput"
3 │
4 │ # DualShock 4 over USB hidraw
5 │ KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", GROUP="input", MODE="0660", TAG+="uaccess"
6 │
7 │ # DualShock 4 wireless adapter over USB hidraw
8 │ KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", GROUP="input", MODE="0660", TAG+="uaccess"
9 │
10 │ # DualShock 4 Slim over USB hidraw
11 │ KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", GROUP="input", MODE="0660", TAG+="uaccess"
12 │
13 │ # DualShock 4 over bluetooth hidraw
14 │ KERNEL=="hidraw*", KERNELS=="*054C:05C4*", GROUP="input", MODE="0660", TAG+="uaccess"
15 │
16 │ # DualShock 4 Slim over bluetooth hidraw
17 │ KERNEL=="hidraw*", KERNELS=="*054C:09CC*", GROUP="input", MODE="0660", TAG+="uaccess"
18 │
19 │ # Nintendo Switch Pro Controller over USB hidraw
20 │ KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", GROUP="input", MODE="0660", TAG+="uaccess"
21 │
22 │ # Nintendo Switch Pro Controller over bluetooth hidraw
23 │ KERNEL=="hidraw*", KERNELS=="*057E:2009*", GROUP="input", MODE="0660", TAG+="uaccess"
─────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: /etc/udev/rules.d/71-webusb-alpakka.rules
─────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="028e", MODE="0660", TAG+="uaccess", RUN+="/usr/bin/touch /tmp/udev_028e.hit"
2 │ ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170", ATTR{idProduct}=="ac80", MODE="0660", TAG+="uaccess", RUN+="/usr/bin/touch /tmp/udev_ac80.hit"
3 │ ACTION!="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="0170", ATTR{idProduct}=="aa80", MODE="0660", TAG+="uaccess", RUN+="/usr/bin/touch /tmp/udev_aa80.hit"
─────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: /etc/udev/rules.d/99-dualsense.rules
─────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ ACTION=="add", SUBSYSTEM=="hid", KERNELS=="KERNELS_VALUE", DRIVER=="hid-generic", RUN+="/bin/sh -c 'echo %k > /sys/bus/hid/drivers/hid-generic/unbind; echo %k > /sys/bus/hid/drivers/hid-playstation/bind'"
─────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
─────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: /etc/udev/rules.d/99-gamepad-fix.rules
─────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ KERNEL=="hidraw*", KERNELS=="*057E:2009*", TAG+="uaccess"
2 │ KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", TAG+="uaccess"
─────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
~ # cat /etc/bluetooth/input.conf
~ # cat /etc/bluetooth/input.conf
# Configuration file for the input service
# This section contains options which are not specific to any
# particular interface
[General]
# Set idle timeout (in seconds) before the connection will be disconnect and
# the input device is removed.
# Defaults: 0 (disabled)
#IdleTimeout=0
# Enable HID protocol handling in userspace input profile
# Possible values:
# - persist: Use UHID in persistent mode (keyboard only)
# - true: Use UHID instead
# - false: User kernel HIDP
# Defaults to true
UserspaceHID=true
# Limit HID connections to bonded devices
# The HID Profile does not specify that devices must be bonded, however some
# platforms may want to make sure that input connections only come from bonded
# device connections. Several older mice have been known for not supporting
# pairing/encryption.
# Defaults to true for security.
ClassicBondedOnly=false # Was true, changed due to this https://aur.archlinux.org/packages/joycond-git
# LE upgrade security
# Enables upgrades of security automatically if required.
# Defaults to true to maximize device compatibility.
#LEAutoSecurity=true
~ # sudo dmesg | grep -i playstation
~ # sudo dmesg | grep -i playstation
~ # sudo dmesg | grep -i nintendo
~ # sudo dmesg | grep -i nintendo
~ # ls dev/input/js*
~ # ls /dev/input/js*
fish: No matches for wildcard '/dev/input/js*'. See `help language#wildcards-globbing`.
ls /dev/input/js*
^~~~~~~~~~~~~^
~ # Any and all help and additional troubleshooting help is appreciated. Thankyou!
Last edited by Jazztache (Yesterday 04:47:51)
Offline