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