linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kay Sievers <kay.sievers@vrfy.org>
To: linux-hotplug@vger.kernel.org
Subject: Re: Matching different levels in sysfs
Date: Thu, 26 Jan 2006 01:48:17 +0000	[thread overview]
Message-ID: <20060126014817.GB1652@vrfy.org> (raw)
In-Reply-To: <20060126002922.GA833500@hiwaay.net>

On Wed, Jan 25, 2006 at 06:29:22PM -0600, Chris Adams wrote:
> I've got a USB device that I'd like to create a symlink for.  It is a
> USB-to-serial adapter board that I've used to hook up a GPS interface,
> so I'd like the GPS to show up as /dev/gps (I've got multiple
> USB-to-serial adapters, so tracking the correct /dev/ttyUSB and getting
> the permissions set correctly is otherwise a PITA).
> 
> The problem is that this particular USB-to-serial adapter has two serial
> ports and the GPS interface is only hooked up to one.  I can match the
> USB device by serial number, but that is at a different level from the
> individual port (the serial number is for the whole device).  udevinfo
> shows (interesting sections):
> 
> ########################################################################
> # udevinfo -a -p /sys/class/tty/ttyUSB2
> 
> udevinfo starts with the device the node belongs to and then walks up the
> device chain, to print for every device found, all possibly useful attributes
> in the udev key format.
> Only attributes within one device section may be used together in one rule,
> to match the device for which the node will be created.
> 
>   looking at class device '/sys/class/tty/ttyUSB2':
>     SYSFS{dev}="188:2"
> 
> follow the class device's "device"
>   looking at the device chain at '/sys/devices/pci0000:00/0000:00:10.4/usb1/1-6/1-6.1/1-6.1:1.1/ttyUSB2':
>     BUS="usb-serial"
>     ID="ttyUSB2"
>   looking at the device chain at '/sys/devices/pci0000:00/0000:00:10.4/usb1/1-6/1-6.1/1-6.1:1.1':
>     BUS="usb"
>     ID="1-6.1:1.1"
>     SYSFS{bAlternateSetting}=" 0"
>     SYSFS{bInterfaceClass}="ff"
>     SYSFS{bInterfaceNumber}="01"
>     SYSFS{bInterfaceProtocol}="ff"
>     SYSFS{bInterfaceSubClass}="ff"
>     SYSFS{bNumEndpoints}="02"
>     SYSFS{interface}="DLP2232M"
>     SYSFS{modalias}="usb:v0403p6010d0500dc00dsc00dp00icFFiscFFipFF"
> 
>   looking at the device chain at '/sys/devices/pci0000:00/0000:00:10.4/usb1/1-6/1-6.1':
>     BUS="usb"
>     ID="1-6.1"
>     SYSFS{bConfigurationValue}="1"
>     SYSFS{bDeviceClass}="00"
>     SYSFS{bDeviceProtocol}="00"
>     SYSFS{bDeviceSubClass}="00"
>     SYSFS{bMaxPower}="274mA"
>     SYSFS{bNumConfigurations}="1"
>     SYSFS{bNumInterfaces}=" 2"
>     SYSFS{bcdDevice}="0500"
>     SYSFS{bmAttributes}="80"
>     SYSFS{devnum}="6"
>     SYSFS{idProduct}="6010"
>     SYSFS{idVendor}="0403"
>     SYSFS{latency_timer}="16"
>     SYSFS{latency_timer}="16"
>     SYSFS{manufacturer}="FTDI"
>     SYSFS{maxchild}="0"
>     SYSFS{product}="DLP2232M"
>     SYSFS{serial}="FTOIQ4MN"
>     SYSFS{speed}="12"
>     SYSFS{version}=" 2.00"
> ########################################################################
> 
> I'd like to match SYSFS{bInterfaceNumber}="01" and
> SYSFS{serial}="FTOIQ4MN", but I don't see how.

Udev does not match on different levels with built-in logic, but you should be
able to use something like: SYSFS{bInterfaceNumber}="01", SYSFS{../serial}="FTOIQ4MN".

That makes you dependent on the hierarchy in /sys/devices, which is not guaranteed
to be stable if the kernel code may be changed, but it's very unlikely in this example,
that the usb sysfs layout will be changed, so you should be pretty safe with the "../".

Kay


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid\x103432&bid#0486&dat\x121642
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

  reply	other threads:[~2006-01-26  1:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-26  0:29 Matching different levels in sysfs Chris Adams
2006-01-26  1:48 ` Kay Sievers [this message]
2006-01-26 19:40 ` Andrey Borzenkov
2006-01-28  1:29 ` Chris Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060126014817.GB1652@vrfy.org \
    --to=kay.sievers@vrfy.org \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).