Open apgrc opened 2 years ago
If you run
~/.steam/root/ubuntu12_32/steam-runtime/run.sh steam-runtime-input-monitor
with these devices unconnected, wait for it to finish describing all your other devices (it should say {"all-for-now": true}
at the end), and then connect each of these devices in turn, what additional information is displayed after the {"all-for-now": true}
marker?
Press Ctrl+C to stop the input monitor when it has finished displaying the new device(s). Having that information will help to avoid regressions in SDL for these devices.
@slouken, do we need to add these consistently here and in both places in SDL, or is it sufficient for these devices to be listed in src/joystick/controller_type.c
only?
@TTimo, these seem OK to add, but ideally I'd like to get their details into our test data as well.
Output from Mad Catz - Street Fighter V Arcade FightStick TE2+
{
"added" : {
"interface_flags" : [
"raw-hid"
],
"type_flags" : [
],
"dev_node" : "/dev/hidraw18",
"subsystem" : "hidraw",
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4/1-1.4.3.4:1.0/0003:0738:8481.0021/hidraw/hidraw18",
"bus_type" : "0x0003",
"vendor_id" : "0x0738",
"product_id" : "0x8481",
"version" : "0x0100",
"udev_properties" : [
"ACTION=add",
"CURRENT_TAGS=:uaccess:",
"DEVNAME=/dev/hidraw18",
"DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4/1-1.4.3.4:1.0/0003:0738:8481.0021/hidraw/hidraw18",
"MAJOR=240",
"MINOR=18",
"SEQNUM=5852",
"SUBSYSTEM=hidraw",
"TAGS=:uaccess:",
"USEC_INITIALIZED=1329279993"
],
"hid_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4/1-1.4.3.4:1.0/0003:0738:8481.0021",
"name" : null,
"bus_type" : "0x0003",
"vendor_id" : "0x0738",
"product_id" : "0x8481",
"uniq" : null
},
"usb_device_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4",
"vendor_id" : "0x0738",
"product_id" : "0x8481",
"version" : "0x0100",
"manufacturer" : "Mad catz Inc.",
"product" : "Mad Catz FightStick TE2+ PS4",
"serial" : null
}
}
}
{
"added" : {
"interface_flags" : [
"event",
"readable",
"read-write"
],
"type_flags" : [
"joystick"
],
"dev_node" : "/dev/input/event27",
"subsystem" : "input",
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4/1-1.4.3.4:1.0/0003:0738:8481.0021/input/input61/event27",
"bus_type" : "0x0003",
"vendor_id" : "0x0738",
"product_id" : "0x8481",
"version" : "0x0111",
"evdev" : {
"types" : [
"SYN",
"KEY",
"ABS",
"MSC"
],
"absolute_axes" : [
"X",
"Y",
"Z",
"RX",
"RY",
"RZ",
"HAT0X",
"HAT0Y"
],
"relative_axes" : [
],
"keys" : [
"BTN_A",
"BTN_B",
"BTN_C",
"BTN_X",
"BTN_Y",
"BTN_Z",
"BTN_TL",
"BTN_TR",
"BTN_TL2",
"BTN_TR2",
"BTN_SELECT",
"BTN_START",
"BTN_MODE",
"BTN_THUMBL"
],
"input_properties" : [
]
},
"udev_properties" : [
".INPUT_CLASS=joystick",
"ACTION=add",
"CURRENT_TAGS=:uaccess:seat:",
"DEVLINKS=/dev/input/by-id/usb-Mad_catz_Inc._Mad_Catz_FightStick_TE2+_PS4-event-joystick /dev/input/by-path/pci-0000:04:00.0-usb-0:1.4.3.4:1.0-event-joystick",
"DEVNAME=/dev/input/event27",
"DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4/1-1.4.3.4:1.0/0003:0738:8481.0021/input/input61/event27",
"ID_BUS=usb",
"ID_FOR_SEAT=input-pci-0000_04_00_0-usb-0_1_4_3_4_1_0",
"ID_INPUT=1",
"ID_INPUT_JOYSTICK=1",
"ID_MODEL=Mad_Catz_FightStick_TE2+_PS4",
"ID_MODEL_ENC=Mad\\x20Catz\\x20FightStick\\x20TE2+\\x20PS4",
"ID_MODEL_ID=8481",
"ID_PATH=pci-0000:04:00.0-usb-0:1.4.3.4:1.0",
"ID_PATH_TAG=pci-0000_04_00_0-usb-0_1_4_3_4_1_0",
"ID_REVISION=0100",
"ID_SERIAL=Mad_catz_Inc._Mad_Catz_FightStick_TE2+_PS4",
"ID_TYPE=hid",
"ID_USB_DRIVER=usbhid",
"ID_USB_INTERFACES=:030000:",
"ID_USB_INTERFACE_NUM=00",
"ID_USB_MODEL=Mad_Catz_FightStick_TE2+_PS4",
"ID_USB_MODEL_ENC=Mad\\x20Catz\\x20FightStick\\x20TE2+\\x20PS4",
"ID_USB_MODEL_ID=8481",
"ID_USB_REVISION=0100",
"ID_USB_SERIAL=Mad_catz_Inc._Mad_Catz_FightStick_TE2+_PS4",
"ID_USB_TYPE=hid",
"ID_USB_VENDOR=Mad_catz_Inc.",
"ID_USB_VENDOR_ENC=Mad\\x20catz\\x20Inc.",
"ID_USB_VENDOR_ID=0738",
"ID_VENDOR=Mad_catz_Inc.",
"ID_VENDOR_ENC=Mad\\x20catz\\x20Inc.",
"ID_VENDOR_ID=0738",
"LIBINPUT_DEVICE_GROUP=3/738/8481:usb-0000:04:00.0-1.4.3",
"MAJOR=13",
"MINOR=91",
"SEQNUM=5849",
"SUBSYSTEM=input",
"TAGS=:uaccess:seat:",
"USEC_INITIALIZED=1329379554"
],
"hid_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4/1-1.4.3.4:1.0/0003:0738:8481.0021",
"name" : null,
"bus_type" : "0x0003",
"vendor_id" : "0x0738",
"product_id" : "0x8481",
"uniq" : null
},
"input_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4/1-1.4.3.4:1.0/0003:0738:8481.0021/input/input61",
"name" : "Mad catz Inc. Mad Catz FightStick TE2+ PS4",
"bus_type" : "0x0003",
"vendor_id" : "0x0738",
"product_id" : "0x8481",
"version" : "0x0111"
},
"usb_device_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.4",
"vendor_id" : "0x0738",
"product_id" : "0x8481",
"version" : "0x0100",
"manufacturer" : "Mad catz Inc.",
"product" : "Mad Catz FightStick TE2+ PS4",
"serial" : null
}
}
}
Output from Nacon Daija PS4 Arcade Stick:
{
"added" : {
"interface_flags" : [
"event",
"readable",
"read-write"
],
"type_flags" : [
"joystick"
],
"dev_node" : "/dev/input/event28",
"subsystem" : "input",
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.3/1-1.4.3.3:1.3/0003:146B:0D09.0022/input/input62/event28",
"bus_type" : "0x0003",
"vendor_id" : "0x146b",
"product_id" : "0x0d09",
"version" : "0x0111",
"evdev" : {
"types" : [
"SYN",
"KEY",
"ABS",
"MSC"
],
"absolute_axes" : [
"X",
"Y",
"Z",
"RX",
"RY",
"RZ",
"HAT0X",
"HAT0Y"
],
"relative_axes" : [
],
"keys" : [
"BTN_A",
"BTN_B",
"BTN_C",
"BTN_X",
"BTN_Y",
"BTN_Z",
"BTN_TL",
"BTN_TR",
"BTN_TL2",
"BTN_TR2",
"BTN_SELECT",
"BTN_START",
"BTN_MODE",
"BTN_THUMBL"
],
"input_properties" : [
]
},
"udev_properties" : [
".INPUT_CLASS=joystick",
"ACTION=add",
"CURRENT_TAGS=:uaccess:seat:",
"DEVLINKS=/dev/input/by-id/usb-Bigben_Interactive_DAIJA_Arcade_Stick-if03-event-joystick /dev/input/by-path/pci-0000:04:00.0-usb-0:1.4.3.3:1.3-event-joystick",
"DEVNAME=/dev/input/event28",
"DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.3/1-1.4.3.3:1.3/0003:146B:0D09.0022/input/input62/event28",
"ID_BUS=usb",
"ID_FOR_SEAT=input-pci-0000_04_00_0-usb-0_1_4_3_3_1_3",
"ID_INPUT=1",
"ID_INPUT_JOYSTICK=1",
"ID_MODEL=DAIJA_Arcade_Stick",
"ID_MODEL_ENC=DAIJA\\x20Arcade\\x20Stick",
"ID_MODEL_ID=0d09",
"ID_PATH=pci-0000:04:00.0-usb-0:1.4.3.3:1.3",
"ID_PATH_TAG=pci-0000_04_00_0-usb-0_1_4_3_3_1_3",
"ID_REVISION=0100",
"ID_SERIAL=Bigben_Interactive_DAIJA_Arcade_Stick",
"ID_TYPE=hid",
"ID_USB_DRIVER=usbhid",
"ID_USB_INTERFACES=:010100:010200:030000:",
"ID_USB_INTERFACE_NUM=03",
"ID_USB_MODEL=DAIJA_Arcade_Stick",
"ID_USB_MODEL_ENC=DAIJA\\x20Arcade\\x20Stick",
"ID_USB_MODEL_ID=0d09",
"ID_USB_REVISION=0100",
"ID_USB_SERIAL=Bigben_Interactive_DAIJA_Arcade_Stick",
"ID_USB_TYPE=hid",
"ID_USB_VENDOR=Bigben_Interactive",
"ID_USB_VENDOR_ENC=Bigben\\x20Interactive",
"ID_USB_VENDOR_ID=146b",
"ID_VENDOR=Bigben_Interactive",
"ID_VENDOR_ENC=Bigben\\x20Interactive",
"ID_VENDOR_ID=146b",
"LIBINPUT_DEVICE_GROUP=3/146b/d09:usb-0000:04:00.0-1.4.3",
"MAJOR=13",
"MINOR=92",
"SEQNUM=5871",
"SUBSYSTEM=input",
"TAGS=:uaccess:seat:",
"USEC_INITIALIZED=1449762177"
],
"hid_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.3/1-1.4.3.3:1.3/0003:146B:0D09.0022",
"name" : null,
"bus_type" : "0x0003",
"vendor_id" : "0x146b",
"product_id" : "0x0d09",
"uniq" : null
},
"input_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.3/1-1.4.3.3:1.3/0003:146B:0D09.0022/input/input62",
"name" : "Bigben Interactive DAIJA Arcade Stick",
"bus_type" : "0x0003",
"vendor_id" : "0x146b",
"product_id" : "0x0d09",
"version" : "0x0111"
},
"usb_device_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:02.0/0000:04:00.0/usb1/1-1/1-1.4/1-1.4.3/1-1.4.3.3",
"vendor_id" : "0x146b",
"product_id" : "0x0d09",
"version" : "0x0100",
"manufacturer" : "Bigben Interactive",
"product" : "DAIJA Arcade Stick",
"serial" : null
}
}
}
For the Razer Raiju Ultimate
USB
{
"added" : {
"interface_flags" : [
"raw-hid",
"readable",
"read-write"
],
"type_flags" : [
],
"dev_node" : "/dev/hidraw20",
"subsystem" : "hidraw",
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.1/usb5/5-3/5-3.4/5-3.4:1.3/0003:1532:1004.0023/hidraw/hidraw20",
"bus_type" : "0x0003",
"vendor_id" : "0x1532",
"product_id" : "0x1004",
"version" : "0x0101",
"udev_properties" : [
"ACTION=add",
"CURRENT_TAGS=:uaccess:seat:",
"DEVNAME=/dev/hidraw20",
"DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.1/usb5/5-3/5-3.4/5-3.4:1.3/0003:1532:1004.0023/hidraw/hidraw20",
"ID_FOR_SEAT=hidraw-pci-0000_08_00_1-usb-0_3_4_1_3",
"ID_PATH=pci-0000:08:00.1-usb-0:3.4:1.3",
"ID_PATH_TAG=pci-0000_08_00_1-usb-0_3_4_1_3",
"MAJOR=240",
"MINOR=20",
"SEQNUM=5897",
"SUBSYSTEM=hidraw",
"TAGS=:uaccess:seat:",
"USEC_INITIALIZED=1876285248"
],
"hid_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.1/usb5/5-3/5-3.4/5-3.4:1.3/0003:1532:1004.0023",
"name" : null,
"bus_type" : "0x0003",
"vendor_id" : "0x1532",
"product_id" : "0x1004",
"uniq" : null
},
"usb_device_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.1/usb5/5-3/5-3.4",
"vendor_id" : "0x1532",
"product_id" : "0x1004",
"version" : "0x0101",
"manufacturer" : "Razer",
"product" : "Razer Raiju Ultimate Wired",
"serial" : "PM1841C03800278"
}
}
}
{
"added" : {
"interface_flags" : [
"event",
"readable",
"read-write"
],
"type_flags" : [
"joystick"
],
"dev_node" : "/dev/input/event29",
"subsystem" : "input",
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.1/usb5/5-3/5-3.4/5-3.4:1.3/0003:1532:1004.0023/input/input63/event29",
"bus_type" : "0x0003",
"vendor_id" : "0x1532",
"product_id" : "0x1004",
"version" : "0x0100",
"evdev" : {
"types" : [
"SYN",
"KEY",
"ABS",
"MSC"
],
"absolute_axes" : [
"X",
"Y",
"Z",
"RX",
"RY",
"RZ",
"HAT0X",
"HAT0Y"
],
"relative_axes" : [
],
"keys" : [
"BTN_A",
"BTN_B",
"BTN_C",
"BTN_X",
"BTN_Y",
"BTN_Z",
"BTN_TL",
"BTN_TR",
"BTN_TL2",
"BTN_TR2",
"BTN_SELECT",
"BTN_START",
"BTN_MODE",
"BTN_THUMBL"
],
"input_properties" : [
]
},
"udev_properties" : [
".INPUT_CLASS=joystick",
"ACTION=add",
"CURRENT_TAGS=:uaccess:seat:",
"DEVLINKS=/dev/input/by-id/usb-Razer_Razer_Raiju_Ultimate_Wired_PM1841C03800278-if03-event-joystick /dev/input/by-path/pci-0000:08:00.1-usb-0:3.4:1.3-event-joystick",
"DEVNAME=/dev/input/event29",
"DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.1/usb5/5-3/5-3.4/5-3.4:1.3/0003:1532:1004.0023/input/input63/event29",
"ID_BUS=usb",
"ID_FOR_SEAT=input-pci-0000_08_00_1-usb-0_3_4_1_3",
"ID_INPUT=1",
"ID_INPUT_JOYSTICK=1",
"ID_MODEL=Razer_Raiju_Ultimate_Wired",
"ID_MODEL_ENC=Razer\\x20Raiju\\x20Ultimate\\x20Wired",
"ID_MODEL_ID=1004",
"ID_PATH=pci-0000:08:00.1-usb-0:3.4:1.3",
"ID_PATH_TAG=pci-0000_08_00_1-usb-0_3_4_1_3",
"ID_REVISION=0101",
"ID_SERIAL=Razer_Razer_Raiju_Ultimate_Wired_PM1841C03800278",
"ID_SERIAL_SHORT=PM1841C03800278",
"ID_TYPE=hid",
"ID_USB_DRIVER=usbhid",
"ID_USB_INTERFACES=:010100:010200:030000:",
"ID_USB_INTERFACE_NUM=03",
"ID_USB_MODEL=Razer_Raiju_Ultimate_Wired",
"ID_USB_MODEL_ENC=Razer\\x20Raiju\\x20Ultimate\\x20Wired",
"ID_USB_MODEL_ID=1004",
"ID_USB_REVISION=0101",
"ID_USB_SERIAL=Razer_Razer_Raiju_Ultimate_Wired_PM1841C03800278",
"ID_USB_SERIAL_SHORT=PM1841C03800278",
"ID_USB_TYPE=hid",
"ID_USB_VENDOR=Razer",
"ID_USB_VENDOR_ENC=Razer",
"ID_USB_VENDOR_ID=1532",
"ID_VENDOR=Razer",
"ID_VENDOR_ENC=Razer",
"ID_VENDOR_ID=1532",
"LIBINPUT_DEVICE_GROUP=3/1532/1004:usb-0000:08:00.1-3",
"MAJOR=13",
"MINOR=93",
"SEQNUM=5894",
"SUBSYSTEM=input",
"TAGS=:uaccess:seat:",
"USEC_INITIALIZED=1876425619"
],
"hid_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.1/usb5/5-3/5-3.4/5-3.4:1.3/0003:1532:1004.0023",
"name" : null,
"bus_type" : "0x0003",
"vendor_id" : "0x1532",
"product_id" : "0x1004",
"uniq" : null
},
"input_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.1/usb5/5-3/5-3.4/5-3.4:1.3/0003:1532:1004.0023/input/input63",
"name" : "Razer Razer Raiju Ultimate Wired",
"bus_type" : "0x0003",
"vendor_id" : "0x1532",
"product_id" : "0x1004",
"version" : "0x0100"
},
"usb_device_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.1/usb5/5-3/5-3.4",
"vendor_id" : "0x1532",
"product_id" : "0x1004",
"version" : "0x0101",
"manufacturer" : "Razer",
"product" : "Razer Raiju Ultimate Wired",
"serial" : "PM1841C03800278"
}
}
}
Bluetooth. PC mode and PS4 mode look the same on BT.
{
"added" : {
"interface_flags" : [
"raw-hid",
"readable",
"read-write"
],
"type_flags" : [
],
"dev_node" : "/dev/hidraw20",
"subsystem" : "hidraw",
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb7/7-5/7-5:1.0/bluetooth/hci0/hci0:256/0005:1532:1009.0024/hidraw/hidraw20",
"bus_type" : "0x0005",
"vendor_id" : "0x1532",
"product_id" : "0x1009",
"version" : "0x0000",
"udev_properties" : [
"ACTION=add",
"CURRENT_TAGS=:uaccess:seat:",
"DEVNAME=/dev/hidraw20",
"DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb7/7-5/7-5:1.0/bluetooth/hci0/hci0:256/0005:1532:1009.0024/hidraw/hidraw20",
"ID_FOR_SEAT=hidraw-pci-0000_08_00_3-usb-0_5_1_0",
"ID_PATH=pci-0000:08:00.3-usb-0:5:1.0",
"ID_PATH_TAG=pci-0000_08_00_3-usb-0_5_1_0",
"MAJOR=240",
"MINOR=20",
"SEQNUM=5929",
"SUBSYSTEM=hidraw",
"TAGS=:uaccess:seat:",
"USEC_INITIALIZED=1949877990"
],
"hid_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb7/7-5/7-5:1.0/bluetooth/hci0/hci0:256/0005:1532:1009.0024",
"name" : null,
"bus_type" : "0x0005",
"vendor_id" : "0x1532",
"product_id" : "0x1009",
"uniq" : null
}
}
}
{
"added" : {
"interface_flags" : [
"event",
"readable",
"read-write"
],
"type_flags" : [
"joystick"
],
"dev_node" : "/dev/input/event29",
"subsystem" : "input",
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb7/7-5/7-5:1.0/bluetooth/hci0/hci0:256/0005:1532:1009.0024/input/input64/event29",
"bus_type" : "0x0005",
"vendor_id" : "0x1532",
"product_id" : "0x1009",
"version" : "0x0001",
"evdev" : {
"types" : [
"SYN",
"KEY",
"ABS",
"MSC"
],
"absolute_axes" : [
"X",
"Y",
"Z",
"RX",
"RY",
"RZ",
"HAT0X",
"HAT0Y"
],
"relative_axes" : [
],
"keys" : [
"BTN_A",
"BTN_B",
"BTN_C",
"BTN_X",
"BTN_Y",
"BTN_Z",
"BTN_TL",
"BTN_TR",
"BTN_TL2",
"BTN_TR2",
"BTN_SELECT",
"BTN_START",
"BTN_MODE",
"BTN_THUMBL"
],
"input_properties" : [
]
},
"udev_properties" : [
"ACTION=add",
"CURRENT_TAGS=:uaccess:seat:",
"DEVNAME=/dev/input/event29",
"DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb7/7-5/7-5:1.0/bluetooth/hci0/hci0:256/0005:1532:1009.0024/input/input64/event29",
"ID_BUS=bluetooth",
"ID_FOR_SEAT=input-pci-0000_08_00_3-usb-0_5_1_0",
"ID_INPUT=1",
"ID_INPUT_JOYSTICK=1",
"ID_INPUT_JOYSTICK_INTEGRATION=external",
"ID_PATH=pci-0000:08:00.3-usb-0:5:1.0",
"ID_PATH_TAG=pci-0000_08_00_3-usb-0_5_1_0",
"LIBINPUT_DEVICE_GROUP=5/1532/1009:98:8d:46:23:37:68",
"MAJOR=13",
"MINOR=93",
"SEQNUM=5927",
"SUBSYSTEM=input",
"TAGS=:uaccess:seat:",
"USEC_INITIALIZED=1949945318"
],
"hid_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb7/7-5/7-5:1.0/bluetooth/hci0/hci0:256/0005:1532:1009.0024",
"name" : null,
"bus_type" : "0x0005",
"vendor_id" : "0x1532",
"product_id" : "0x1009",
"uniq" : null
},
"input_ancestor" : {
"sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:08:00.3/usb7/7-5/7-5:1.0/bluetooth/hci0/hci0:256/0005:1532:1009.0024/input/input64",
"name" : "Razer Raiju Ultimate",
"bus_type" : "0x0005",
"vendor_id" : "0x1532",
"product_id" : "0x1009",
"version" : "0x0001"
}
}
}
FYI, it's not practical to have a rule for every USB device that Steam supports. The list changes all the time, and with the new third-party PS4/PS5 detection we can support new devices out of the box.
I know that it's against the security policy to open up all gamepad devices with uaccess, but that's really what's desired here.
I don't know if the comment was directed at me but looked up at SDL_gamepad_db.h and noticed that the Razer Panthera is already there (I have that controller as well).
So I removed the Razer Panthera from the rules file and restarted my computer, and it works fine without the rule. Is that what you mean? That it is not required to add them here and only on the SDL_gamepad_db.h
file?
I know that it's against the security policy to open up all gamepad devices with uaccess, but that's really what's desired here.
Indeed. I tried adding a mechanism and policy to put uaccess on known hidraw game controllers (https://github.com/systemd/systemd/pull/22860), but nobody could agree on what change they'd accept, so that's stalled. Some developers seemed to be prepared to be pragmatic, but others seem to be insisting on either a hypothetical perfect future protocol or nothing changing at all, with no compromise allowed.
So I removed the Razer Panthera from the rules file and restarted my computer, and it works fine without the rule. Is that what you mean? That it is not required to add them here and only on the SDL_gamepad_db.h file?
It's a bit complicated. There are two ways we can access a game controller: high-level (evdev) and low-level (hidraw). Any reasonable Linux distribution gives us evdev access to basically all game controllers by default; these udev rules enable hidraw access, which SDL needs for some more advanced features.
If your game controller works fine without access to its hidraw device node, then clearly the higher-level evdev interface is enough for the way you're using that particular controller, and therefore adding udev rules to support it is unnecessary. We should only be adding udev rules in this repository for controllers where it makes a difference.
This commit adds support for the following devices: