Public bug reported: I recently brought out my old bluetooth HID gamepad (iPEGA PG-9053) and was surprised to find that I didn't get any input in SDL games, though I know it used to work with older versions of Ubuntu (approximately 14.04 I think). KDE's "input devices" configuration would be able to perfectly read from /dev/input/js0 but many games failed to get any input from the gamepad.
It turns out that the reason for this is that the event devices (/dev/input/event*) were not readable for the default Ubuntu user (crw- rw----, group=input). It seems that only devices that are marked as Joysticks will have global read permission set for them. This means that apparently my humble gamepad was not detected as such. The following is the udev info for my gamepad: $ udevadm info --name=input/event21 P: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.3/2-1.5.3:1.0/bluetooth/hci0/hci0:12/0005:1949:0402.000A/input/input31/event21 N: input/event21 E: BACKSPACE=guess E: DEVNAME=/dev/input/event21 E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.3/2-1.5.3:1.0/bluetooth/hci0/hci0:12/0005:1949:0402.000A/input/input31/event21 E: ID_BUS=bluetooth E: ID_INPUT=1 E: ID_INPUT_KEY=1 E: ID_INPUT_KEYBOARD=1 E: ID_INPUT_MOUSE=1 E: LIBINPUT_DEVICE_GROUP=5/1949/402/11b:00:1a:7d:0a:ba:28 E: MAJOR=13 E: MINOR=85 E: SUBSYSTEM=input E: USEC_INITIALIZED=7821377694 E: XKBLAYOUT=us,il E: XKBMODEL=pc105 E: XKBOPTIONS=grp:alt_shift_toggle,grp_led:scroll E: XKBVARIANT=, $ udevadm test-builtin input_id /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.3/2-1.5.3:1.0/bluetooth/hci0/hci0:12/0005:1949:0402.000A/input/input31/event21 calling: test-builtin === trie on-disk === tool version: 231 file size: 7291492 bytes header size 80 bytes strings 1819268 bytes nodes 5472144 bytes Load module index Found container virtualization none timestamp of '/etc/systemd/network' changed timestamp of '/lib/systemd/network' changed Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. ID_INPUT=1 capabilities/ev raw kernel attribute: 12001f capabilities/ev decoded bit map: bit 0: 000000000012001F capabilities/abs raw kernel attribute: 30627 capabilities/abs decoded bit map: bit 0: 0000000000030627 capabilities/rel raw kernel attribute: 103 capabilities/rel decoded bit map: bit 0: 0000000000000103 capabilities/key raw kernel attribute: 7fff000000070000 1000000000007 ff9f307ac1405fff febeffdfffefffff fffffffffffffffe capabilities/key decoded bit map: bit 0: FFFFFFFFFFFFFFFE bit 64: FEBEFFDFFFEFFFFF bit 128: FF9F307AC1405FFF bit 192: 0001000000000007 bit 256: 7FFF000000070000 properties raw kernel attribute: 0 properties decoded bit map: ID_INPUT_MOUSE=1 test_key: checking bit block 0 for any keys; found=1 test_key: checking bit block 64 for any keys; found=1 test_key: checking bit block 128 for any keys; found=1 test_key: checking bit block 192 for any keys; found=1 ID_INPUT_KEY=1 ID_INPUT_KEYBOARD=1 Unload module index Unloaded link configuration context. There is a similar bug for a different peripheral here: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1332444 ** Affects: systemd (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1653386 Title: Gamepad not recognized as joystick Status in systemd package in Ubuntu: New Bug description: I recently brought out my old bluetooth HID gamepad (iPEGA PG-9053) and was surprised to find that I didn't get any input in SDL games, though I know it used to work with older versions of Ubuntu (approximately 14.04 I think). KDE's "input devices" configuration would be able to perfectly read from /dev/input/js0 but many games failed to get any input from the gamepad. It turns out that the reason for this is that the event devices (/dev/input/event*) were not readable for the default Ubuntu user (crw-rw----, group=input). It seems that only devices that are marked as Joysticks will have global read permission set for them. This means that apparently my humble gamepad was not detected as such. The following is the udev info for my gamepad: $ udevadm info --name=input/event21 P: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.3/2-1.5.3:1.0/bluetooth/hci0/hci0:12/0005:1949:0402.000A/input/input31/event21 N: input/event21 E: BACKSPACE=guess E: DEVNAME=/dev/input/event21 E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.3/2-1.5.3:1.0/bluetooth/hci0/hci0:12/0005:1949:0402.000A/input/input31/event21 E: ID_BUS=bluetooth E: ID_INPUT=1 E: ID_INPUT_KEY=1 E: ID_INPUT_KEYBOARD=1 E: ID_INPUT_MOUSE=1 E: LIBINPUT_DEVICE_GROUP=5/1949/402/11b:00:1a:7d:0a:ba:28 E: MAJOR=13 E: MINOR=85 E: SUBSYSTEM=input E: USEC_INITIALIZED=7821377694 E: XKBLAYOUT=us,il E: XKBMODEL=pc105 E: XKBOPTIONS=grp:alt_shift_toggle,grp_led:scroll E: XKBVARIANT=, $ udevadm test-builtin input_id /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5.3/2-1.5.3:1.0/bluetooth/hci0/hci0:12/0005:1949:0402.000A/input/input31/event21 calling: test-builtin === trie on-disk === tool version: 231 file size: 7291492 bytes header size 80 bytes strings 1819268 bytes nodes 5472144 bytes Load module index Found container virtualization none timestamp of '/etc/systemd/network' changed timestamp of '/lib/systemd/network' changed Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. ID_INPUT=1 capabilities/ev raw kernel attribute: 12001f capabilities/ev decoded bit map: bit 0: 000000000012001F capabilities/abs raw kernel attribute: 30627 capabilities/abs decoded bit map: bit 0: 0000000000030627 capabilities/rel raw kernel attribute: 103 capabilities/rel decoded bit map: bit 0: 0000000000000103 capabilities/key raw kernel attribute: 7fff000000070000 1000000000007 ff9f307ac1405fff febeffdfffefffff fffffffffffffffe capabilities/key decoded bit map: bit 0: FFFFFFFFFFFFFFFE bit 64: FEBEFFDFFFEFFFFF bit 128: FF9F307AC1405FFF bit 192: 0001000000000007 bit 256: 7FFF000000070000 properties raw kernel attribute: 0 properties decoded bit map: ID_INPUT_MOUSE=1 test_key: checking bit block 0 for any keys; found=1 test_key: checking bit block 64 for any keys; found=1 test_key: checking bit block 128 for any keys; found=1 test_key: checking bit block 192 for any keys; found=1 ID_INPUT_KEY=1 ID_INPUT_KEYBOARD=1 Unload module index Unloaded link configuration context. There is a similar bug for a different peripheral here: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1332444 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1653386/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp