I'm trying to solve a persistent video device naming problem having to do with myth, it requires the /dev/video? to be consistent on each startup. I have what looks like a solution but do not understand exactly what it means, can anyone who understands udev shed some light on what this is doing and how it's doing it? solution : /etc/udev/rules.d/51-setup-video KERNEL=="video[0-9]*",ATTR{name}=="ivtv0 encoder MPG",DRIVERS=="ivtv",NAME="video0" KERNEL=="video[0-9]*",ATTR{name}=="gspca main drive",DRIVERS=="usb",NAME="video1" Those are two lines split by evolution, they are derived by the following generated info: Udevinfo 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:08.0/0000:01:08.0/video4linux/video0': KERNEL=="video0" SUBSYSTEM=="video4linux" DRIVER=="" ATTR{name}=="ivtv0 encoder MPG" ATTR{index}=="0" looking at parent device '/devices/pci0000:00/0000:00:08.0/0000:01:08.0': KERNELS=="0000:01:08.0" SUBSYSTEMS=="pci" DRIVERS=="ivtv" ATTRS{vendor}=="0x4444" ATTRS{device}=="0x0016" ATTRS{subsystem_vendor}=="0x0070" ATTRS{subsystem_device}=="0x8003" ATTRS{class}=="0x040000" ATTRS{irq}=="16" ATTRS{local_cpus}=="00000000,00000000,00000000,00000001" ATTRS{local_cpulist}=="0" ATTRS{modalias}=="pci:v00004444d00000016sv00000070sd00008003bc04sc00i00" ATTRS{numa_node}=="0" ATTRS{enable}=="1" ATTRS{broken_parity_status}=="0" ATTRS{msi_bus}=="" looking at parent device '/devices/pci0000:00/0000:00:08.0': KERNELS=="0000:00:08.0" SUBSYSTEMS=="pci" DRIVERS=="" ATTRS{vendor}=="0x10de" ATTRS{device}=="0x006c" ATTRS{subsystem_vendor}=="0x0000" ATTRS{subsystem_device}=="0x0000" ATTRS{class}=="0x060400" ATTRS{irq}=="0" ATTRS{local_cpus}=="00000000,00000000,00000000,00000001" ATTRS{local_cpulist}=="0" ATTRS{modalias}=="pci:v000010DEd0000006Csv00000000sd00000000bc06sc04i00" ATTRS{numa_node}=="0" ATTRS{enable}=="1" ATTRS{broken_parity_status}=="0" ATTRS{msi_bus}=="1" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" and: Udevinfo 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.2/usb1/1-5/1-5.2/video4linux/video1': KERNEL=="video1" SUBSYSTEM=="video4linux" DRIVER=="" ATTR{name}=="gspca main driver" ATTR{index}=="0" looking at parent device '/devices/pci0000:00/0000:00:02.2/usb1/1-5/1-5.2': KERNELS=="1-5.2" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 3" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="a0" ATTRS{bMaxPower}=="100mA" ATTRS{urbnum}=="1218" ATTRS{idVendor}=="046d" ATTRS{idProduct}=="08d7" ATTRS{bcdDevice}=="0100" ATTRS{bDeviceClass}=="00" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="8" ATTRS{speed}=="12" ATTRS{busnum}=="1" ATTRS{devnum}=="4" ATTRS{version}==" 1.10" ATTRS{maxchild}=="0" ATTRS{quirks}=="0x0" ATTRS{authorized}=="1" looking at parent device '/devices/pci0000:00/0000:00:02.2/usb1/1-5': KERNELS=="1-5" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="e0" ATTRS{bMaxPower}==" 2mA" ATTRS{urbnum}=="74" ATTRS{idVendor}=="050d" ATTRS{idProduct}=="0416" ATTRS{bcdDevice}=="0000" ATTRS{bDeviceClass}=="09" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="02" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{speed}=="480" ATTRS{busnum}=="1" ATTRS{devnum}=="2" ATTRS{version}==" 2.00" ATTRS{maxchild}=="7" ATTRS{quirks}=="0x0" ATTRS{authorized}=="1" looking at parent device '/devices/pci0000:00/0000:00:02.2/usb1': KERNELS=="usb1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="e0" ATTRS{bMaxPower}==" 0mA" ATTRS{urbnum}=="48" ATTRS{idVendor}=="1d6b" ATTRS{idProduct}=="0002" ATTRS{bcdDevice}=="0206" ATTRS{bDeviceClass}=="09" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{speed}=="480" ATTRS{busnum}=="1" ATTRS{devnum}=="1" ATTRS{version}==" 2.00" ATTRS{maxchild}=="6" ATTRS{quirks}=="0x0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="Linux 2.6.27.21-0.1-pae ehci_hcd" ATTRS{product}=="EHCI Host Controller" ATTRS{serial}=="0000:00:02.2" ATTRS{authorized_default}=="1" looking at parent device '/devices/pci0000:00/0000:00:02.2': KERNELS=="0000:00:02.2" SUBSYSTEMS=="pci" DRIVERS=="ehci_hcd" ATTRS{vendor}=="0x10de" ATTRS{device}=="0x0068" ATTRS{subsystem_vendor}=="0x1458" ATTRS{subsystem_device}=="0x5004" ATTRS{class}=="0x0c0320" ATTRS{irq}=="22" ATTRS{local_cpus}=="00000000,00000000,00000000,00000001" ATTRS{local_cpulist}=="0" ATTRS{modalias}=="pci:v000010DEd00000068sv00001458sd00005004bc0Csc03i20" ATTRS{numa_node}=="0" ATTRS{enable}=="1" ATTRS{broken_parity_status}=="0" ATTRS{msi_bus}=="" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org