ValveSoftware / steam-devices

List of devices Steam and SteamVR will want read/write permissions on, to help downstream distributions create udev rules/etc
MIT License
153 stars 43 forks source link

Controller not detected: Nintendo wired controller, HORIPAD S #29

Open Zophiekat opened 3 years ago

Zophiekat commented 3 years ago

I tried adding this controller but it wouldn't be recognized

this is the rule: KERNEL=="hidraw*", ATTRS{idVendor}=="0f0d", ATTRS{idProduct}=="00dc", MODE="0660", TAG+="uaccess"|

zophiekat@pop-os:~$ udevadm info /dev/input/js1
P: /devices/pci0000:00/0000:00:08.1/0000:0c:00.3/usb5/5-1/5-1:1.0/input/input34/js1
N: input/js1
L: 0
S: input/by-id/usb-HORI_CO._LTD._HORIPAD_S_12340000-joystick
S: input/by-path/pci-0000:0c:00.3-usb-0:1:1.0-joystick
E: DEVPATH=/devices/pci0000:00/0000:00:08.1/0000:0c:00.3/usb5/5-1/5-1:1.0/input/input34/js1
E: DEVNAME=/dev/input/js1
E: MAJOR=13
E: MINOR=1
E: SUBSYSTEM=input
E: USEC_INITIALIZED=28944071480
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_VENDOR=HORI_CO._LTD.
E: ID_VENDOR_ENC=HORI\x20CO.\x2cLTD.
E: ID_VENDOR_ID=0f0d
E: ID_MODEL=HORIPAD_S
E: ID_MODEL_ENC=HORIPAD\x20S
E: ID_MODEL_ID=00dc
E: ID_REVISION=0112
E: ID_SERIAL=HORI_CO._LTD._HORIPAD_S_12340000
E: ID_SERIAL_SHORT=12340000
E: ID_TYPE=generic
E: ID_BUS=usb
E: ID_USB_INTERFACES=:ff5d01:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=xpad
E: ID_PATH=pci-0000:0c:00.3-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_0c_00_3-usb-0_1_1_0
E: ID_FOR_SEAT=input-pci-0000_0c_00_3-usb-0_1_1_0
E: DEVLINKS=/dev/input/by-id/usb-HORI_CO._LTD._HORIPAD_S_12340000-joystick /dev/input/by-path/pci-0000:0c:00.3-usb-0:1:1.0-joystick
E: TAGS=:uaccess:seat:
E: CURRENT_TAGS=:uaccess:seat:

I'm not sure what's wrong with the rule, but no matter what I try it just wont show up in Steam

smcv commented 3 years ago

Rules with KERNEL=="hidraw*" only help for USB HID or Bluetooth HID controllers, which includes recent Playstation and Nintendo controllers (and their third-party clones). Most Xbox controllers (and their third-party clones) are not usually USB HID.

This device appears to be using the xpad driver, which means it's telling the kernel that it's Xbox-compatible, so it might not be HID.

If you run

~/.steam/root/ubuntu12_32/steam-runtime/run.sh steam-runtime-input-monitor

with this device unplugged, wait for it to finish describing all your other devices (it should say {"all-for-now": true} at the end), and then plug this device in, 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).

/dev/input/js1

The /dev/input/js* device nodes are a legacy interface. Steam and all modern games should be using either /dev/input/event* (the "evdev" interface) or /dev/hidraw* (the "raw HID" interface, only available for HID controllers).

If you're going to use udevadm info to describe a device, udevadm info -a is usually more useful - that tells us about the device and all its parents, not just the device itself. For an evdev interface that is implemented by a USB or Bluetooth device, we usually need information from the USB or Bluetooth layer, not just the evdev layer.

Zophiekat commented 2 years ago
this is the difference of running `~/.steam/root/ubuntu12_32/steam-runtime/run.sh steam-runtime-input-monitor` when unplugging and plugging the device:

``` "event", "readable", "read-write" ], "type_flags" : [ "joystick" ], "dev_node" : "/dev/input/event2", "subsystem" : "input", "sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1/usb1/1-2/1-2:1.0/input/input31/event2", "bus_type" : "0x0003", "vendor_id" : "0x0f0d", "product_id" : "0x00dc", "version" : "0x0112", "evdev" : { "types" : [ "SYN", "KEY", "ABS", "FF" ], "absolute_axes" : [ "X", "Y", "Z", "RX", "RY", "RZ", "HAT0X", "HAT0Y" ], "relative_axes" : [ ], "keys" : [ "BTN_A", "BTN_B", "BTN_X", "BTN_Y", "BTN_TL", "BTN_TR", "BTN_SELECT", "BTN_START", "BTN_MODE", "BTN_THUMBL", "BTN_THUMBR" ], "input_properties" : [ ] }, "udev_properties" : [ "CURRENT_TAGS=:seat:uaccess:", "DEVLINKS=/dev/input/by-path/pci-0000:06:00.1-usb-0:2:1.0-event-joystick /dev/input/by-id/usb-HORI_CO._LTD._HORIPAD_S_12340000-event-joystick", "DEVNAME=/dev/input/event2", "DEVPATH=/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1/usb1/1-2/1-2:1.0/input/input31/event2", "ID_BUS=usb", "ID_FOR_SEAT=input-pci-0000_06_00_1-usb-0_2_1_0", "ID_INPUT=1", "ID_INPUT_JOYSTICK=1", "ID_MODEL=HORIPAD_S", "ID_MODEL_ENC=HORIPAD\\x20S", "ID_MODEL_ID=00dc", "ID_PATH=pci-0000:06:00.1-usb-0:2:1.0", "ID_PATH_TAG=pci-0000_06_00_1-usb-0_2_1_0", "ID_REVISION=0112", "ID_SERIAL=HORI_CO._LTD._HORIPAD_S_12340000", "ID_SERIAL_SHORT=12340000", "ID_TYPE=generic", "ID_USB_DRIVER=xpad", "ID_USB_INTERFACES=:ff5d01:", "ID_USB_INTERFACE_NUM=00", "ID_VENDOR=HORI_CO._LTD.", "ID_VENDOR_ENC=HORI\\x20CO.\\x2cLTD.", "ID_VENDOR_ID=0f0d", "LIBINPUT_DEVICE_GROUP=3/f0d/dc:usb-0000:06:00.1-2", "MAJOR=13", "MINOR=66", "SUBSYSTEM=input", "TAGS=:seat:uaccess:", "USEC_INITIALIZED=78382947387" ], "input_ancestor" : { "sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1/usb1/1-2/1-2:1.0/input/input31", "name" : "Generic X-Box pad", "bus_type" : "0x0003", "vendor_id" : "0x0f0d", "product_id" : "0x00dc", "version" : "0x0112" }, "usb_device_ancestor" : { "sys_path" : "/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1/usb1/1-2", "vendor_id" : "0x0f0d", "product_id" : "0x00dc", "version" : "0x0112", "manufacturer" : "HORI CO.,LTD.", "product" : "HORIPAD S", "serial" : "12340000" } } } { "added" : { "interface_flags" : [ ```

this is also what i get by running `udevadm info -a /dev/input/event2`

``` > Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1/usb1/1-2/1-2:1.0/input/input31/event2': KERNEL=="event2" SUBSYSTEM=="input" DRIVER=="" ATTR{power/async}=="disabled" ATTR{power/control}=="auto" ATTR{power/runtime_active_kids}=="0" ATTR{power/runtime_active_time}=="0" ATTR{power/runtime_enabled}=="disabled" ATTR{power/runtime_status}=="unsupported" ATTR{power/runtime_suspended_time}=="0" ATTR{power/runtime_usage}=="0" looking at parent device '/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1/usb1/1-2/1-2:1.0/input/input31': KERNELS=="input31" SUBSYSTEMS=="input" DRIVERS=="" ATTRS{capabilities/abs}=="3003f" ATTRS{capabilities/ev}=="20000b" ATTRS{capabilities/ff}=="107030000 0" ATTRS{capabilities/key}=="7cdb000000000000 0 0 0 0" ATTRS{capabilities/led}=="0" ATTRS{capabilities/msc}=="0" ATTRS{capabilities/rel}=="0" ATTRS{capabilities/snd}=="0" ATTRS{capabilities/sw}=="0" ATTRS{id/bustype}=="0003" ATTRS{id/product}=="00dc" ATTRS{id/vendor}=="0f0d" ATTRS{id/version}=="0112" ATTRS{inhibited}=="0" ATTRS{name}=="Generic X-Box pad" ATTRS{phys}=="usb-0000:06:00.1-2/input0" ATTRS{power/async}=="disabled" ATTRS{power/control}=="auto" ATTRS{power/runtime_active_kids}=="0" ATTRS{power/runtime_active_time}=="0" ATTRS{power/runtime_enabled}=="disabled" ATTRS{power/runtime_status}=="unsupported" ATTRS{power/runtime_suspended_time}=="0" ATTRS{power/runtime_usage}=="0" ATTRS{properties}=="0" ATTRS{uniq}=="" looking at parent device '/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1/usb1/1-2/1-2:1.0': KERNELS=="1-2:1.0" SUBSYSTEMS=="usb" DRIVERS=="xpad" ATTRS{authorized}=="1" ATTRS{bAlternateSetting}==" 0" ATTRS{bInterfaceClass}=="ff" ATTRS{bInterfaceNumber}=="00" ATTRS{bInterfaceProtocol}=="01" ATTRS{bInterfaceSubClass}=="5d" ATTRS{bNumEndpoints}=="02" ATTRS{power/async}=="enabled" ATTRS{power/runtime_active_kids}=="0" ATTRS{power/runtime_enabled}=="disabled" ATTRS{power/runtime_status}=="unsupported" ATTRS{power/runtime_usage}=="0" ATTRS{supports_autosuspend}=="0" looking at parent device '/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1/usb1/1-2': KERNELS=="1-2" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{authorized}=="1" ATTRS{avoid_reset_quirk}=="0" ATTRS{bConfigurationValue}=="1" ATTRS{bDeviceClass}=="ff" ATTRS{bDeviceProtocol}=="ff" ATTRS{bDeviceSubClass}=="ff" ATTRS{bMaxPacketSize0}=="8" ATTRS{bMaxPower}=="500mA" ATTRS{bNumConfigurations}=="1" ATTRS{bNumInterfaces}==" 1" ATTRS{bcdDevice}=="0112" ATTRS{bmAttributes}=="80" ATTRS{busnum}=="1" ATTRS{configuration}=="" ATTRS{devnum}=="4" ATTRS{devpath}=="2" ATTRS{idProduct}=="00dc" ATTRS{idVendor}=="0f0d" ATTRS{ltm_capable}=="no" ATTRS{manufacturer}=="HORI CO.,LTD." ATTRS{maxchild}=="0" ATTRS{power/active_duration}=="788652" ATTRS{power/async}=="enabled" ATTRS{power/autosuspend}=="2" ATTRS{power/autosuspend_delay_ms}=="2000" ATTRS{power/connected_duration}=="788652" ATTRS{power/control}=="on" ATTRS{power/level}=="on" ATTRS{power/persist}=="1" ATTRS{power/runtime_active_kids}=="1" ATTRS{power/runtime_active_time}=="788370" ATTRS{power/runtime_enabled}=="forbidden" ATTRS{power/runtime_status}=="active" ATTRS{power/runtime_suspended_time}=="0" ATTRS{power/runtime_usage}=="1" ATTRS{product}=="HORIPAD S" ATTRS{quirks}=="0x0" ATTRS{removable}=="removable" ATTRS{rx_lanes}=="1" ATTRS{serial}=="12340000" ATTRS{speed}=="12" ATTRS{tx_lanes}=="1" ATTRS{urbnum}=="197074" ATTRS{version}==" 2.00" looking at parent device '/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1/usb1': KERNELS=="usb1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{authorized}=="1" ATTRS{authorized_default}=="1" ATTRS{avoid_reset_quirk}=="0" ATTRS{bConfigurationValue}=="1" ATTRS{bDeviceClass}=="09" ATTRS{bDeviceProtocol}=="01" ATTRS{bDeviceSubClass}=="00" ATTRS{bMaxPacketSize0}=="64" ATTRS{bMaxPower}=="0mA" ATTRS{bNumConfigurations}=="1" ATTRS{bNumInterfaces}==" 1" ATTRS{bcdDevice}=="0515" ATTRS{bmAttributes}=="e0" ATTRS{busnum}=="1" ATTRS{configuration}=="" ATTRS{devnum}=="1" ATTRS{devpath}=="0" ATTRS{idProduct}=="0002" ATTRS{idVendor}=="1d6b" ATTRS{interface_authorized_default}=="1" ATTRS{ltm_capable}=="no" ATTRS{manufacturer}=="Linux 5.15.15-76051515-generic xhci-hcd" ATTRS{maxchild}=="6" ATTRS{power/active_duration}=="79109820" ATTRS{power/async}=="enabled" ATTRS{power/autosuspend}=="0" ATTRS{power/autosuspend_delay_ms}=="0" ATTRS{power/connected_duration}=="79170424" ATTRS{power/control}=="auto" ATTRS{power/level}=="auto" ATTRS{power/runtime_active_kids}=="1" ATTRS{power/runtime_active_time}=="79109793" ATTRS{power/runtime_enabled}=="enabled" ATTRS{power/runtime_status}=="active" ATTRS{power/runtime_suspended_time}=="60609" ATTRS{power/runtime_usage}=="0" ATTRS{power/wakeup}=="disabled" ATTRS{power/wakeup_abort_count}=="" ATTRS{power/wakeup_active}=="" ATTRS{power/wakeup_active_count}=="" ATTRS{power/wakeup_count}=="" ATTRS{power/wakeup_expire_count}=="" ATTRS{power/wakeup_last_time_ms}=="" ATTRS{power/wakeup_max_time_ms}=="" ATTRS{power/wakeup_total_time_ms}=="" ATTRS{product}=="xHCI Host Controller" ATTRS{quirks}=="0x0" ATTRS{removable}=="unknown" ATTRS{rx_lanes}=="1" ATTRS{serial}=="0000:06:00.1" ATTRS{speed}=="480" ATTRS{tx_lanes}=="1" ATTRS{urbnum}=="78" ATTRS{version}==" 2.00" looking at parent device '/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0/0000:06:00.1': KERNELS=="0000:06:00.1" SUBSYSTEMS=="pci" DRIVERS=="xhci_hcd" ATTRS{ari_enabled}=="0" ATTRS{broken_parity_status}=="0" ATTRS{class}=="0x0c0330" ATTRS{consistent_dma_mask_bits}=="64" ATTRS{current_link_speed}=="16.0 GT/s PCIe" ATTRS{current_link_width}=="16" ATTRS{d3cold_allowed}=="1" ATTRS{dbc}=="disabled" ATTRS{device}=="0x149c" ATTRS{dma_mask_bits}=="64" ATTRS{driver_override}=="(null)" ATTRS{enable}=="1" ATTRS{irq}=="40" ATTRS{link/l0s_aspm}=="0" ATTRS{link/l1_aspm}=="0" ATTRS{local_cpulist}=="0-15" ATTRS{local_cpus}=="0000ffff" ATTRS{max_link_speed}=="16.0 GT/s PCIe" ATTRS{max_link_width}=="16" ATTRS{msi_bus}=="1" ATTRS{msi_irqs/40}=="msi" ATTRS{numa_node}=="-1" ATTRS{power/async}=="enabled" ATTRS{power/control}=="on" ATTRS{power/runtime_active_kids}=="1" ATTRS{power/runtime_active_time}=="79170899" ATTRS{power/runtime_enabled}=="forbidden" ATTRS{power/runtime_status}=="active" ATTRS{power/runtime_suspended_time}=="0" ATTRS{power/runtime_usage}=="1" ATTRS{power/wakeup}=="enabled" ATTRS{power/wakeup_abort_count}=="0" ATTRS{power/wakeup_active}=="0" ATTRS{power/wakeup_active_count}=="0" ATTRS{power/wakeup_count}=="0" ATTRS{power/wakeup_expire_count}=="0" ATTRS{power/wakeup_last_time_ms}=="0" ATTRS{power/wakeup_max_time_ms}=="0" ATTRS{power/wakeup_total_time_ms}=="0" ATTRS{power_state}=="D0" ATTRS{revision}=="0x00" ATTRS{subsystem_device}=="0x8808" ATTRS{subsystem_vendor}=="0x1043" ATTRS{vendor}=="0x1022" looking at parent device '/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:08.0': KERNELS=="0000:03:08.0" SUBSYSTEMS=="pci" DRIVERS=="pcieport" ATTRS{ari_enabled}=="0" ATTRS{broken_parity_status}=="0" ATTRS{class}=="0x060400" ATTRS{consistent_dma_mask_bits}=="32" ATTRS{current_link_speed}=="16.0 GT/s PCIe" ATTRS{current_link_width}=="16" ATTRS{d3cold_allowed}=="1" ATTRS{device}=="0x57a4" ATTRS{dma_mask_bits}=="32" ATTRS{driver_override}=="(null)" ATTRS{enable}=="2" ATTRS{irq}=="35" ATTRS{local_cpulist}=="0-15" ATTRS{local_cpus}=="0000ffff" ATTRS{max_link_speed}=="16.0 GT/s PCIe" ATTRS{max_link_width}=="16" ATTRS{msi_bus}=="1" ATTRS{msi_irqs/35}=="msi" ATTRS{numa_node}=="-1" ATTRS{power/async}=="enabled" ATTRS{power/autosuspend_delay_ms}=="100" ATTRS{power/control}=="auto" ATTRS{power/runtime_active_kids}=="3" ATTRS{power/runtime_active_time}=="79170904" ATTRS{power/runtime_enabled}=="enabled" ATTRS{power/runtime_status}=="active" ATTRS{power/runtime_suspended_time}=="0" ATTRS{power/runtime_usage}=="0" ATTRS{power/wakeup}=="disabled" ATTRS{power/wakeup_abort_count}=="" ATTRS{power/wakeup_active}=="" ATTRS{power/wakeup_active_count}=="" ATTRS{power/wakeup_count}=="" ATTRS{power/wakeup_expire_count}=="" ATTRS{power/wakeup_last_time_ms}=="" ATTRS{power/wakeup_max_time_ms}=="" ATTRS{power/wakeup_total_time_ms}=="" ATTRS{power_state}=="D0" ATTRS{reset_method}=="pm" ATTRS{revision}=="0x00" ATTRS{secondary_bus_number}=="6" ATTRS{subordinate_bus_number}=="6" ATTRS{subsystem_device}=="0x8808" ATTRS{subsystem_vendor}=="0x1043" ATTRS{vendor}=="0x1022" looking at parent device '/devices/pci0000:00/0000:00:01.2/0000:02:00.0': KERNELS=="0000:02:00.0" SUBSYSTEMS=="pci" DRIVERS=="pcieport" ATTRS{ari_enabled}=="0" ATTRS{broken_parity_status}=="0" ATTRS{class}=="0x060400" ATTRS{consistent_dma_mask_bits}=="32" ATTRS{current_link_speed}=="16.0 GT/s PCIe" ATTRS{current_link_width}=="4" ATTRS{d3cold_allowed}=="1" ATTRS{device}=="0x57ad" ATTRS{dma_mask_bits}=="32" ATTRS{driver_override}=="(null)" ATTRS{enable}=="2" ATTRS{irq}=="24" ATTRS{link/l1_1_aspm}=="0" ATTRS{link/l1_1_pcipm}=="0" ATTRS{link/l1_aspm}=="0" ATTRS{local_cpulist}=="0-15" ATTRS{local_cpus}=="0000ffff" ATTRS{max_link_speed}=="16.0 GT/s PCIe" ATTRS{max_link_width}=="8" ATTRS{msi_bus}=="1" ATTRS{numa_node}=="-1" ATTRS{power/async}=="enabled" ATTRS{power/autosuspend_delay_ms}=="100" ATTRS{power/control}=="auto" ATTRS{power/runtime_active_kids}=="5" ATTRS{power/runtime_active_time}=="79170904" ATTRS{power/runtime_enabled}=="enabled" ATTRS{power/runtime_status}=="active" ATTRS{power/runtime_suspended_time}=="0" ATTRS{power/runtime_usage}=="0" ATTRS{power/wakeup}=="disabled" ATTRS{power/wakeup_abort_count}=="" ATTRS{power/wakeup_active}=="" ATTRS{power/wakeup_active_count}=="" ATTRS{power/wakeup_count}=="" ATTRS{power/wakeup_expire_count}=="" ATTRS{power/wakeup_last_time_ms}=="" ATTRS{power/wakeup_max_time_ms}=="" ATTRS{power/wakeup_total_time_ms}=="" ATTRS{power_state}=="D0" ATTRS{reset_method}=="pm bus" ATTRS{revision}=="0x00" ATTRS{secondary_bus_number}=="3" ATTRS{subordinate_bus_number}=="8" ATTRS{subsystem_device}=="0x0000" ATTRS{subsystem_vendor}=="0x0000" ATTRS{vendor}=="0x1022" looking at parent device '/devices/pci0000:00/0000:00:01.2': KERNELS=="0000:00:01.2" SUBSYSTEMS=="pci" DRIVERS=="pcieport" ATTRS{aer_rootport_total_err_cor}=="0" ATTRS{aer_rootport_total_err_fatal}=="0" ATTRS{aer_rootport_total_err_nonfatal}=="0" ATTRS{ari_enabled}=="0" ATTRS{broken_parity_status}=="0" ATTRS{class}=="0x060400" ATTRS{consistent_dma_mask_bits}=="32" ATTRS{current_link_speed}=="16.0 GT/s PCIe" ATTRS{current_link_width}=="4" ATTRS{d3cold_allowed}=="1" ATTRS{device}=="0x1483" ATTRS{dma_mask_bits}=="32" ATTRS{driver_override}=="(null)" ATTRS{enable}=="2" ATTRS{irq}=="28" ATTRS{local_cpulist}=="0-15" ATTRS{local_cpus}=="0000ffff" ATTRS{max_link_speed}=="16.0 GT/s PCIe" ATTRS{max_link_width}=="8" ATTRS{msi_bus}=="1" ATTRS{msi_irqs/28}=="msi" ATTRS{numa_node}=="-1" ATTRS{power/async}=="enabled" ATTRS{power/autosuspend_delay_ms}=="100" ATTRS{power/control}=="auto" ATTRS{power/runtime_active_kids}=="1" ATTRS{power/runtime_active_time}=="79170908" ATTRS{power/runtime_enabled}=="enabled" ATTRS{power/runtime_status}=="active" ATTRS{power/runtime_suspended_time}=="0" ATTRS{power/runtime_usage}=="0" ATTRS{power/wakeup}=="enabled" ATTRS{power/wakeup_abort_count}=="0" ATTRS{power/wakeup_active}=="0" ATTRS{power/wakeup_active_count}=="0" ATTRS{power/wakeup_count}=="0" ATTRS{power/wakeup_expire_count}=="0" ATTRS{power/wakeup_last_time_ms}=="0" ATTRS{power/wakeup_max_time_ms}=="0" ATTRS{power/wakeup_total_time_ms}=="0" ATTRS{power_state}=="D0" ATTRS{reset_method}=="pm" ATTRS{revision}=="0x00" ATTRS{secondary_bus_number}=="2" ATTRS{subordinate_bus_number}=="8" ATTRS{subsystem_device}=="0x8808" ATTRS{subsystem_vendor}=="0x1043" ATTRS{vendor}=="0x1022" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" ATTRS{power/async}=="enabled" ATTRS{power/control}=="auto" ATTRS{power/runtime_active_kids}=="24" ATTRS{power/runtime_active_time}=="0" ATTRS{power/runtime_enabled}=="disabled" ATTRS{power/runtime_status}=="unsupported" ATTRS{power/runtime_suspended_time}=="0" ATTRS{power/runtime_usage}=="0" ATTRS{waiting_for_supplier}=="0" ```

smcv commented 2 years ago

this is the difference of running ~/.steam/root/ubuntu12_32/steam-runtime/run.sh steam-runtime-input-monitor when unplugging and plugging the device

Thanks.

The input device monitor identifies it as "read-write", so Steam will be able to access this device node. Modifying the udev rules for this device is not necessary: it already has the correct permissions.

As I suspected, this does not seem to be a HID device, so a KERNEL=="hidraw*" rule will not help you either. I don't know why Steam is not detecting it, but the udev rules are not the problem.

@slouken: does SDL or Steam perhaps need a device table entry for this controller?

Or could SDL or Steam perhaps do this programmatically, and assume that all devices with the xpad driver and all the expected axes and buttons are broadly Xbox-compatible for detection and mapping purposes?