-
Notifications
You must be signed in to change notification settings - Fork 8
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
load uinput kernel module #10
Conversation
Without the uinput module, "uaccess" udev tag is not applied to `/dev/uinput`, which means neither Steam Controller nor any gamepad handled by Steam Input is working (only in Steam menus, but not in game). Steam complains: > Couldn't initialize virtual gamepad: Couldn't open /dev/uinput for writing Without this fix, the user has to be in the `input` group. With this fix, it's no longer necessary and everything is working out of the box.
CC @scaronni |
Everything is working fine here without the patch. The device is already loaded at startup and has already an ACL for the users on the console:
Anyway the uinput part is also tracked here (line 5): I guess that patch covers basically everything for access on the console, if it's merged it should be fine. Would you like to chime in? I'm waiting until that is merged and then request the various changes for the Nvidia Shield controllers. |
Nevertheless, everything works fine for me. I have the following controllers and systems and they all work fine at the moment:
Is the controller you are using providing Xinput? Something like this when starting Steam:
|
Just to be clear, when doing In-Home Streaming through the SteamLink app or hardware device, the remote controller appears as plugged in the USB ports of the host doing the streaming, so the udev rules for permissions need to apply to those as well. For example the Shield Controller is a standalone device and not a controller that you can plug in a PC: https://github.com/rpmfusion/steam/blob/master/99-shield-controller.rules#L1-L2 |
I'm confused. What Fedora are you using? Is your system fully up-to-date? Is Because for me,
Once I load it, my user immediately receives permissions to use it:
I have to say I'm quite convinced this used to work before. I had Steam Controller for quite some time, I don't remember any issues. And I definitely wasn't a member of the
This confuses me even more. steam-devices repo contains
However, their latest tarball:
How is that possible? Why are those two files different (and distributed separately)?
I'm using Steam Controller with a wifi dongle. I also tested a Genius gamepad appearing as Xbox360 gamepad with Steam Input enabled. In both cases, both gamepad don't work in games at all until I modprobe uinput (but work in Steam big picture just fine). |
Fedora 29 with all the updates as of an hour ago. I'm not in the input group and uinput is not loaded at all.
Just to be sure I restarted and rechecked everything (computer has been running for a few days). Same as before, no uinput module, streaming (Tomb Raider, Fez) and plugging stuff in works.
Correct, same here:
But still everything works for me :/
Not according to what I see, but I'm not 100% certain
It seems not according to git commits: https://src.fedoraproject.org/rpms/kernel/commits/f29
Still, I don't need it :/
We should ask Valve :( Maybe it did work for you with Steam 1.0.0.56 and different udev rules?
Same here, both work fine as is. Also my Xbox360 clone controllers have a switch in the back to turn off Xinput, but still they work the same and make no difference at all.
When this was happening to me (it happens for example when streaming with SteamLink) I had to adjust the permissions in the Steam udev rules (hence my last PR to the Shield Controller config - cyndis/shield-controller-config#4) to loose access restrictions. Based on this, the PR that is open in the Steam udev rules repository is a better approach. I'm confused. |
My
while your has:
That's the reason why you don't need Some udev rule must be adjusting your
I don't understand udev rules too much. But IIUIC that patch seems to adjust just the input device for Nvidia Shield, and should not affect |
Good catch! I have the same rules but mode 0666 in them while you have 0660 in a local change, but the file is marked as config so it's not updated when updating the steam package. Can you check that if you change it the same way on your system it works without loading the uinput module?
If it works for you I will just push the updated udev patch. The better option to not have 666 on the pad device files is the PR in Valve's repository, but being completely different I would skip it for now.
Correct, but it's just an example. Without setting it to "666", input worked for me on Steam Big Picture while streaming but not in the games that were streaming. |
I've noticed something else... The mode 660 is in the patch for the gamepad emulation, and the patch is applied at the end of the file. Apparently the udev rules file changed substantially and at the beginning of the file there is this:
Can you remove the last line of the file and just check if this is enough for your controller? |
Made a test here with:
Everything seems to be fine! I'll update the package if also your feedback is fine. |
OK, I'll wait for feedback on that comment before proceeding. The final udev rules file should look like this (
|
I've created ValveSoftware/steam-devices#2 to ask Valve to sync the udev rules so that there's less confusion. As far as I can see, the However, rewriting it to
That didn't help. But after reading ValveSoftware/steam-for-linux#4794 I think i found the ultimate solution:
This line fixes everything for me. The Can you please try to adjust the
and see whether it works well for you? (I always reboot after changing udev files, it's the most reliable way to test). It works perfectly for me. |
I see we arrived at the same solution simultaneously :) I'll test your file and let you know. I'm not sure we need to give uaccess to everything (that's a lot of patching), but perhaps it's a bit more secure. |
Based on their last comment (I did not know that Timothee Besset was working for Valve and taking care of udev!) it seems patching is the way to go... I will make a build with the patch, if the file will change (I'm tracking the beta client) I will update accordingly.
I prefer uaccess everywhere, to be honest. As you said is more secure. |
I can confirm your new file is working perfectly for me. Once there's a new rpm build with it, I'll be happy to test it. |
Closing this PR, superseded by bcd7118. |
Just did the build, it also contains a change for In-Home Streaming firewall rules, since http://koji.rpmfusion.org/koji/packageinfo?packageID=413 Btw:
Thanks for debugging it! Good night. |
I think |
|
I made a test before pushing the commit with the Shield Tablet / Controller and it was working fine, but I will double check it, thanks for the input. Plan is to make a PR if they align the repository with the tarball ruleset with all the changes, including the Shield Portable, Shield Controller 2015 and the Bluetooth 2017 one. |
Without the uinput module, "uaccess" udev tag is not applied to
/dev/uinput
, which means neither Steam Controller nor any gamepadhandled by Steam Input is working (only in Steam menus, but not in
game). Steam complains:
Without this fix, the user has to be in the
input
group. Withthis fix, it's no longer necessary and everything is working out of the
box.
Please note, I don't have a deep knowledge of udev and kernel modules and how this is supposed to be loaded the right way. But I can confirm this fixes Steam Controller or gamepads with Steam Input on my F29. I also believe this patch makes
steam-controller-gamepad-emulation.patch
unnecessary, but I can't vouch for it for any user.