Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 905844

Summary: Xbox One Controller not working out of the box
Product: Gentoo Linux Reporter: Lemon Lime <torsi>
Component: Current packagesAssignee: Gentoo systemd Team <systemd>
Status: RESOLVED UPSTREAM    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Lemon Lime 2023-05-06 19:44:39 UTC
I recently tried using a Xbox One Controller on my Gentoo box. The controller was recognized by the kernel (it showed up on lsmod), but it was not being picked up by my machine (moving did nothing).
Steam didn't recognize it either, it was if nothing was plugged in. I read this (https://forums.gentoo.org/viewtopic-p-8546110.html?sid=85224a9888dda34906bf91057336260c) post and it said
Check permissions on /dev/uinput, your user needs rw access to it for steam's controller-remapping stuff to work. That's the most common problem.  

Then I checked Arch's wiki, where it said on https://wiki.archlinux.org/title/Gamepad#Device_permissions that:
Any gamepad device, regardless of whether it is over USB or Bluetooth, is handled by the "input" subsystem of the kernel, corresponding with /dev/input


Arch's wiki and that gentoo forum post seemed to be referring to the same thing, so I checked those files. I have two of them (by id):
- usb-Microsoft_Controller_...-event-joystick
- usb-Microsoft_Controller_...-joystick

joystick I could cat perfectly fine, however I did not have permission to read event-joystick. So I followed this (https://unix.stackexchange.com/a/401217/531949) article to give my user group read access to said file. After that, the controller worked like a charm

Thing is, as soon as I unplug it's permissions get reset. Is there a way for me to automate this? Maybe a udev rule I could assign?
Comment 1 Mike Gilbert gentoo-dev 2023-05-15 21:46:54 UTC
Yes, this could likely be resolved with a udev rule change.

I would suggest asking the systemd project, since they maintain the default set of udev rules.

https://github.com/systemd/systemd
Comment 2 Lemon Lime 2023-05-15 23:04:28 UTC
It may be a problem with gentoo kernel bin and it's functionality with acl
Here's the thread. I included a udev rule that fixed the issue for me (It is by no means perfect)
Comment 3 Lemon Lime 2023-05-15 23:04:50 UTC
The thread in question: https://github.com/ValveSoftware/steam-devices/pull/46