Re: [Linux-usb-users] Stable identification of identical USB hardware

From: Kay Sievers
Date: Tue Jun 19 2007 - 05:09:18 EST


On 6/18/07, Greg KH <greg@xxxxxxxxx> wrote:
On Mon, Jun 18, 2007 at 08:35:35AM -0700, Joerg Pommnitz wrote:
> I want to be able to distinguish between two (or more) mostly
> identical USB serial devices. The devices in question are UMTS modems.
> AFAIK they are identical except for the SIM card and the point of
> attachment. Externally the cards are CardBus devices with an
> integrated USB host adapter. The actual UMTS device is (internally)
> connected to the USB host adapter.
>
> If I have to cardbus sockets, how do I get from what I know ("the card
> is in socket 0") to "I have to talk to ttyUSB2 to talk to the card"? I
> suspect I have to follow the thread from /sys/bus/pci to
> /sys/bus/usb/devices, but how exactly?

Walk up the "chain" of devices in sysfs and in udev. The udev man pages
and documentation should show you how to do this. If you have specific
questions about this, please ask them on the linux-hotplug-devel mailing
list.

This should create a symlink for the serial device in the first slot:
KERNEL="ttyUSB*", SUBSYSTEMS=="pcmcia", KERNELS=="0.0",
SYMLINK+="serial-slot0"

You find the keys used with udevinfo. Here is an example for a PCMCIA
CF Memory card:
udevinfo --attribute-walk --name hda4
...

looking at device '/block/hda/hda4':
KERNEL=="hda4"
SUBSYSTEM=="block"
...

looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:04:00.0/0.0':
KERNELS=="0.0"
SUBSYSTEMS=="pcmcia"
DRIVERS=="ide-cs"
...

looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:04:00.0':
KERNELS=="0000:04:00.0"
SUBSYSTEMS=="pci"
DRIVERS=="yenta_cardbus"
...

Kay
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/