ZTE MF636 USB u3g modem

Mike Tancsa mike at sentex.net
Thu May 7 14:01:16 UTC 2009


At 03:48 AM 5/7/2009, Nick Hibma wrote:
> > u3g0: <ZTE, Incorporated ZTE CDMA Technologies MSM, class 0/0, rev
> > 2.00/0.00, addr 2> on uhub1
> > u3g0: changing CMOTECH modem to modem mode
> > u3g0: sent command to change to modem mode
> > u3g0: failed to read back CSW: 13
> > u3g0: at uhub1 port 2 (addr 2) disconnected
> > u3g0: detached
> > ucom0: <ZTE, Incorporated ZTE CDMA Technologies MSM, class 0/0, rev
> > 2.00/0.00, addr 2> on uhub1
> > ucom0: port=0 iface=3 in=0x85 out=0x4
> > ucom0: configured 1 serial ports (U0.%d)
>
>This is the real port. Could you dump the descriptors after unloading the
>driver and loading ugen?

Hi,
         I think this is the info you want ? If not, let me know. 
Thanks!  I also did a usb capture of all the traffic in windows from 
the point of the device being attached and going online.

0[i7]# usbconfig -u 3 -a 5 dump_device_desc
ugen3.5: <ZTE CDMA Technologies MSM ZTE, Incorporated> at usbus3, 
cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON

   bLength = 0x0012
   bDescriptorType = 0x0001
   bcdUSB = 0x0200
   bDeviceClass = 0x0000
   bDeviceSubClass = 0x0000
   bDeviceProtocol = 0x0000
   bMaxPacketSize0 = 0x0040
   idVendor = 0x19d2
   idProduct = 0x0031
   bcdDevice = 0x0000
   iManufacturer = 0x0002  <ZTE, Incorporated>
   iProduct = 0x0001  <ZTE CDMA Technologies MSM>
   iSerialNumber = 0x0003  <1234567890ABCDEF>
   bNumConfigurations = 0x0001

0[i7]# usbconfig -u 3 -a 5 dump_all_config_desc
ugen3.5: <ZTE CDMA Technologies MSM ZTE, Incorporated> at usbus3, 
cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON


  Configuration index 0

     bLength = 0x0009
     bDescriptorType = 0x0002
     wTotalLength = 0x0100
     bNumInterfaces = 0x0004
     bConfigurationValue = 0x0001
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x00a0
     bMaxPower = 0x00fa

     Interface 0
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0000
       bInterfaceClass = 0x00ff
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x00ff
       iInterface = 0x0000  <no string>

       Additional Descriptor

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


       Additional Descriptor

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


       Additional Descriptor

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


       Additional Descriptor

       bLength = 0x15
       bDescriptorType = 0x24
       bDescriptorSubType = 0x12
        RAW dump:
        0x00 | 0x15, 0x24, 0x12, 0x20, 0x01, 0x98, 0xb0, 0x6a,
        0x08 | 0x49, 0xb0, 0x9e, 0x48, 0x96, 0x94, 0x46, 0xd9,
        0x10 | 0x9a, 0x28, 0xca, 0x4e, 0x5d


       Additional Descriptor

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



     Interface 0 Alt 1
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0001
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00ff
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x00ff
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0081
         bmAttributes = 0x0002
         wMaxPacketSize = 0x0200
         bInterval = 0x0020
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0001
         bmAttributes = 0x0002
         wMaxPacketSize = 0x0200
         bInterval = 0x0020
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 1
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0000
       bInterfaceClass = 0x00ff
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x00ff
       iInterface = 0x0000  <no string>

       Additional Descriptor

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


       Additional Descriptor

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


       Additional Descriptor

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


       Additional Descriptor

       bLength = 0x15
       bDescriptorType = 0x24
       bDescriptorSubType = 0x12
        RAW dump:
        0x00 | 0x15, 0x24, 0x12, 0x20, 0x01, 0x98, 0xb0, 0x6a,
        0x08 | 0x49, 0xb0, 0x9e, 0x48, 0x96, 0x94, 0x46, 0xd9,
        0x10 | 0x9a, 0x28, 0xca, 0x4e, 0x5d


       Additional Descriptor

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



     Interface 1 Alt 1
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0001
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x00ff
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x00ff
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082
         bmAttributes = 0x0002
         wMaxPacketSize = 0x0200
         bInterval = 0x0020
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0002
         bmAttributes = 0x0002
         wMaxPacketSize = 0x0200
         bInterval = 0x0020
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 2
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0002
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x0008
       bInterfaceSubClass = 0x0006
       bInterfaceProtocol = 0x0050
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0003
         bmAttributes = 0x0002
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083
         bmAttributes = 0x0002
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 3
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0003
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0003
       bInterfaceClass = 0x00ff
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x00ff
       iInterface = 0x0000  <no string>

       Additional Descriptor

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


       Additional Descriptor

       bLength = 0x04
       bDescriptorType = 0x24
       bDescriptorSubType = 0x02
        RAW dump:
        0x00 | 0x04, 0x24, 0x02, 0x02


       Additional Descriptor

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


       Additional Descriptor

       bLength = 0x05
       bDescriptorType = 0x24
       bDescriptorSubType = 0x06
        RAW dump:
        0x00 | 0x05, 0x24, 0x06, 0x03, 0x03


       Additional Descriptor

       bLength = 0x15
       bDescriptorType = 0x24
       bDescriptorSubType = 0x12
        RAW dump:
        0x00 | 0x15, 0x24, 0x12, 0x20, 0x01, 0x98, 0xb0, 0x6a,
        0x08 | 0x49, 0xb0, 0x9e, 0x48, 0x96, 0x94, 0x46, 0xd9,
        0x10 | 0x9a, 0x28, 0xca, 0x4e, 0x5d


       Additional Descriptor

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


      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0084
         bmAttributes = 0x0003
         wMaxPacketSize = 0x0040
         bInterval = 0x0005
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085
         bmAttributes = 0x0002
         wMaxPacketSize = 0x0200
         bInterval = 0x0020
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 2
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0004
         bmAttributes = 0x0002
         wMaxPacketSize = 0x0200
         bInterval = 0x0020
         bRefresh = 0x0000
         bSynchAddress = 0x0000





> > ucom1: <ZTE, Incorporated ZTE CDMA Technologies MSM, class 0/0, rev
> > 2.00/0.00, addr 2> on uhub1
> > ucom1: configured 0 serial ports (U1.%d)
> > ucom2: <ZTE, Incorporated ZTE CDMA Technologies MSM, class 0/0, rev
> > 2.00/0.00, addr 2> on uhub1
> > ucom2: configured 0 serial ports (U2.%d)
>
>These two are not actually com ports. They are probably umass related, but
>attached to by u3g instead.

When installed on windows, there are extra com ports



>Nick



More information about the freebsd-usb mailing list