2007-06-18 15:42:24

by Joerg

[permalink] [raw]
Subject: Stable identification of identical USB hardware

Hello all,
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?

Thanks in advance and kind regards
Joerg

__________________________________________________
Do You Yahoo!?
Sie sind Spam leid? Yahoo! Mail verf?gt ?ber einen herausragenden Schutz gegen Massenmails.
http://mail.yahoo.com


2007-06-18 17:00:37

by Michael Mauch

[permalink] [raw]
Subject: Re: Stable identification of identical USB hardware

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?

You should be able to distinguish the devices with udev. Have a look at
http://www.reactivated.net/writing_udev_rules.html

If that doesn't help, I would like to propose that you ask again in
the de.comp.os.unix.linux.hardware or comp.os.linux.hardware newsgroups.

Regards...
Michael

2007-06-18 17:13:51

by Lee Revell

[permalink] [raw]
Subject: Re: Stable identification of identical USB hardware

On 6/18/07, Michael Mauch <[email protected]> wrote:
> > 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?
>
> You should be able to distinguish the devices with udev. Have a look at
> http://www.reactivated.net/writing_udev_rules.html
>

Isn't this something that the distro should do for you? It's insane
to expect users to write udev rules for such basic functionality...

Lee

2007-06-18 20:33:46

by Greg KH

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

On Mon, Jun 18, 2007 at 08:35:35AM -0700, Joerg Pommnitz wrote:
> Hello all,
> 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.

hope this helps,
greg k-h

2007-06-19 09:09:18

by Kay Sievers

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

On 6/18/07, Greg KH <[email protected]> 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