-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add detection of upcoming hid-nintendo joy-con/pro controller kernel driver #6651
Comments
|
Anyone know the status of this kernel driver? I haven't been able to find any activity on it since last October. |
|
@ZLima12 Here is my latest submission to the mailing list: https://www.spinics.net/lists/linux-input/msg65088.html There are some changes to the driver I still need to make (mostly involving the accel/gyro support). |
|
Hi, the driver has been accepted for Linux 5.10 and it would be nice to at least make sure that the Steam implementation doesn't conflict with the hid-nintendo module. |
|
Linux 5.10 is coming out very soon and this is still an issue. |
|
Linux kernel 5.10 (just now installed it on my system) is out and this is still not fixed. Please please please, valve, can you get steam to detect the switch pro controller without conflicts with the kernel driver. I don't know that much about programming but considering all other fantastic things you've achieved for linux gaming, surely this little tiny issue can not be that complicated? Many thanks. |
|
Perhaps the steam client can run |
|
Whatever is implemented will ultimately be temporary since 5.10 is the new LTS kernel. |
|
@clarfonthey unfortunately, hid-nintendo didn't make it into 5.10. So anyone on LTS is not going to have it. |
|
Oh. :( Well, either way, I do think that this would be appropriate to implement. If anything, Steam should be compatible with the module. |
|
Absolutely. I've been using hid-nintendo for a month or two now and it works great. Plug and play for a lot of (most?) games, particularly those that use SDL. Don't have any complaints about it. Having the Steam client use it when available would by far be the preferred behavior. |
|
Does Valve have any plan to prioritise this? |
|
Would be nice to get a response from Valve. |
|
I have problems getting a pro controller to work and I am not sure where I should report my problem. What's the current status of hid-nintendo? Is it in the kernel by now? Is what I experience a result of the conflict? I am on Arch Linux, generally latest versions of everything and running Steam in the "native" version. The following is what jstest-gtk shows me for the controller with Steam's "Switch Pro Configuration Support" option unselected. 2021-04-19_02-45-54.mp4The only thing that is responsive here is axis two, although that should have been axis 1. After enabling Switch pro con support in the settings, jstest-gtk shows me an additional fake(?) xbox 360 controller shows no inputs in "Properties". However, the right analog stick is translated to mouse movement and the left stick is translated to arrow keys. Ori and the Blind Forest just works, but Trine 2 seemingly picks up the erratic garbage inputs and automatically selects items on the menu, after which it eventually cycles the "escape" menu in-game until I unplug it. The launcher itself is also quite irritated by it. 2021-04-19_02-52-35.mp4 |
|
Steam Input implementation interfering with native Switch Pro Controller driver Issue transferred from #7786. Your system information
Please describe your issue in as much detail as possible:I use the native hid-nintendo driver to get my Switch Pro controller working outside of steam. (see: #6651) Right now, the built-in Steam Input driver interferes with the native driver in frustrating ways. In order to get things to work with the native driver, I have to use the suggested workaround of running Steam in firejail ( I'm making a new issue because despite several requests in the other ticket (#6651) this is still an issue affecting users, and I would prefer to be able to launch steam without having to look up a firejail command just to make things work with my controller. At minimum, Steam for Linux should detect if the hid-nintendo driver is present and use that instead of its own driver if available, so that Steam Input can still work as expected. Otherwise, the default implementation is fine. |
|
I would like to say that the Nintendo Switch Pro Controller via Bluetooth doesn't work in some games with the For example, No Man's Sky (using Proton) doesn't detects my controller if I use the (However, I need to disable rumble in order to use the controller more than several minutes into the game before disconnecting.) |
|
FWIW I also have the same problem with Blue Fire -- I had to use the Steam Input version of the driver when the hid-nintendo one usually works. I haven't ever encountered this issue in a native game, though, and it is likely an issue in Proton that affects a few games. Properly supporting hid-nintendo would be the proper fix for this IMHO, and not a reason to continue the existing behaviour. |
|
The best fix, I think, should be to let the user choose the driver he/she wants to use in every case. |
|
Uh, no… drivers aren't supposed to work that way. You use the proper driver for hardware, end of story; the only reason why steam should make up its own driver for Switch Pro controllers is if the system doesn't support it. There's still the option to enable or disable Steam Play for a controller, but that doesn't actually change the drivers, just how their inputs are processed in the game. |
|
There's a reason we're not seeing action on this. Because of the fact that hid-nintendo has not been accepted into the mainline kernel yet, we shouldn't be expecting any updates in this issue from Valve. Yes, dkms-hid-nintendo is wondeful, quite stable, and it works really really well. But it's not included by default in any distro kernels, and is a userspace-breaking change, which should not be taken lightly by Valve. |
|
For now I've added a workaround for this problem to the joycond daemon. |
This version adds support for "virtual controller" pairing, which lets us use a Pro Controller with Steam and non-steam without collisions. See also: - https://wiki.archlinux.org/title/Gamepad#Using_hid-nintendo_pro_controller_with_Steam_Games_(with_joycond) - ValveSoftware/steam-for-linux#6651 (comment)
|
Something new about fixing conflict between kernel driver and steam driver ? |
|
We're in a transtionary period between distros using the old hidraw method to access switch controllers, and the new method inside the kernel that happened with 5.16's hid-nintendo. Valve, being on kernel 5.13 right now, will need roughly six to twelve months before this situation is really resolved. This is not a small change, and has multiple points of pain right now in regards to useability. For instance, all third-party switch controllers seem to have problems with hid-nintendo. This one will take patience, though I'm sure patches are welcome. |
|
I don't know if Valve intends to support kernel modules. |
|
This is still not fixed by the latest Steam Beta (which claims to add support for other Switch related controllers). |
|
It seems that the issue has been fixed: I played the entirety of Aperture Desk Job with no issue, and I can use the controller outside Steam even when |
|
I have test it using the lasted steam beta on manjaro running kernel 6.1.1 and the pro controller is not detected by steam. $ evtest
No device specified, trying to scan all of /dev/input/event*
Not running as root, no devices may be available.
Available devices:
....
/dev/input/event24: Nintendo Switch Pro Controller
/dev/input/event25: Nintendo Switch Pro Controller IMUHave testing both steam-runtime and steam-native. |
You don't have joycond installed do you? If so, it has udev rules to prevent steam from seeing the hidraw devices for the controller. |
|
I do not have joycond installed. But this has also not fix the issue. I am running steam from a second gaming user, using the wayland session from my main user. Could this be the issue? |
|
@DanielOgorchock could you elaborate? I have tried removing I have also tried running Steam via My issue is the same as the one reported on #8862 and #8273 but that issue seems to be going nowhere, so I figured I'd ask here instead. Steam does not detect my Switch Pro Controller if I try to connect it with L + R. If I connect it by pressing minus and plus, it detects it alright, but thinks it's a Joy-Con. I am unsure whether this has anything to do with the gyro not working. Joy-Cons can be connected to Steam alright by holding L + R but, again, the gyro appears not to work. I can see the gyro working via |
|
I'm trying to reproduce this on 6.1.11 and while there are definitely some issues (mostly hid-nintendo just kind of gives up after Steam exists, producing no further reports afaict), I'm not seeing this "spastic" behavior described. Are the original symptoms still accurate? |
|
I have been using the Pro Controller via USB for a while now, both inside and outside Steam, and I noticed no conflict problems. |
How did you get it working? For me it's super inconsistent across different devices and sometimes even across different connection methods (USB/BT). I definitely don't think this issue should be closed as some people are still experiencing this problem. |
|
actually I'm also using the pro controller (on debian 12, kernel 6.1) without joycond and I'm not getting any conflict issues since a some months. I don't know if anything as been done but it's very stable for me too. |
|
@SuperSamus @sigzegv @Octelly What kernel are you on? |
|
It's important to remember that hid-nintendo also applies to 3rd-party controllers, many of which are still not working correctly in the 6.2 series. As such, this is an ongoing issue with the driver functionality, despite the good news that 1st-party controllers work well. |
@jason-oliveira Are talking about hid-nintendo or Steam? If it's the former, then you should go to https://github.com/DanielOgorchock/linux/issues. |
|
@SuperSamus I mentioned hid-nintendo because I believe it's addition to Linux is related to the recent problems of Steam detecting the controller. |
|
@nfp0 |
|
@jason-oliveira |
|
@Octelly Then you definitely have hid-nintendo on your kernel. |
|
@SuperSamus |
|
@nfp0 correct |
|
@Octelly Try blacklisting hid-nintendo and see if you get the same behavior on Steam. |
|
@nfp0 I need hid-nintendo for joycond, which I use for Dolphin... it handles gyro stuff and all that really well... I don't know anything about Steam input being able to pass raw gyro data onto applications... |
|
@Octelly You don't need to do it permanently. My suggestion was to check if that is the source of the problem on Steam or not. |
|
@nfp0 I might look into that later, can't reboot rn |

Your system information
Please describe your issue in as much detail as possible:
The hid-nintendo kernel driver (for nintendo switch pro controllers and joy-cons) is currently in review in the linux-input mailing list with the possibility of being merged in the 5.8 merge window. Right now, steam uses hidraw to implement its own userspace driver (which I believe currently actually has a bit more functionality than the kernel driver, since it has gyro support). This leads to Steam fighting with the kernel over control of the device, and it leads to spastic behavior.
The kernel driver sets the most significant bit of the evdev's version number to allow userspace applications (e.g. sdl2, steam, etc.) to discern hid-nintendo from the default hid device. It would be nice if Steam could choose not to use hidraw when it sees that hid-nintendo is in use to avoid the conflict. As a work around I've been running steam with firejail to restrict its access to hidraw.
I am open to other suggestions for what I can do in the kernel driver to facilitate it and Steam playing nicely.
Thanks!
Steps for reproducing this issue:
The text was updated successfully, but these errors were encountered: