yvan@sound:~$ udevadm test $(udevadm info --name="/bus/usb/005/010" --query=path) run_command: calling: test udevadm_test: version 141 This program is for debugging only, it does not run any program, specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. udev_rules_new: rule file basename '/etc/udev/rules.d/42-madfuload.rules' already added, ignoring '/lib/udev/rules.d/42-madfuload.rules' parse_file: reading '/lib/udev/rules.d/40-alsa.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-hplip.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-ia64.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-infiniband.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-isdn.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-kino.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-libpisock9.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-pilot-links.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-ppc.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-xserver-xorg-input-wacom.rules' as rules file parse_file: reading '/lib/udev/rules.d/40-zaptel.rules' as rules file parse_file: reading '/etc/udev/rules.d/42-madfuload.rules' as rules file parse_file: reading '/lib/udev/rules.d/45-fuse.rules' as rules file parse_file: reading '/lib/udev/rules.d/45-hpdjconsole.rules' as rules file parse_file: reading '/lib/udev/rules.d/45-libmtp8.rules' as rules file parse_file: reading '/lib/udev/rules.d/50-firmware.rules' as rules file parse_file: reading '/lib/udev/rules.d/50-udev-default.rules' as rules file parse_file: reading '/lib/udev/rules.d/60-cdrom_id.rules' as rules file parse_file: reading '/lib/udev/rules.d/60-persistent-input.rules' as rules file parse_file: reading '/lib/udev/rules.d/60-persistent-serial.rules' as rules file parse_file: reading '/lib/udev/rules.d/60-persistent-storage-tape.rules' as rules file parse_file: reading '/lib/udev/rules.d/60-persistent-storage.rules' as rules file parse_file: reading '/lib/udev/rules.d/60-persistent-v4l.rules' as rules file parse_file: reading '/lib/udev/rules.d/61-persistent-storage-edd.rules' as rules file parse_file: reading '/lib/udev/rules.d/62-bluez-hid2hci.rules' as rules file parse_file: reading '/lib/udev/rules.d/64-device-mapper.rules' as rules file parse_file: reading '/lib/udev/rules.d/65-dmsetup.rules' as rules file parse_file: reading '/lib/udev/rules.d/65-mdadm.vol_id.rules' as rules file parse_file: reading '/etc/udev/rules.d/70-persistent-cd.rules' as rules file parse_file: reading '/etc/udev/rules.d/70-persistent-net.rules' as rules file parse_file: reading '/lib/udev/rules.d/75-cd-aliases-generator.rules' as rules file parse_file: reading '/lib/udev/rules.d/75-persistent-net-generator.rules' as rules file parse_file: reading '/lib/udev/rules.d/79-fstab_import.rules' as rules file parse_file: reading '/lib/udev/rules.d/80-drivers.rules' as rules file parse_file: reading '/lib/udev/rules.d/85-alsa-utils.rules' as rules file parse_file: reading '/etc/udev/rules.d/85-dmraid.rules' as rules file parse_file: reading '/lib/udev/rules.d/85-hdparm.rules' as rules file parse_file: reading '/lib/udev/rules.d/85-hplj10xx.rules' as rules file parse_file: reading '/lib/udev/rules.d/85-hwclock.rules' as rules file parse_file: reading '/lib/udev/rules.d/85-ifupdown.rules' as rules file parse_file: reading '/lib/udev/rules.d/85-mdadm.rules' as rules file parse_file: reading '/lib/udev/rules.d/85-pcmcia.rules' as rules file parse_file: reading '/lib/udev/rules.d/85-regulatory.rules' as rules file parse_file: reading '/lib/udev/rules.d/90-hal.rules' as rules file parse_file: reading '/lib/udev/rules.d/95-udev-late.rules' as rules file udev_rules_new: rules use 46260 bytes tokens (3855 * 12 bytes), 13664 bytes buffer udev_rules_new: temporary index used 18620 bytes (931 * 20 bytes) udev_device_new_from_syspath: device 0x7f9963eeb660 has devpath '/devices/pci0000:00/0000:00:1a.2/usb5/5-2' udev_device_new_from_syspath: device 0x7f9963efbf10 has devpath '/devices/pci0000:00/0000:00:1a.2/usb5/5-2' udev_device_read_db: device 0x7f9963efbf10 filled with db symlink data '/dev/bus/usb/005/010' udev_device_new_from_syspath: device 0x7f9963efc890 has devpath '/devices/pci0000:00/0000:00:1a.2/usb5' udev_device_new_from_syspath: device 0x7f9963efcb70 has devpath '/devices/pci0000:00/0000:00:1a.2' udev_device_new_from_syspath: device 0x7f9963efce20 has devpath '/devices/pci0000:00' udev_rules_apply_to_event: RUN '/usr/local/sbin/madfuload -l -3 -f /usr/share/usb/maudio/ma008100.bin -D $ENV{DEVNAME}' /etc/udev/rules.d/42-madfuload.rules:15 udev_rules_apply_to_event: LINK 'char/189:521' /lib/udev/rules.d/50-udev-default.rules:5 udev_rules_apply_to_event: MODE 0664 /lib/udev/rules.d/50-udev-default.rules:53 udev_rules_apply_to_event: NAME 'bus/usb/005/010' /lib/udev/rules.d/50-udev-default.rules:53 udev_rules_apply_to_event: RUN 'socket:@/org/freedesktop/hal/udev_event' /lib/udev/rules.d/90-hal.rules:2 udev_device_update_db: create db link (bus/usb/005/010 char/189:521) udev_node_add: creating device node '/dev/bus/usb/005/010', devnum=189:521, mode=0664, uid=0, gid=0 udev_node_mknod: preserve file '/dev/bus/usb/005/010', because it has correct dev_t update_link: '/dev/char/189:521' with target '/dev/bus/usb/005/010' has the highest priority 0, create it node_symlink: preserve already existing symlink '/dev/char/189:521' to '../bus/usb/005/010' udevadm_test: run: '/usr/local/sbin/madfuload -l -3 -f /usr/share/usb/maudio/ma008100.bin -D /dev/bus/usb/005/010' udevadm_test: run: 'socket:@/org/freedesktop/hal/udev_event' yvan@sound:~$ udevadm info --name="/bus/usb/005/010" --query=path/devices/pci0000:00/0000:00:1a.2/usb5/5-2 yvan@sound:~$ udevadm info --name="/bus/usb/005/010" --query=all P: /devices/pci0000:00/0000:00:1a.2/usb5/5-2 N: bus/usb/005/010 S: char/189:521 E: UDEV_LOG=3 E: DEVPATH=/devices/pci0000:00/0000:00:1a.2/usb5/5-2 E: MAJOR=189 E: MINOR=521 E: DEVTYPE=usb_device E: DRIVER=usb E: DEVICE=/proc/bus/usb/005/010 E: PRODUCT=763/2808/100 E: TYPE=254/1/0 E: BUSNUM=005 E: DEVNUM=010 E: DEVNAME=/dev/bus/usb/005/010 E: DEVLINKS=/dev/char/189:521 und:~$ udevadm info --name="/bus/usb/005/010" --attribute-walk 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:1a.2/usb5/5-2': KERNEL=="5-2" SUBSYSTEM=="usb" DRIVER=="usb" ATTR{configuration}=="" ATTR{bNumInterfaces}==" 1" ATTR{bConfigurationValue}=="1" ATTR{bmAttributes}=="40" ATTR{bMaxPower}==" 0mA" ATTR{urbnum}=="10" ATTR{idVendor}=="0763" ATTR{idProduct}=="2808" ATTR{bcdDevice}=="0100" ATTR{bDeviceClass}=="fe" ATTR{bDeviceSubClass}=="01" ATTR{bDeviceProtocol}=="00" ATTR{bNumConfigurations}=="1" ATTR{bMaxPacketSize0}=="64" ATTR{speed}=="12" ATTR{busnum}=="5" ATTR{devnum}=="10" ATTR{version}==" 1.00" ATTR{maxchild}=="0" ATTR{quirks}=="0x0" ATTR{authorized}=="1" ATTR{manufacturer}=="Unknown" ATTR{product}=="Unknown" looking at parent device '/devices/pci0000:00/0000:00:1a.2/usb5': KERNELS=="usb5" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="e0" ATTRS{bMaxPower}==" 0mA" ATTRS{urbnum}=="207" ATTRS{idVendor}=="1d6b" ATTRS{idProduct}=="0001" ATTRS{bcdDevice}=="0206" ATTRS{bDeviceClass}=="09" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{speed}=="12" ATTRS{busnum}=="5" ATTRS{devnum}=="1" ATTRS{version}==" 1.10" ATTRS{maxchild}=="2" ATTRS{quirks}=="0x0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="Linux 2.6.28-13-generic uhci_hcd" ATTRS{product}=="UHCI Host Controller" ATTRS{serial}=="0000:00:1a.2" ATTRS{authorized_default}=="1" looking at parent device '/devices/pci0000:00/0000:00:1a.2': KERNELS=="0000:00:1a.2" SUBSYSTEMS=="pci" DRIVERS=="uhci_hcd" ATTRS{vendor}=="0x8086" ATTRS{device}=="0x3a39" ATTRS{subsystem_vendor}=="0x8086" ATTRS{subsystem_device}=="0x0024" ATTRS{class}=="0x0c0300" ATTRS{irq}=="18" ATTRS{local_cpus}=="ffffffff,ffffffff" ATTRS{local_cpulist}=="0-63" ATTRS{modalias}=="pci:v00008086d00003A39sv00008086sd00000024bc0Csc03i00" ATTRS{broken_parity_status}=="0" ATTRS{msi_bus}=="" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS==""