[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