uinput device doesn't show in gamepad/joystick list

Coşku Baş cosku.bas at gmail.com
Tue Oct 13 13:19:54 PDT 2015


I see. What I meant is before adding the udev rule about the joystick, 
evtest did not list it when it was run *without* sudo. Now that I have 
the ID_INPUT_JOYSTICK correctly it even shows up when I run evtest 
without root.
Maybe that helps somehow?

Thanks anyway

On Tue, 13 Oct, 2015 at 11:03 PM, Peter Hutterer 
<peter.hutterer at who-t.net> wrote:
> On Tue, Oct 13, 2015 at 10:27:52PM +0300, Coşku Baş wrote:
>>  Strangely, setting ID_INPUT_JOYSTICK with an udev rule worked for 
>> the
>>  virtual gamepad but not for the virtual mouse or keyboard.
>> 
>>  Right now this is how my custom udev rule looks like:
>> 
>>  KERNEL=="uinput", GROUP="wheel", MODE="0660"
>>  SUBSYSTEMS=="input", ATTRS{name}=="Virt Gamepad", 
>> ENV{ID_INPUT_JOYSTICK}="1"
>>  SUBSYSTEMS=="input", ATTRS{name}=="Virt Keyboard",
>>  ENV{ID_INPUT_KEYBOARD}="1"
>>  SUBSYSTEMS=="input", ATTRS{name}=="Virt Mouse", 
>> ENV{ID_INPUT_MOUSE}="1"
>> 
>>  So now evtest successfully recognizes the gamepad but not the mouse 
>> nor the
>>  keyboard.
>>  (Keyboard enables EV_KEY and mouse enables EV_KEY and EV_REL)
>> 
>>  Any light to shed?
> 
> fwiw, evtest doesn't care about udev tag, it opens the device node you
> request and that's it. only X, libinput, SDL care about the udev tags.
> 
> other than that I don't know, sorry. may be a hidden typo in your 
> udev rule.
> fwiw, whenever I play with udev rules, I always add a ENV{FOO}="1" to 
> the
> list and increment that number. that way I can check whether it 
> applied and
> what applied, otherwise you may get interference from other rules.
> 
> Cheers,
>    Peter
> 
>> 
>>  On Sun, 11 Oct, 2015 at 8:02 AM, Peter Hutterer 
>> <peter.hutterer at who-t.net>
>>  wrote:
>>  >On Sat, Oct 10, 2015 at 06:39:23PM +0300, Coşku Baş wrote:
>>  >> Hi there,
>>  >>
>>  >> I have created a virtual gamepad that mimics the events received 
>> from a
>>  >> physical gamepad over a network connection.
>>  >>
>>  >> To test if the system works I have run evtest and surely the 
>> virtual
>>  >>device
>>  >> emits the correct events.
>>  >>
>>  >> The problem is I can't seem to get any game recognize the virtual
>>  >>gamepad.
>>  >> Most of the games I tried use SDL2 so I have run sdl2-jstest
>>  >>application
>>  >> and expectedly the virtual device was not listed. Is it possible 
>> to
>>  >> advertise my uinput device as a real gamepad so that games can 
>> make use
>>  >>of
>>  >> it?
>>  >>
>>  >> As a side note, evtest only lists the device if it's ran as root.
>>  >>Running
>>  >> sdl2-jstest as root did not made a difference though.
>>  >>
>>  >> Any help would be appreciated.
>>  >> Thanks.
>>  >
>>  >first guess here is that the ID_INPUT_JOYSTICK or some other tag 
>> isn't
>>  >applied by udev, so the rest of the system doesn't identify it 
>> correctly.
>>  >that could lead to e.g. the X server not initializing it. Usually 
>> the
>>  >solution to that is to either add a specific set of axes/buttons to
>>  >trigger
>>  >the tag, or assign the tag manually with a custom rule.
>>  >
>>  >What's the evemu-describe output of the device?
>>  >
>>  >Cheers,
>>  >   Peter


More information about the Input-tools mailing list