[ros-users] ROS driver supporting Sparkfun IMU

Patrick Goebel patrick at pirobot.org
Wed Mar 16 18:16:05 UTC 2011


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20110316/eb028a9e/attachment-0003.html>


More information about the ros-users mailing list