Novatel U727 not recognized

Kim Culhan w8hdkim at gmail.com
Thu Feb 26 07:07:57 PST 2009


On Wed, Feb 25, 2009 at 1:59 AM, Hans Petter Selasky <hselasky at c2i.net> wrote:
> On Tuesday 24 February 2009, Kim Culhan wrote:
>> On Tue, Feb 24, 2009 at 4:34 AM, Hans Petter Selasky <hselasky at c2i.net>
> wrote:
>> > On Tuesday 24 February 2009, Kim Culhan wrote:
>> >> On Tue, Feb 24, 2009 at 3:05 AM, Hans Petter Selasky <hselasky at c2i.net>
>> >
>> > wrote:
>> >> > On Monday 23 February 2009, Kim Culhan wrote:
>> >> >> On Mon, Feb 23, 2009 at 3:56 PM, Hans Petter Selasky
>> >> >> <hselasky at c2i.net>
>> >> >
>> >> > wrote:
>> >> >> > On Monday 23 February 2009, Kim Culhan wrote:
>> >> >> >> Running 8.0-CURRENT as of 2-22-09
>> >> >> >>
>> >> >> >> The 3g0 device is a Novatel U727 EVDO wireless radio.
>> >> >> >>
>> >> >> >> If the machine boots with the device attached, dmesg reads:
>> >> >> >>
>> >> >> >> u3g0: <Data Interface> on usbus2
>> >> >> >>
>> >> >> >> Remove the device and this is logged:
>> >> >> >>
>> >> >> >> u3g0: at ushub2, port 2, addr 2 (disconnected)
>> >> >> >>
>> >> >> >> Reattach the device and there is this message:
>> >> >> >>
>> >> >> >> uhub_reattach_port:414: could not allocate new device!
>> >> >> >>
>> >> >> >> kernel config has:
>> >> >> >>
>> >> >> >> device   usb2_serial_3g
>> >> >> >>
>> >> >> >> Any help is greatly appreciated
>> >> >> >
>> >> >> > Hi,
>> >> >> >
>> >> >> > Can you turn on USB HUB debugging:
>> >> >> >
>> >> >> > sysctl hw.usb2.uhub.debug=15
>> >> >> > sysctl hw.usb.uhub.debug=15
>> >> >>
>> >> >> Sure here is dmesg with sysctl hw.usb2.uhub.debug=15
>> >> >>
>> >> >> uhub_read_port_status:259: port 2, wPortStatus=0x0103,
>> >> >> wPortChange=0x0000, err=USB_ERR_NORMAL_COMPLETION
>> >> >> usb2_transfer_power_ref:1470: Adding type 0 to power state
>> >> >> usb2_transfer_power_ref:1483: needs power
>> >> >> u3g_huawei_init:278:
>> >> >> usb2_alloc_device:1618: Found Huawei auto-install disk!
>> >> >> usb2_bus_port_set_device:1334: bus 0xc6733cf0 devices[2] = 0xc6bc6000
>> >> >> ugen2.2: <Novatel Wireless Inc.> at usbus2
>> >> >> ugen2.2: <Novatel Wireless Inc.> at usbus2 (disconnected)
>> >> >> usb2_bus_port_set_device:1334: bus 0xc6733cf0 devices[2] = 0
>> >> >> uhub_reattach_port:414: could not allocate new device!
>> >> >> usb2_needs_explore:1345:
>> >> >> usb2_bus_powerd:1516: bus=0xc670bcf0
>> >> >> usb2_bus_powerd:1599: Recomputing power masks
>> >> >> uhub_explore:522: udev=0xc6a93000 addr=1
>> >> >>
>> >> >> With the old usb, this was returned:
>> >> >>
>> >> >> Feb 22 10:38:37 smallster kernel: ugen2.2: <Novatel Wireless Inc.> at
>> >> >> usbus2 Feb 22 10:38:37 smallster kernel: umass0: <Novatel Wireless
>> >> >> Inc. Novatel Wireless CDMA, class 0/0, rev 1.10/0.00, addr 2> on
>> >> >> usbus2 Feb 22 10:38:37 smallster kernel: umass0:  SCSI over
>> >> >> Bulk-Only; quirks = 0x0000 Feb 22 10:38:38 smallster kernel:
>> >> >> umass0:1:0:-1: Attached to scbus1 Feb 22 10:38:39 smallster kernel:
>> >> >> (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
>> >> >> Feb 22 10:38:39 smallster kernel: (probe0:umass-sim0:0:0:0): CAM
>> >> >> Status: SCSI Status Error
>> >> >> Feb 22 10:38:39 smallster kernel: (probe0:umass-sim0:0:0:0): SCSI
>> >> >> Status: Check Condition
>> >> >> Feb 22 10:38:39 smallster kernel: (probe0:umass-sim0:0:0:0): NOT
>> >> >> READY asc:3a,0 Feb 22 10:38:39 smallster kernel:
>> >> >> (probe0:umass-sim0:0:0:0): Medium not present Feb 22 10:38:39
>> >> >> smallster kernel:
>> >> >> (probe0:umass-sim0:0:0:0): Unretryable error Feb 22 10:38:39
>> >> >> smallster kernel: cd0 at umass-sim0 bus 0 target 0 lun 0 Feb 22
>> >> >> 10:38:39 smallster kernel: cd0: <Novatel Mass Storage 1.00> Removable
>> >> >> CD-ROM SCSI-2 device Feb 22 10:38:39 smallster kernel: cd0: 1.000MB/s
>> >> >> transfers
>> >> >> Feb 22 10:38:39 smallster kernel: cd0: Attempt to query device size
>> >> >> failed: NOT READY, Medium not present
>> >> >> Feb 22 10:40:27 smallster kernel: g_vfs_done():cd0[READ(offset=65536,
>> >> >> length=8192)]error = 5
>> >> >> Feb 22 10:43:39 smallster kernel: umass0: at ushub2, port 1, addr 2
>> >> >> (disconnected)
>> >> >> Feb 22 10:43:39 smallster kernel: (cd0:umass-sim0:0:0:0): lost device
>> >> >> Feb 22 10:43:39 smallster kernel: (cd0:umass-sim0:0:0:0): removing
>> >> >> device entry Feb 22 10:43:39 smallster kernel: ugen2.2: <Novatel
>> >> >> Wireless Inc.> at usbus2 (disconnected)
>> >> >>
>> >> >> The device initially attempts to simulate the presence of a cdrom.
>> >> >>
>> >> >> Maybe this is creating the problem for usb2.
>> >> >>
>> >> >> -kim
>> >> >
>> >> > Hi Kim,
>> >> >
>> >> > In the latter case you don't have the U3G driver loaded. The U3G
>> >> > driver will detect the CD-ROM and send an eject or propritary command.
>> >> > After some while the device should show up like a u3g0 device. The
>> >> > error message you get is like it should be when CD-ROM detection is
>> >> > enabled.
>>
>> AFAIK there is no seperate CD-ROM detection which can be enabled/disabled.
>>
>> The device does not show up as a u3g0 device unless the u3g module is
>> loaded after the system is booted with _u3g commented out of the kernel
>> config_
>>
>> After boot:
>>
>> kldload u3g
>>
>> returns
>>
>> u3g0: <Data Interface> on usbus2
>> u3g0: Found 4 ports.
>>
>> If I remove the usb device it reports:
>>
>> u3g0: at ushub2, port 2, addr 2 (disconnected)
>> umass0: at ushub2, port 2, addr 2 (disconnected)
>> (da0:umass-sim0:0:0:0): lost device
>> (da0:umass-sim0:0:0:0): removing device entry
>> ugen2.2: <Novatel Wireless Inc.> at usbus2 (disconnected)
>>
>> If I reattach the device it reports:
>>
>> u3g_huawei_init:278:
>> usb2_alloc_device:1618: Found Huawei auto-install disk!
>> ugen2.2: <Novatel Wireless Inc.> at usbus2
>> ugen2.2: <Novatel Wireless Inc.> at usbus2 (disconnected)
>> uhub_reattach_port:414: could not allocate new device!
>>
>
> If your device does not re-appear within 10 seconds, then try this:
>
> 1) Add a quirk:
>
> kldload usb_quirk
> kldload usb2_quirk
>
> usbconfig add_dev_quirk_vplh vid pid 0 0xFFFF UQ_CFG_INDEX_0
>
> Replace vid and pid by the info provided by "usbconfig -u 2 -a 2
> dump_device_desc".
>
> 2) Dump USB configuration:
>
> usbconfig -u 2 -a 2 dump_curr_config_desc

Taking another pass at this, loading u3g after waiting a minute:

# usbconfig -u 2 -a 2 dump_device_desc

returns:

ugen2.2: <Novatel Wireless CDMA Novatel Wireless Inc.> at usbus2,
cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0110
  bDeviceClass = 0x0000
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0040
  idVendor = 0x1410
  idProduct = 0x5010
  bcdDevice = 0x0000
  iManufacturer = 0x0001  <Novatel Wireless Inc.>
  iProduct = 0x0002  <Novatel Wireless CDMA>
  iSerialNumber = 0x0004  <091050639170000>
  bNumConfigurations = 0x0001

Then we say:

usbconfig add_dev_quirk_vplh 0x1410 0x5010 0 0xFFFF UQ_CFG_INDEX_0

and it returns:

# usbconfig -u 2 -a 2 dump_curr_config_desc
ugen2.2: <Novatel Wireless CDMA Novatel Wireless Inc.> at usbus2,
cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON


 Configuration index 0

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

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

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0081
        bmAttributes = 0x0003
        wMaxPacketSize = 0x0010
        bInterval = 0x0080
        bRefresh = 0x0000
        bSynchAddress = 0x0000

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

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


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

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

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


    Interface 2
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0002
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x00ff
      bInterfaceSubClass = 0x00ff
      bInterfaceProtocol = 0x00ff
      iInterface = 0x0003  <Data Interface>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0089
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0040
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

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


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

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x008a
        bmAttributes = 0x0002
        wMaxPacketSize = 0x0040
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

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


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

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

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

Hope _this_ helps  :)

-kim


More information about the freebsd-usb mailing list