Hello, I am trying to write a udev configuration file to change the group ownership of the device if the device contains a CCID interface (bInterfaceClass = 11 or 0x0B). I would like to use something like: ATTR{bInterfaceClass}=="0b", GROUP="pcscd" but that does not work. I also tried ATTRS instead of ATTR ATTRS{bInterfaceClass}=="0b", GROUP="pcscd" but it does not work either. One solution I found to work is: ATTRS{bInterfaceClass}=="0b", RUN+="/bin/chgrp pcscd $root/$parent" It looks like the problem is that my rule matches on an attribute of an interface instead of an attribute of the device. Is it possible/supported to use GROUP= in my case? Thanks Some more info: Debian testing/squeeze system kernel 2.6.34-1-686 udev 160-1 $ udevadm monitor --env --kernel --udev KERNEL[1284023092.630235] add /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1 (usb) UDEV_LOG=3 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1 SUBSYSTEM=usb DEVNAME=bus/usb/003/035 DEVTYPE=usb_device DEVICE=/proc/bus/usb/003/035 PRODUCT=8e6/3437/100 TYPE=0/0/0 BUSNUM=003 DEVNUM=035 SEQNUM=1538 MAJOR=189 MINOR=290 KERNEL[1284023092.633197] add /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1/3-1.1:1.0 (usb) UDEV_LOG=3 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1/3-1.1:1.0 SUBSYSTEM=usb DEVTYPE=usb_interface DEVICE=/proc/bus/usb/003/035 PRODUCT=8e6/3437/100 TYPE=0/0/0 INTERFACE=11/0/0 MODALIAS=usb:v08E6p3437d0100dc00dsc00dp00ic0Bisc00ip00 SEQNUM=1539 UDEV [1284023092.642405] add /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1 (usb) UDEV_LOG=3 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1 SUBSYSTEM=usb DEVNAME=/dev/bus/usb/003/035 DEVTYPE=usb_device DEVICE=/proc/bus/usb/003/035 PRODUCT=8e6/3437/100 TYPE=0/0/0 BUSNUM=003 DEVNUM=035 SEQNUM=1538 ID_VENDOR=Gemplus ID_VENDOR_ENC=Gemplus ID_VENDOR_ID=08e6 ID_MODEL=USB_SmartCard_Reader ID_MODEL_ENC=USB\x20SmartCard\x20Reader ID_MODEL_ID=3437 ID_REVISION=0100 ID_SERIAL=Gemplus_USB_SmartCard_Reader ID_BUS=usb ID_USB_INTERFACES=:0b0000: MAJOR=189 MINOR=290 DEVLINKS=/dev/char/189:290 UDEV [1284023092.663831] add /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1/3-1.1:1.0 (usb) UDEV_LOG=3 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1/3-1.1:1.0 SUBSYSTEM=usb DEVTYPE=usb_interface DEVICE=/proc/bus/usb/003/035 PRODUCT=8e6/3437/100 TYPE=0/0/0 INTERFACE=11/0/0 MODALIAS=usb:v08E6p3437d0100dc00dsc00dp00ic0Bisc00ip00 SEQNUM=1539 $ udevadm info --path /devices/pci0000:00/0000:00:1d.1/usb3/3-1 --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:1d.1/usb3/3-1': KERNEL=="3-1" SUBSYSTEM=="usb" DRIVER=="usb" ATTR{configuration}=="" ATTR{bNumInterfaces}==" 1" ATTR{bConfigurationValue}=="1" ATTR{bmAttributes}=="e0" ATTR{bMaxPower}=="100mA" ATTR{urbnum}=="756" ATTR{idVendor}=="04cc" ATTR{idProduct}=="1122" ATTR{bcdDevice}=="0110" ATTR{bDeviceClass}=="09" ATTR{bDeviceSubClass}=="00" ATTR{bDeviceProtocol}=="00" ATTR{bNumConfigurations}=="1" ATTR{bMaxPacketSize0}=="64" ATTR{speed}=="12" ATTR{busnum}=="3" ATTR{devnum}=="2" ATTR{devpath}=="1" ATTR{version}==" 1.10" ATTR{maxchild}=="5" ATTR{quirks}=="0x0" ATTR{avoid_reset_quirk}=="0" ATTR{authorized}=="1" looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3': KERNELS=="usb3" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="e0" ATTRS{bMaxPower}==" 0mA" ATTRS{urbnum}=="34" 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}=="3" ATTRS{devnum}=="1" ATTRS{devpath}=="0" ATTRS{version}==" 1.10" ATTRS{maxchild}=="2" ATTRS{quirks}=="0x0" ATTRS{avoid_reset_quirk}=="0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="Linux 2.6.34-1-686 uhci_hcd" ATTRS{product}=="UHCI Host Controller" ATTRS{serial}=="0000:00:1d.1" ATTRS{authorized_default}=="1" looking at parent device '/devices/pci0000:00/0000:00:1d.1': KERNELS=="0000:00:1d.1" SUBSYSTEMS=="pci" DRIVERS=="uhci_hcd" ATTRS{vendor}=="0x8086" ATTRS{device}=="0x27c9" ATTRS{subsystem_vendor}=="0x1028" ATTRS{subsystem_device}=="0x01ad" ATTRS{class}=="0x0c0300" ATTRS{irq}=="22" ATTRS{local_cpus}=="ffffffff" ATTRS{local_cpulist}=="0-31" ATTRS{modalias}=="pci:v00008086d000027C9sv00001028sd000001ADbc0Csc03i00" ATTRS{dma_mask_bits}=="32" ATTRS{consistent_dma_mask_bits}=="32" ATTRS{broken_parity_status}=="0" ATTRS{msi_bus}=="" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" $ udevadm info --path /devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1/3-1.1:1.0 --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:1d.1/usb3/3-1/3-1.1/3-1.1:1.0': KERNEL=="3-1.1:1.0" SUBSYSTEM=="usb" DRIVER=="" ATTR{bInterfaceNumber}=="00" ATTR{bAlternateSetting}==" 0" ATTR{bNumEndpoints}=="03" ATTR{bInterfaceClass}=="0b" ATTR{bInterfaceSubClass}=="00" ATTR{bInterfaceProtocol}=="00" ATTR{modalias}=="usb:v08E6p3437d0100dc00dsc00dp00ic0Bisc00ip00" ATTR{supports_autosuspend}=="1" looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1.1': KERNELS=="3-1.1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="a0" ATTRS{bMaxPower}=="200mA" ATTRS{urbnum}=="9" ATTRS{idVendor}=="08e6" ATTRS{idProduct}=="3437" ATTRS{bcdDevice}=="0100" ATTRS{bDeviceClass}=="00" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="8" ATTRS{speed}=="12" ATTRS{busnum}=="3" ATTRS{devnum}=="35" ATTRS{devpath}=="1.1" ATTRS{version}==" 1.10" ATTRS{maxchild}=="0" ATTRS{quirks}=="0x0" ATTRS{avoid_reset_quirk}=="0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="Gemplus" ATTRS{product}=="USB SmartCard Reader" looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3/3-1': KERNELS=="3-1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="e0" ATTRS{bMaxPower}=="100mA" ATTRS{urbnum}=="756" ATTRS{idVendor}=="04cc" ATTRS{idProduct}=="1122" ATTRS{bcdDevice}=="0110" ATTRS{bDeviceClass}=="09" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{speed}=="12" ATTRS{busnum}=="3" ATTRS{devnum}=="2" ATTRS{devpath}=="1" ATTRS{version}==" 1.10" ATTRS{maxchild}=="5" ATTRS{quirks}=="0x0" ATTRS{avoid_reset_quirk}=="0" ATTRS{authorized}=="1" looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3': KERNELS=="usb3" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="e0" ATTRS{bMaxPower}==" 0mA" ATTRS{urbnum}=="34" 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}=="3" ATTRS{devnum}=="1" ATTRS{devpath}=="0" ATTRS{version}==" 1.10" ATTRS{maxchild}=="2" ATTRS{quirks}=="0x0" ATTRS{avoid_reset_quirk}=="0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="Linux 2.6.34-1-686 uhci_hcd" ATTRS{product}=="UHCI Host Controller" ATTRS{serial}=="0000:00:1d.1" ATTRS{authorized_default}=="1" looking at parent device '/devices/pci0000:00/0000:00:1d.1': KERNELS=="0000:00:1d.1" SUBSYSTEMS=="pci" DRIVERS=="uhci_hcd" ATTRS{vendor}=="0x8086" ATTRS{device}=="0x27c9" ATTRS{subsystem_vendor}=="0x1028" ATTRS{subsystem_device}=="0x01ad" ATTRS{class}=="0x0c0300" ATTRS{irq}=="22" ATTRS{local_cpus}=="ffffffff" ATTRS{local_cpulist}=="0-31" ATTRS{modalias}=="pci:v00008086d000027C9sv00001028sd000001ADbc0Csc03i00" ATTRS{dma_mask_bits}=="32" ATTRS{consistent_dma_mask_bits}=="32" ATTRS{broken_parity_status}=="0" ATTRS{msi_bus}=="" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" -- Dr. Ludovic Rousseau -- To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html