When I connect a gamepad on my Linux kernel v5.14 there are two new devices that show up:
/dev/input/event23
/dev/input/js1
If I cat <file> | xxd
both device files provide gamepad event information. But event23
is much more verbose than js1
.
Also, evtest
gives error Invalid Argument
on js1
but works fine on event23
. The same happens when I use libevdev both device files.
It looks like with every event, js1
dumps the contents of an input_event
struct (defined in linux/input.h
)
What is the difference between the device files? Why do they have different information and what more information does event23
provide over js1
?