Re: [ros-users] ROS driver supporting Sparkfun IMU

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: User discussions
Date:  
To: User discussions
Subject: Re: [ros-users] ROS driver supporting Sparkfun IMU
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
>