Xboxdrv; Full hardware access without root?

I wonder if anybody else would be interested in figuring this out, because LibUSB isn’t happy when I run xboxdev after adding Rael’s ubuntu-xboxdrv PPA and the only way it will be happy is if I add myself into root group, which is a very, very bad idea security-wise.

After cursory glances of forum posts from Google searches and attempting to re-purpose some solutions elsewhere, I can’t figure it out. Who here has an idea?

This is about as far as I’ve got;
sudo apt-add-repository ppa:rael-gc/ubuntu-xboxdrv sudo apt update sudo apt install ubuntu-xboxdrv echo "blacklist xpad" | sudo tee -a /etc/modprobe.d/blacklist.conf sudo rmmod xpad
???
xboxdrv --silent

How do I fill in the blank, without it being sudo adduser $USER root?

Hi @tiox,

could you not open the file as normal user and change the permissions to your user name rather than root?. :smiley:

I don’t believe so because xboxdrv works just fine, it’s LibUSB holding me up and being root is the only quick way of making it work.

Whoever with knowledge and an USB-connected Xbox controller (Original, Original S, 360, One), plug it in and hook us up with a solution. I am not at all comfortable telling people to give themselves root beyond software stuff.

So I discovered some other things.

In order to make xboxdrv --silent work I need to first do sudo service xboxdrv stop so i can then free up the USB ports. That removes the issue of LibUSB disliking me after I add myself to root. (Why this is a problem is entirely beyond my comprehension, since running as service should make the controller work at login, instead I get the four jsX events listed where only one of them functions as a controller.)

Further, the same series of steps I take in Ubuntu does not work in Ubuntu MATE. No matter what I do or how I do it, something isn’t clicking like it does in Canonical Ubuntu. No idea what it is. I do know, OTOH that sudo xboxdrv --silent works and lists only the one controller, but in Ubuntu I don’t need sudo to do this. Even after adding $USER to root group in a live session (as I did in Ubuntu) this comes up;

Error: No stuitable uinput device found, tried:

  /dev/input/uinput: No such file or directory
  /dev/uinput: Permission denied
  /dev/misc/uinput: No such file or directory

Troubleshooting:
  * make sure uinput kernel module is loaded 
  * make sure joydev kernel module is loaded 
  * make sure you have permissions to access the uinput device
  * start the driver with ./xboxdrv -v --no-uinput to see if the driver itself works

I really don’t know at this point. My only recourse at this point is to use the Wine + x360ce method but I would rather a native solution.