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:02.0/usb2/2-2/2-2:1.0/0003:0314:0328.0004/input/input17β:
KERNEL==βinput17β
SUBSYSTEM==βinputβ
DRIVER==""
ATTR{name}==βD_R_M JUYAO Dual Arcadeβ
ATTR{phys}==βusb-0000:00:02.0-2/input0β
ATTR{properties}==β0β
ATTR{uniq}==""
looking at parent device β/devices/pci0000:00/0000:00:02.0/usb2/2-2/2-2:1.0/0003:0314:0328.0004β:
KERNELS==β0003:0314:0328.0004β
SUBSYSTEMS==βhidβ
DRIVERS==βhid-genericβ
ATTRS{country}==β21β
looking at parent device β/devices/pci0000:00/0000:00:02.0/usb2/2-2/2-2:1.0β:
KERNELS==β2-2:1.0β
SUBSYSTEMS==βusbβ
DRIVERS==βusbhidβ
ATTRS{authorized}==β1β
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceClass}==β03β
ATTRS{bInterfaceNumber}==β00β
ATTRS{bInterfaceProtocol}==β00β
ATTRS{bInterfaceSubClass}==β00β
ATTRS{bNumEndpoints}==β01β
ATTRS{supports_autosuspend}==β1β
looking at parent device β/devices/pci0000:00/0000:00:02.0/usb2/2-2β:
KERNELS==β2-2β
SUBSYSTEMS==βusbβ
DRIVERS==βusbβ
ATTRS{authorized}==β1β
ATTRS{avoid_reset_quirk}==β0β
ATTRS{bConfigurationValue}==β1β
ATTRS{bDeviceClass}==β00β
ATTRS{bDeviceProtocol}==β00β
ATTRS{bDeviceSubClass}==β00β
ATTRS{bMaxPacketSize0}==β8β
ATTRS{bMaxPower}==β500mAβ
ATTRS{bNumConfigurations}==β1β
ATTRS{bNumInterfaces}==" 1"
ATTRS{bcdDevice}==β0102β
ATTRS{bmAttributes}==β80β
ATTRS{busnum}==β2β
ATTRS{configuration}==""
ATTRS{devnum}==β6β
ATTRS{devpath}==β2β
ATTRS{idProduct}==β0328β
ATTRS{idVendor}==β0314β
ATTRS{ltm_capable}==βnoβ
ATTRS{manufacturer}==βD_R_Mβ
ATTRS{maxchild}==β0β
ATTRS{product}==βJUYAO Dual Arcadeβ
ATTRS{quirks}==β0x0β
ATTRS{removable}==βunknownβ
ATTRS{speed}==β12β
ATTRS{urbnum}==β23β
ATTRS{version}==" 0.20"
looking at parent device β/devices/pci0000:00/0000:00:02.0/usb2β:
KERNELS==βusb2β
SUBSYSTEMS==βusbβ
DRIVERS==βusbβ
ATTRS{authorized}==β1β
ATTRS{authorized_default}==β1β
ATTRS{avoid_reset_quirk}==β0β
ATTRS{bConfigurationValue}==β1β
ATTRS{bDeviceClass}==β09β
ATTRS{bDeviceProtocol}==β00β
ATTRS{bDeviceSubClass}==β00β
ATTRS{bMaxPacketSize0}==β64β
ATTRS{bMaxPower}==β0mAβ
ATTRS{bNumConfigurations}==β1β
ATTRS{bNumInterfaces}==" 1"
ATTRS{bcdDevice}==β0406β
ATTRS{bmAttributes}==βe0β
ATTRS{busnum}==β2β
ATTRS{configuration}==""
ATTRS{devnum}==β1β
ATTRS{devpath}==β0β
ATTRS{idProduct}==β0001β
ATTRS{idVendor}==β1d6bβ
ATTRS{interface_authorized_default}==β1β
ATTRS{ltm_capable}==βnoβ
ATTRS{manufacturer}==βLinux 4.6.3 ohci_hcdβ
ATTRS{maxchild}==β10β
ATTRS{product}==βOHCI PCI host controllerβ
ATTRS{quirks}==β0x0β
ATTRS{removable}==βunknownβ
ATTRS{serial}==β0000:00:02.0β
ATTRS{speed}==β12β
ATTRS{urbnum}==β136β
ATTRS{version}==" 1.10"
looking at parent device β/devices/pci0000:00/0000:00:02.0β:
KERNELS==β0000:00:02.0β
SUBSYSTEMS==βpciβ
DRIVERS==βohci-pciβ
ATTRS{broken_parity_status}==β0β
ATTRS{class}==β0x0c0310β
ATTRS{consistent_dma_mask_bits}==β32β
ATTRS{d3cold_allowed}==β1β
ATTRS{device}==β0x03f1β
ATTRS{dma_mask_bits}==β32β
ATTRS{driver_override}=="(null)"
ATTRS{enable}==β1β
ATTRS{irq}==β23β
ATTRS{local_cpulist}==β0-3β
ATTRS{local_cpus}==βfβ
ATTRS{msi_bus}==β1β
ATTRS{subsystem_device}==β0x5004β
ATTRS{subsystem_vendor}==β0x1458β
ATTRS{vendor}==β0x10deβ
looking at parent device β/devices/pci0000:00β:
KERNELS==βpci0000:00β
SUBSYSTEMS==""
DRIVERS==""