Just tried and it works fine for me with Switch Pro Controller on Arch /w GNOME. Probably only difference could be that I have a bunch of udev controller rules installed on top of what steam provides: https://gitlab.com/fabis_cafe/game-devices-udev
@gardotd426 are you sure the module is not loaded and there is nothing else in the way?
Yes, I'm sure. I have nothing else that would be in the way, and like I said it worked as recently as a week or two ago. And yeah, no udev rules are supposed to be necessary
For some reason it seems to be working in Manjaro, but not in my daily driver Arch install. I'm using the same /home so it makes no sense. And I'm making 100% sure hid-nintendo isn't loaded.
Check if uinput is loaded.
Also I think manjaro preinstalls my game-devices-udev by default in some editions, that enforces uinput another time.
Also check out
find /{usr/lib,etc}/modules-load.d /{usr/lib,etc}/modprobe.d/ -name "*.conf" -type f -print -exec cat '{}' \;
what kind of modules got loaded or are blocked. It could be that something in there prevents uinput or loads something else.
Otherwise please also check out
find /{usr/lib,etc}/udev/rules.d -name "*.rule*" -exec grep -qi "057e" '{}' \; -exec grep "2009" '{}' \; -print
That will list all udev rules who include 057e (that is nintendo vendor ID) and 2009 (That is switch pro controller device ID). It should at least print out this one:
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", KERNELS=="*057E:2009*", MODE="0660", TAG+="uaccess"
/usr/lib/udev/rules.d/70-steam-input.rules
But maybe another one that conflicts somehow.
Last please also check for pacdiff -o. It's unlikely, but possible that some unmerged pacnew file prevents loading of something.
uinput is loaded.
It's joycond-git, which is a dependency of joycond-cemuhook-git, which I use so I can have gyro control in Ryujinx/Yuzu/etc. I removed them, and ran sudo udevadm control --reload-rules && sudo udevadm trigger, and Steam finally recognized it over bluetooth.
It's bizarre though that it only affects Bluetooth connections.
Anyway, here are the .rules files that contain 057e:
find /{usr/lib,etc}/udev/rules.d -name "*.rule*" -exec grep -qi "057e" '{}' \; -exec grep "2009" '{}' \; -print
ATTRS{id/vendor}=="057e", ATTRS{id/product}=="2009", ATTRS{name}=="*IMU*", TAG+="uaccess"
ATTRS{id/vendor}=="057e", ATTRS{id/product}=="2009", ATTRS{name}!="*Combined*", ATTRS{name}!="*Virtual*", ATTRS{name}!="*IMU*", TAG-="uaccess"
/usr/lib/udev/rules.d/72-joycond.rules
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", KERNELS=="*057E:2009*", MODE="0660", TAG+="uaccess"
/usr/lib/udev/rules.d/70-steam-input.rules
KERNEL=="hidraw*", KERNELS=="*057E:2009*", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0660", TAG+="uaccess"
/usr/lib/udev/rules.d/71-nintendo-controllers.rules
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0600", TAG-="uaccess", RUN+="/bin/setfacl -b /dev/%k"
KERNEL=="hidraw*", KERNELS=="*057E:2009*", MODE="0600", TAG-="uaccess", RUN+="/bin/setfacl -b /dev/%k"
ATTRS{id/vendor}=="057e", ATTRS{id/product}=="2009", ATTRS{name}!="*Combined*", ATTRS{name}!="*Virtual*", ATTRS{name}!="*IMU*", TAG+="joycond", MODE="0600"
/usr/lib/udev/rules.d/89-joycond.rules
KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", GROUP="input", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", KERNELS=="*057E:2009*", GROUP="input", MODE="0660", TAG+="uaccess"
/usr/lib/udev/rules.d/50-joyshockmapper.rules
I'm not sure at all. It could be because of /usr/lib/udev/rules.d/72-joycond.rules, /usr/lib/udev/rules.d/89-joycond.rules that removes uaccess tag. Those will be used after the rules who set uaccess, because the number 72, 89 are higher then 70. That is most likely intentional for functionality reasons. Are these from a package / aur? Because that package honestly should conflict steam in the first place if it breaks switch pro in steam.
Nothing extracted yet.
Your system information
Please describe your issue in as much detail as possible:
Nintendo Swich Pro Controller is no longer detected by Steam when connected via Bluetooth. When connected via USB, Steam immediately picks up the controller. This was not an issue as recently as a couple weeks ago, my Switch Pro Controller showed up in Steam whether connected via Bluetooth or USB.
I've made sure to unload the
hid_nintendomodule as I know it conflicts with Steam Input's Switch Pro driver.Steps for reproducing this issue:
I would provide logs but there are absolutely zero messages in the console when turning on the controller in BT mode.
System info: https://gist.github.com/gardotd426/b85f45e3e62c444359eb0af6af31fb5a