when a rudder pedals (e.g. 06a3:0763 Saitek PLC Pro Flight Rudder Pedals) are connected, the /dev/input/jsX and /dev/input/eventX are created. The problem is, that while jsX device has 644 permissions (enybody can read), the eventX device is available only to root, while any other joystick-like device receives ACLs for the current user.
If I'm not mistaken, the culprit is in the joystick detection heuristics - it looks for some axes and buttons, while these devices have only three axes.
Would it be possible to either extend the joystick detection heuristics to handle such devices (CH products pedals reportedly behave the same) or to create some exceptions for them, so these devices would work out of the box?
Please let me know if you need any more informations.
Yes, we should certainly extend input_id's logic to also cover these devices. Can you please find the eventX that belongs to that device, and give me the output of
udevadm info --name=input/eventX
Please copy the device path from the first output line ("P:"), and run input id in debug mode:
udevadm test-builtin input_id /devices/...
Finally, please run
udevadm info --attribute-walk --name=input/eventX
and copy&paste the output here.
Created attachment 95318 [details]
Requested udev info on Saitek rudder pedals.
> # udevadm info --name=input/event12
> E: ID_INPUT_JOYSTICK=1
Err, that's what we want to achieve.. I suppose you have some local udev rule which attaches that property to the pedals, so that it works for you?
> capabilities/ev raw kernel attribute: 9
That means it's capable of sending ABS and SYN events, not that surprising.
> capabilities/abs raw kernel attribute: 23
== ABS_X, ABS_Y, ABS_RZ
I was hoping that the device would be capable of something distinct like ABS_THROTTLE, ABS_RUDDER, ABS_WHEEL, ABS_GAS, or ABS_BRAKE. I'm afraid I don't really know what ABS_RZ is supposed to mean, the official documentation (https://www.kernel.org/doc/Documentation/input/event-codes.txt) does not mention it and googling for it doesn't help much either.
However, touch screens, touchpads, and accelerometers do *not* use all these "fancy" axes, they really are quite unique to joysticks and similar game controllers.
Fixed in http://cgit.freedesktop.org/systemd/systemd/commit/?id=2658624399 . If you have a chance to test, I'd appreciate, but this ought to match at least your device (and presumably a lot of similar devices).