Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Jan 2015 17:19:01 +0000
From:      Gary Palmer <gpalmer@freebsd.org>
To:        freebsd-usb@freebsd.org
Subject:   ZTE MF730M 3G dongle help please
Message-ID:  <20150110171901.GA47211@in-addr.com>

next in thread | raw e-mail | index | archive | help

Hi,

I have a ZTE MF730M.  When first connected to my 9.3-RELEASE-p7 box
it takes a few seconds (approximately 7) and then shows up as:

% usbconfig -d ugen2.7 dump_device_desc
ugen2.7: <ZTE Mobile Broadband Station ZTE,Incorporated> at usbus2, cfg=1 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0200 
  bDeviceClass = 0x0000 
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x19d2 
  idProduct = 0x1420 
  bcdDevice = 0xf0f7 
  iManufacturer = 0x0001  <ZTE,Incorporated>
  iProduct = 0x0002  <ZTE Mobile Broadband Station>
  iSerialNumber = 0x0004  <1234567890ABCDEF>
  bNumConfigurations = 0x0003 

with the following config:

% usbconfig -d ugen2.7 dump_all_config_desc
ugen2.7: <ZTE Mobile Broadband Station ZTE,Incorporated> at usbus2, cfg=1 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0020 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0003  <Self Powered>
    bmAttributes = 0x00c0 
    bMaxPower = 0x00fa 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0002 
      bInterfaceClass = 0x0008 
      bInterfaceSubClass = 0x0006 
      bInterfaceProtocol = 0x0050 
      iInterface = 0x0005  <Mass Storage>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0000 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 



 Configuration index 1

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0020 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0002 
    iConfiguration = 0x0003  <Self Powered>
    bmAttributes = 0x00c0 
    bMaxPower = 0x00fa 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0002 
      bInterfaceClass = 0x0008 
      bInterfaceSubClass = 0x0006 
      bInterfaceProtocol = 0x0050 
      iInterface = 0x0005  <Mass Storage>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0000 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0001  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0200 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000



the kernel reports:

Jan 10 16:38:10 noop kernel: usb_alloc_device: Found possible auto-install disk (trying next config)
Jan 10 16:38:10 noop kernel: ugen2.7: <ZTE,Incorporated> at usbus2
Jan 10 16:38:10 noop kernel: umass0: <Mass Storage> on usbus2
Jan 10 16:38:10 noop kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0000
Jan 10 16:38:10 noop kernel: umass0: Get Max Lun not supported (USB_ERR_STALLED)
Jan 10 16:38:10 noop kernel: umass0:8:0:-1: Attached to scbus8
Jan 10 16:39:24 noop kernel: (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 00 00 00 24 00 
Jan 10 16:39:24 noop kernel: (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
Jan 10 16:39:24 noop kernel: (probe0:umass-sim0:0:0:0): Retrying command
Jan 10 16:40:38 noop kernel: (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 00 00 00 24 00 
Jan 10 16:40:38 noop kernel: (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
Jan 10 16:40:38 noop kernel: (probe0:umass-sim0:0:0:0): Retrying command
Jan 10 16:41:51 noop kernel: (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 00 00 00 24 00 
Jan 10 16:41:51 noop kernel: (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
Jan 10 16:41:51 noop kernel: (probe0:umass-sim0:0:0:0): Retrying command
n 10 16:43:05 noop kernel: (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 00 00 00 24 00 
Jan 10 16:43:05 noop kernel: (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
Jan 10 16:43:05 noop kernel: (probe0:umass-sim0:0:0:0): Retrying command
Jan 10 16:44:19 noop kernel: (probe0:umass-sim0:0:0:0): INQUIRY. CDB: 12 00 00 00 24 00 
Jan 10 16:44:19 noop kernel: (probe0:umass-sim0:0:0:0): CAM status: CCB request completed with an error
Jan 10 16:44:19 noop kernel: (probe0:umass-sim0:0:0:0): Error 5, Retries exhausted


nothing shows up in "camcontrol devlist".

If I do

usbconfig -d ugen2.7 power_off
usbconfig -d ugen2.7 power_on

I now get:

Jan 10 16:45:17 noop kernel: umass0: at uhub6, port 1, addr 7 (disconnected)
Jan 10 16:45:21 noop kernel: umass0: <Mass Storage> on usbus2
Jan 10 16:45:21 noop kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0000
Jan 10 16:45:21 noop kernel: umass0:8:0:-1: Attached to scbus8
Jan 10 16:45:21 noop kernel: cd1 at umass-sim0 bus 0 scbus8 target 0 lun 0
Jan 10 16:45:21 noop kernel: cd1: <ZTE USB SCSI CD-ROM 2.31> Removable CD-ROM SCSI-2 device 
Jan 10 16:45:21 noop kernel: cd1: Serial Number 1234567890ABCDEF
Jan 10 16:45:21 noop kernel: cd1: 40.000MB/s transfers
Jan 10 16:45:21 noop kernel: cd1: cd present [2177 x 2048 byte records]
Jan 10 16:45:21 noop kernel: cd1: quirks=0x10<10_BYTE_ONLY>
Jan 10 16:45:22 noop kernel: (cd1:umass-sim0:0:0:0): READ TOC/PMA/ATIP. CDB: 43 02 00 00 00 00 aa 00 0c 00 
Jan 10 16:45:22 noop kernel: (cd1:umass-sim0:0:0:0): CAM status: SCSI Status Error
Jan 10 16:45:22 noop kernel: (cd1:umass-sim0:0:0:0): SCSI status: Check Condition
Jan 10 16:45:22 noop kernel: (cd1:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB)
Jan 10 16:45:22 noop kernel: (cd1:umass-sim0:0:0:0): Error 22, Unretryable error

and this shows up in camcontrol devlist:

<ZTE USB SCSI CD-ROM 2.31>         at scbus8 target 0 lun 0 (cd1,pass7)

now if I do

% camcontrol eject cd1
Unit stopped successfully, Media ejected

I get the following kernel logs:

Jan 10 16:45:52 noop kernel: ugen2.7: <ZTE,Incorporated> at usbus2 (disconnected)
Jan 10 16:45:52 noop kernel: umass0: at uhub6, port 1, addr 7 (disconnected)
Jan 10 16:45:52 noop kernel: cd1 at umass-sim0 bus 0 scbus8 target 0 lun 0
Jan 10 16:45:52 noop kernel: cd1: <ZTE USB SCSI CD-ROM 2.31> s/n 1234567890ABCDEF detached
Jan 10 16:45:52 noop kernel: (cd1:umass-sim0:0:0:0): Periph destroyed
Jan 10 16:45:53 noop kernel: ugen2.7: <ZTE,Incorporated> at usbus2
Jan 10 16:45:53 noop kernel: urndis0: <RNDIS Communications Control> on usbus2
Jan 10 16:45:53 noop kernel: ue0: <USB Ethernet> on urndis0
Jan 10 16:45:53 noop kernel: ue0: Ethernet address: <redacted>
Jan 10 16:45:53 noop kernel: umass0: <Mass Storage> on usbus2
Jan 10 16:45:53 noop kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0000
Jan 10 16:45:53 noop kernel: umass0:8:0:-1: Attached to scbus8
Jan 10 16:45:53 noop kernel: cd1 at umass-sim0 bus 0 scbus8 target 0 lun 0
Jan 10 16:45:53 noop kernel: cd1: <ZTE USB SCSI CD-ROM 2.31> Removable CD-ROM SCSI-2 device 
Jan 10 16:45:53 noop kernel: cd1: Serial Number 1234567890ABCDEF
Jan 10 16:45:53 noop kernel: cd1: 40.000MB/s transfers
Jan 10 16:45:53 noop kernel: cd1: cd present [2177 x 2048 byte records]
Jan 10 16:45:53 noop kernel: cd1: quirks=0x10<10_BYTE_ONLY>
Jan 10 16:45:53 noop kernel: da0 at umass-sim0 bus 0 scbus8 target 0 lun 1
Jan 10 16:45:53 noop kernel: da0: <ZTE MMC Storage 2.31> Removable Direct Access SCSI-2 device 
Jan 10 16:45:53 noop kernel: da0: Serial Number 1234567890ABCDEF
Jan 10 16:45:53 noop kernel: da0: 40.000MB/s transfers
Jan 10 16:45:53 noop kernel: da0: Attempt to query device size failed: NOT READY, Medium not present
Jan 10 16:45:53 noop kernel: da0: quirks=0x2<NO_6_BYTE>
Jan 10 16:45:53 noop root: Unknown USB device: vendor 0x19d2 product 0x1403 bus uhub6

and 

ue0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether <redacted>
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

shows up

Any way of getting a more automated switch to the RNDIS protocol?

I've got a hack going right now via devd but I'd have thought there would
be a way of doing this via the quirks mechanism.  The devd stuff isn't
ideal as I found out that there is no real way to associate the umass
creation event with a particular cam device, so I end up with a script
that waits and uses camcontrol to try to figure out the cd device that 
is created via umass.

Thanks,

Gary



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