udev rules problem with kernel-2.6.12-1.1372_FC3

Robert Nichols rnicholsNOSPAM at comcast.net
Sat Jul 16 16:03:00 UTC 2005


My /etc/udev/rules.d/10-local.rules contains (in one line):

   BUS="usb", SYSFS{idVendor}="067b", SYSFS{idProduct)="2303",
   SYMLINK="UPS"

Under the 2.6.12-1.1372_FC3 kernel this rule never triggers, and the
needed symlink is not created.  This was working fine with kernel
2.6.11-1.35_FC3.

The pl2303.ko and usbserial.ko modules are getting loaded, and the
/dev/ttyUSB0 device works just fine.  It's just the rule to create
the symlink that is not being satisfied.

In both kernels, directory /sys/devices/pci0000:00/0000:00:03.0/usb2/2-1
exists and contains an idVendor file with contents "067b" and an
idProduct file with contents "2303".

With the 2.6.12-1.1372_FC3 kernel, udevinfo returns little information
for the device (lines rewarpped for readability):

   # udevinfo -a -p /class/tty/ttyUSB0
   udevinfo starts with the device the node belongs to and then walks up
   the device chain, to print for every device found, all possibly useful
   attributes in the udev key format.
   Only attributes within one device section may be used together in one
   rule, to match the device for which the node will be created.

     looking at class device '/sys/class/tty/ttyUSB0':
       SYSFS{dev}="188:0"

   follow the class device's "device"
     looking at the device chain at
     '/sys/devices/pci0000:00/0000:00:03.0/usb2/2-1/2-1:1.0/ttyUSB0':
       BUS="usb-serial"
       ID="ttyUSB0"

whereas with the 2.6.11-1.35_FC3 I see much more:

   # udevinfo -a -p /class/tty/ttyUSB0
   udevinfo starts with the device the node belongs to and then walks up
   the device chain, to print for every device found, all possibly useful
   attributes in the udev key format.
   Only attributes within one device section may be used together in one
   rule, to match the device for which the node will be created.

     looking at class device '/sys/class/tty/ttyUSB0':
       SYSFS{dev}="188:0"

   follow the class device's "device"
     looking at the device chain at
     '/sys/devices/pci0000:00/0000:00:03.0/usb2/2-1/2-1:1.0/ttyUSB0':
       BUS="usb-serial"
       ID="ttyUSB0"
       SYSFS{detach_state}="0"

     looking at the device chain at
     '/sys/devices/pci0000:00/0000:00:03.0/usb2/2-1/2-1:1.0':
       BUS="usb"
       ID="2-1:1.0"
       SYSFS{bAlternateSetting}=" 0"
       SYSFS{bInterfaceClass}="ff"
       SYSFS{bInterfaceNumber}="00"
       SYSFS{bInterfaceProtocol}="00"
       SYSFS{bInterfaceSubClass}="00"
       SYSFS{bNumEndpoints}="03"
       SYSFS{detach_state}="0"

     looking at the device chain at
     '/sys/devices/pci0000:00/0000:00:03.0/usb2/2-1':
       BUS="usb"
       ID="2-1"
       SYSFS{bConfigurationValue}="1"
       SYSFS{bDeviceClass}="00"
       SYSFS{bDeviceProtocol}="00"
       SYSFS{bDeviceSubClass}="00"
       SYSFS{bMaxPower}="500mA"
       SYSFS{bNumConfigurations}="1"
       SYSFS{bNumInterfaces}=" 1"
       SYSFS{bcdDevice}="0202"
       SYSFS{bmAttributes}="a0"
       SYSFS{detach_state}="0"
       SYSFS{devnum}="2"
       SYSFS{idProduct}="2303"
       SYSFS{idVendor}="067b"
       SYSFS{maxchild}="0"
       SYSFS{speed}="12"
       SYSFS{version}=" 1.10"

     looking at the device chain at
     '/sys/devices/pci0000:00/0000:00:03.0/usb2':
       BUS="usb"
       ID="usb2"
       SYSFS{bConfigurationValue}="1"
       SYSFS{bDeviceClass}="09"
       SYSFS{bDeviceProtocol}="00"
       SYSFS{bDeviceSubClass}="00"
       SYSFS{bMaxPower}="  0mA"
       SYSFS{bNumConfigurations}="1"
       SYSFS{bNumInterfaces}=" 1"
       SYSFS{bcdDevice}="0206"
       SYSFS{bmAttributes}="c0"
       SYSFS{detach_state}="0"
       SYSFS{devnum}="1"
       SYSFS{idProduct}="0000"
       SYSFS{idVendor}="0000"
       SYSFS{manufacturer}="Linux 2.6.11-1.35_FC3 ohci_hcd"
       SYSFS{maxchild}="3"
       SYSFS{product}="Silicon Integrated Systems [SiS] USB 1.0
       Controller"
       SYSFS{serial}="0000:00:03.0"
       SYSFS{speed}="12"
       SYSFS{version}=" 1.10"

     looking at the device chain at
     '/sys/devices/pci0000:00/0000:00:03.0':
       BUS="pci"
       ID="0000:00:03.0"
       SYSFS{class}="0x0c0310"
       SYSFS{detach_state}="0"
       SYSFS{device}="0x7001"
       SYSFS{irq}="11"
       SYSFS{local_cpus}="1"
       SYSFS{subsystem_device}="0x8087"
       SYSFS{subsystem_vendor}="0x1043"
       SYSFS{vendor}="0x1039"

     looking at the device chain at '/sys/devices/pci0000:00':
       BUS=""
       ID="pci0000:00"
       SYSFS{detach_state}="0"


Another difference is that with the 2.6.12-1.1372_FC3 kernel I see just

   # ls -l /sys/class/tty/ttyUSB0:
   total 0
   -r--r--r--  1 root root 4096 Jul 16 05:25 dev
   lrwxrwxrwx  1 root root    0 Jul 16 05:25 device ->
       ../../../devices/pci0000:00/0000:00:03.0/usb2/2-1/2-1:1.0/ttyUSB0

whereas with the 2.6.11-1.35_FC3 kernel I see:

   # ls -l /sys/class/tty/ttyUSB0
   total 0
   -r--r--r--  1 root root 4096 Jul 16 05:38 dev
   lrwxrwxrwx  1 root root    0 Jul 16 05:38 device ->
       ../../../devices/pci0000:00/0000:00:03.0/usb2/2-1/2-1:1.0/ttyUSB0
   lrwxrwxrwx  1 root root    0 Jul 16 05:38 driver ->
       ../../../bus/usb-serial/drivers/PL-2303




More information about the fedora-list mailing list