From: J McBane <jmcbane@grandecom.net>
To: linux-hotplug@vger.kernel.org
Subject: Re: How do assign specific nodes to 2-port USB-to-serial adapter?
Date: Wed, 19 Oct 2005 17:41:23 +0000 [thread overview]
Message-ID: <1129743683.4356854363901@webmail.grandecom.net> (raw)
In-Reply-To: <1129675265.43557a0137b76@webmail.grandecom.net>
Quoting Oli <ocomber@cmedresearch.com>:
> On Tue, 2005-10-18 at 20:47 -0500, J McBane wrote:
> > Oli wrote:
> >
> > >Hey J,
> > >
> > >On Tue, 2005-10-18 at 17:41 -0500, J McBane wrote:
> > >
> > >
> > >>Greetings,
> > >>
> > >>My USB-to-serial adapter (gives me 2 serial ports) is currently being
> named
> > >>ttyUSB0 and ttyUSB1. I would like to change the name of the nodes to
> test0 and
> > >>test1, for example.
> > >>
> > >>I understand how to normally accomplish this, except this device shares
> the same
> > >>serial number and ID, according to "udevinfo -a -p
> /sys/class/tty/ttyUSB0" and
> > >>"udevinfo -a -p /sys/class/tty/ttyUSB1".
> > >>
> > >>I don't know how to tell udev/hotplug how to differentiate between the
> two
> > >>serial ports.
> > >>
> > >>The best I can come up with is the following, which only gives me a test0
> node
> > >>(and no ttyUSB nodes):
> > >>BUS="usb", SYSFS{serial}="V32408622-0", NAME="test0"
> > >>BUS="usb", SYSFS{serial}="V32408622-0", NAME="test1"
> > >>
> > >>
> > >>
> > >
> > >You could try a little something like this:
> > >
> > >BUS="usb", SYSFS{serial}="V32408622-0", NAME="%k", SYMLINK="test%n"
> > >
> > >Or if you're feeling cheeky, maybe you could:
> > >
> > >BUS="usb", SYSFS{serial}="V32408622-0", NAME="%k", SYMLINK="%s{serial}%
> > >n"
> > >
> > >With a bit of digging around in sysfs, I'm sure you could find something
> > >more meaningful to put in the symlink name than 'serial'.
> > >
> > >You're probably being a bit restrictive by putting the whole serial in
> > >there. It'd be better to use something like model number.
> > >
> > >Have a look at the udev manual page. All sorts of fun stuff in
> > >there :0)
> > >
> > >Check the version of udev you're running too - I know the '%s' stuff was
> > >patched a bit some time ago - v0.75ish, IIRC ?
> > >
> > >Also note that the rules will (I think) stop at the first match. This
> > >is why your test1 device never gets created.
> > >
> > >Hope this helps.
> > >
> > >Cheers,
> > >-Oli
> > >
> > >
> > >
> > >
> > >
> > >
> > Oli,
> >
> Hi J,
>
> > I hope you don't mind me replying directly to you, as to not spam the list.
>
> Not a problem :0) I've put the list back on this reply though, so
> everyone can jump in and give you some better advice :0)
>
> >
> > I noticed %s in the udev man page but wasn't sure how to "use it".
> > There were no examples of %s (I like examples).
>
> Yeah, the examples for that one are a bit thin on the ground. It works
> exactly like the sysfs{attribute} rule, except it substitutes the value
> into the name or symlink.
>
> >
> > Something I didn't mention is that my device actually has 4 serial ports
> > (two 2-port devices in one box).
>
> Righto.
>
> >
> > udev/hotplug sees two devices, each with a separate serial number, but
> > the same "model number", so I don't think I'll be able to use the model
> > number.
>
> If the device is well behaved, it should initialise the ports in the
> same order each time. When you use %k, it substitutes the kernel device
> number - eg, 1 for hda1, 2 for hda2 etc - and they'll always refer to
> the same port.
>
> You can use the model number with a %k on the end to get different
> devices/symlinks created from the same rule. The trick is finding a
> sysfs attribute that is meaningful to you - maybe the make of the
> board..?
>
> Or forget that, and use usbserial%k to get usbserial1, usbserial2 etc
>
> >
> > Thanks for the prompt reply and suggestion!
>
> No probs :0)
>
> >
> > Cheers,
> >
> > J McBane
>
>
"If the device is well behaved, it should initialise the ports in the same order
each time."
That's just it. I guess the device is not well behaved. Sometimes serial ports
1&2 are named ttyUSB0&ttyUSB1 and serial ports 3&4 are named ttyUSB2&ttyUSB3 (as
one would expect). But sometimes the opposite happens, where serial ports 3&4
are named ttyUSB0&ttyUSB1 and serial ports 1&2 are named ttyUSB2&ttyUSB3.
For some reason, udev/hotplug is not consistently seeing/naming each of these
2-port "sub devices".
Because of this behavior, I don't think your suggestions will help, because it's
based on the order the devices are seen/named. I actually just tried them and
they didn't work. I know that the serial number ending with "-0" is the device
with serial ports 1&2, so I'm basically trying to find a way to tell
udev/hotplug "work with the device ending with serial number "-0" first".
I will try your latest suggestion "usbserial%k to get usbserial1, usbserial2
etc" and let you know what happens.
What mechanism controls the order of which devices are detected/seen/named? It
seems that this is what the issue boils down to.
Thanks again for your help, Oli.
J McBane
-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
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
prev parent reply other threads:[~2005-10-19 17:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-18 22:41 How do assign specific nodes to 2-port USB-to-serial adapter? J McBane
2005-10-18 23:35 ` Oli
2005-10-19 15:20 ` Oli
2005-10-19 17:41 ` J McBane [this message]
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=1129743683.4356854363901@webmail.grandecom.net \
--to=jmcbane@grandecom.net \
--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).