From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Pitt Date: Wed, 22 Dec 2010 08:51:13 +0000 Subject: Re: Udev rule $attr substitution Message-Id: <20101222085113.GB2227@piware.de> List-Id: References: <4D10F63F.9030005@draisberghof.de> In-Reply-To: <4D10F63F.9030005@draisberghof.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org Hello Josua, Josua Dietze [2010-12-21 21:25 +0100]: > I found the man page (well, xml file) in the git tree and just added > an ATTRS match to the top level USB device. > > This worked: > KERNEL="ttyUSB*", ATTRS{bNumConfigurations}="*", RUN+="myprog %p > %s{idVendor} %s{idProduct}" Right, you need to "select" the parent device of which you need the id* attribute. > But I might add that there is certainly some documentation lacking > on this one, practially everything I found was outdated or > inaccurate ... This is indeed a common trap, so some time ago I tried to point this out more clearly in the manpage: $attr{file}, %s{file} The value of a sysfs attribute found at the device, where all keys of the rule have matched. If the matching device does not have such an attribute, and a previous KERNELS, SUBSYSTEMS, DRIVERS, or ATTRS test selected a parent device, use the attribute from that parent device. This tries to point out that this won't match attributes from any parent device. Do you think this paragraph is unclear? If so, do you have a suggestion how to improve it? Or did you not see it in the first place? Thank you, Martin -- Martin Pitt | http://www.piware.de Ubuntu Developer (www.ubuntu.com) | Debian Developer (www.debian.org)