USB gamepads will get assigned event ids starting from BTN_GAMEPAD (/usr/include/linux/input.h) and then increment with each button. If the gamepad has 16 buttons or more, it will reach the button id BTN_DIGI and beyond. The problem is that BTN_DIGI is reserved for tablet use and used by the joydev module (linux-source-3.0.0/drivers/input/joydev.c) to determine what devices are not joysticks/gamepads. Thus a gamepad with more then 16 buttons will not be detected as joystick by the joydev module and not get an /dev/input/js0.
This problem is a side-effect of an earlier bug fix that was needed so graphic tablets don't show up as joysticks:
Attached are above code changes as patch.
A more detailed summary of the problem:
USB gamepads will get assigned event ids starting from BTN_GAMEPAD (/usr/include/ linux/input. h) and then increment with each button. If the gamepad has 16 buttons or more, it will reach the button id BTN_DIGI and beyond. The problem is that BTN_DIGI is reserved for tablet use and used by the joydev module (linux- source- 3.0.0/drivers/ input/joydev. c) to determine what devices are not joysticks/gamepads. Thus a gamepad with more then 16 buttons will not be detected as joystick by the joydev module and not get an /dev/input/js0.
This problem is a side-effect of an earlier bug fix that was needed so graphic tablets don't show up as joysticks:
https:/ /bugs.launchpad .net/ubuntu/ +source/ linux/+ bug/300143
PS: The above logs are useless, but were requested by the auto-reply.