Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 04 May 2010 16:27:41 -0400
From:      Mike Tancsa <mike@sentex.net>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: USB serial device naming
Message-ID:  <201005042027.o44KRete011712@lava.sentex.ca>
In-Reply-To: <200912140948.08171.hselasky@c2i.net>
References:  <43EC7D78-31E5-4B86-9316-002AE650727A@tlb.org> <C56E01C7-B772-43F9-B5E1-2DBB2F04D4AE@tlb.org> <20091214074204.GW64905@hoeg.nl> <200912140948.08171.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
At 04:48 AM 12/14/2009, Hans Petter Selasky wrote:
>On Monday 14 December 2009 08:42:04 Ed Schouten wrote:
> > Hello Trevor,
> >
> > * Trevor Blackwell <tlb@tlb.org> wrote:
> > > I can't seem to find a way to match USB serial ports & tty names. I
> > > have two serial USB devices, which I can distinguish easily from
> > > "usbconfig show_ifdrv"
> > >
> > >     <snip>
> > >
> > > and they result in two ttys:
> > >     /dev/cuaU0
> > >     /dev/cuaU1
> >
> > Be sure to keep in mind: the `real' TTY devices are ttyU0 and ttyU1. The
> > cua* devices are callout devices, which unlike the tty* devices don't
> > wait for a carrier detect signal during open().
> >
> > My opinion is that the USB serial driver shouldn't use a bitmask to keep
> > track of which unit number are available, because we've got a nice KPI
> > for that:
> >
> >       http://www.freebsd.org/cgi/man.cgi?query=new_unrhdr
> >
> > Unfortunately I cannot answer your question. Hopefully Hans can. ;-)
>
>That's OK, but the real problem is that TTY is not a visible child of UPLCOM
>for example. I would suggest adding a new IOCTL or maybe you have a better
>idea, where we can pass the "device_get_nameunit()" string, and then TTY can
>store it and pass it to userland.
>
>Also TTY should have a printout in dmesg, which unit is create if this string
>is specified.

I think I am running into a similar problem in this old thread. But 
in my case, I am trying to identify the umodem type device. I have a 
few firewalls in the field that have a USB dialup modem and various 
u3g type devices that are attached.  With the u3g devices in 
particular, they can sometimes show up as /dev/cuaU#.# or just 
/dev/cuaU# where as the modem shows up as /dev/cuaU#.  I have to fire 
up different copies of ppp based on the device and modem they attach 
to. The problem I have is there seems to be no way of knowing which 
physical device corresponds to which /dev/cuaU#.# file interface.

eg
What is the safest way to find out that /dev/cuaU1 is the ZTE stick 
in this case ?  Another model of ZTE shows up as /dev/cuaU2.0 which 
nothing on /dev/cuaU1 oddly enough.

# usbconfig show_ifdrv
ugen0.1: <OHCI root HUB AMD> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
ugen0.1.0: uhub0: <AMD OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1>
ugen1.1: <EHCI root HUB AMD> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
ugen1.1.0: uhub1: <AMD EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1>
ugen1.2: <USB Modem U.S.Robotics> at usbus1, cfg=0 md=HOST spd=HIGH 
(480Mbps) pwr=ON
ugen1.2.0: umodem0: <AltIf0>
ugen0.2: <Back-UPS ES 650 FW:825.B1.D USB FW:B1 APC> at usbus0, cfg=0 
md=HOST spd=LOW (1.5Mbps) pwr=ON
ugen1.3: <ZTE CDMA Technologies MSM ZTE, Incorporated> at usbus1, 
cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
ugen1.3.0: u3g0: <ZTE, Incorporated ZTE CDMA Technologies MSM, class 
0/0, rev 2.00/0.00, addr 3>
ugen1.3.2: umass0: <ZTE, Incorporated ZTE CDMA Technologies MSM, 
class 0/0, rev 2.00/0.00, addr 3>

# ls -l /dev/cuaU*
crw-rw----  1 uucp  dialer  -   0,  78 May  4 16:10 /dev/cuaU0
crw-rw----  1 uucp  dialer  -   0,  79 May  4 09:19 /dev/cuaU0.init
crw-rw----  1 uucp  dialer  -   0,  80 May  4 09:19 /dev/cuaU0.lock
crw-rw----  1 uucp  dialer  -   0, 104 May  4 16:10 /dev/cuaU1
crw-rw----  1 uucp  dialer  -   0, 105 May  4 09:19 /dev/cuaU1.init
crw-rw----  1 uucp  dialer  -   0, 106 May  4 09:19 /dev/cuaU1.lock


nothing in sysctl unfortunately

dev.umodem.0.%desc: AltIf0
dev.umodem.0.%driver: umodem
dev.umodem.0.%location: port=2 interface=0
dev.umodem.0.%pnpinfo: vendor=0x0baf product=0x0303 devclass=0x02 
devsubclass=0x00 sernum="0000002" release=0x0200 intclass=0x02 intsubclass=0x02
dev.umodem.0.%parent: uhub1
dev.u3g.0.%desc: ZTE, Incorporated ZTE CDMA Technologies MSM, class 
0/0, rev 2.00/0.00, addr 3
dev.u3g.0.%driver: u3g
dev.u3g.0.%location: port=1 interface=0
dev.u3g.0.%pnpinfo: vendor=0x19d2 product=0x0031 devclass=0x00 
devsubclass=0x00 sernum="1234567890ABCDEF" release=0x0000 
intclass=0xff intsubclass=0xff

it would be great if there were something like
dev.u3g.0.%fileinterface=/dev/cuaU1

or perhaps somewhere in devinfo ?

              umodem0 pnpinfo vendor=0x0baf product=0x0303 
devclass=0x02 devsubclass=0x00 sernum="0000002" release=0x0200 
intclass=0x02 intsubclass=0x02 at port=2 interface=0
               u3g0 pnpinfo vendor=0x19d2 product=0x0031 
devclass=0x00 devsubclass=0x00 sernum="1234567890ABCDEF" 
release=0x0000 intclass=0xff intsubclass= at port=1 interface=0






ugen1.2: <USB Modem U.S.Robotics> at usbus1, cfg=0 md=HOST spd=HIGH 
(480Mbps) pwr=ON


  Configuration index 0

     bLength = 0x0009
     bDescriptorType = 0x0002
     wTotalLength = 0x0043
     bNumInterfaces = 0x0002
     bConfigurationValue = 0x0002
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x0080
     bMaxPower = 0x00b4

     Interface 0
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0001
       bInterfaceClass = 0x0002
       bInterfaceSubClass = 0x0002
       bInterfaceProtocol = 0x0001
       iInterface = 0x0005  <AltIf0>

       Additional Descriptor

       bLength = 0x05
       bDescriptorType = 0x24
       bDescriptorSubType = 0x00
        RAW dump:
        0x00 | 0x05, 0x24, 0x00, 0x01, 0x10


       Additional Descriptor

       bLength = 0x05
       bDescriptorType = 0x24



>--HPS
>
>_______________________________________________
>freebsd-usb@freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-usb
>To unsubscribe, send any mail to "freebsd-usb-unsubscribe@freebsd.org"

--------------------------------------------------------------------
Mike Tancsa,                                      tel +1 519 651 3400
Sentex Communications,                            mike@sentex.net
Providing Internet since 1994                    www.sentex.net
Cambridge, Ontario Canada                         www.sentex.net/mike




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005042027.o44KRete011712>