Thanks Eric--that was it exactly. When I use the --attribute-walk option, I get all the right attributes and yes, the name of the serial attribute is "serial" not "idSerial". Also, my vendor attribute is "vendor", not "idVendor". Once I made these changes, your version of the rule works A-OK. --patrick On 03/16/2011 10:59 AM, Eric Perko wrote: > > Since udev can match attributes from the lowest device level (ie > the driver (ftdi_sio) ) or one level up the parent chain (so, say, > generic USB at once point or even up to the PCI bus the USB > connects to), you will also want to include the parent devices. To > do this, include the "--attribute-walk" option when you run the > udevadm query. See the attached udevadm output for a sample when I > run "udevadm info -q all --attribute-walk" against my UVC webcam. > Note that there are a number of "parent devices" that are more > generic, such as the USB host controller in my PC. See > http://reactivated.net/writing_udev_rules.html#udevinfo for the > rules about using multiple parent devices when matching attributes > in your udev rules. The short of it is that you have to pick a > single parent device to match against. > > Now, to address your earlier difficulty with the modification to > that rule. I don't have an FTDI device handy, so I may be wrong, > but is the serial you are trying to match actually on the same > "parent device" as the idVendor attribute you are also matching > against? If it's on a different parent device, that would be the > source of the problem. If you aren't sure about it from the output > (or if it looks correct), post the output of udevadm that you had > above, but including the "--attribute-walk" option as well and > I'll see if I spot anything weird. > > Though, thinking about it, I think the serial attribute would have > to be on whatever device got selected by "idVendor" for me to > include it later on in the %s{serial} bit in my symlink... Is it > actually called "idSerial" or "serial" in the output from adding > "--attribute-walk"? > > > Well... I was just handed an Arduino I had forgotten was around and > checked udevadm. The issue is that the attribute you want to match on > is called "serial" not "idSerial". Change your modification to the > udev rule I posted accordingly and I would expect it to work just fine. > > I definitely prefer the --attribute-walk version of udevadm since it > outputs the actual names of the attributes (as udevinfo did) that you > can match on in your udev rules. > > - Eric >