Re: reattach 3g0 device: could not allocate new device

From: Hans Petter Selasky <hselasky_at_c2i.net>
Date: Fri, 7 Aug 2009 17:12:47 +0200
On Thursday 06 August 2009 13:12:49 Lucius Windschuh wrote:
> Hi Hans.
>
> 2009/8/6 Hans Petter Selasky <hselasky_at_c2i.net>:
> > On Thursday 06 August 2009 00:29:09 Lucius Windschuh wrote:
> >> Hi.
> >> I have a Vodafone-branded "OVATION MC950D (Qualcomm 3G CDMA)" UMTS pen
> >> here.
> >>
> >> I found this thread from some months ago:
> >>
> >> 2009/2/24 Hans Petter Selasky <hselasky_at_c2i.net>:
> >> > 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!
> >>
> >> Was there any solution for this?
> >>
> >> I may provide further debugging information if somebody tells me how
> >> to obtail useful details.
> >>
> >> A sniplet with hw.usb.debug=3:
> >> usbd_req_set_config:1456: setting config 1
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_do_request_callback:95: st=0
> >> usbd_transfer_submit:1397: xfer=0xc72210b0, endpoint=0xc5dd5078,
> >> nframes=1, dir= read
> >> usb_dump_endpoint: endpoint=0xc5dd5078 edesc=0xc5dd532c isoc_next=0
> >> toggle_next= 0 bEndpointAddress=0x00
> >> usb_dump_queue: endpoint=0xc5dd5078 xfer:
> >> usbd_pipe_enter:1584: enter
> >> usbd_pipe_start:2416: start
> >> usbd_transfer_done:2185: err=USB_ERR_NORMAL_COMPLETION
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_callback_wrapper_sub:2550: xfer=0xc72210b0 endpoint=0xc5dd5078
> >> sts=0 alen=8 , slen=8, afrm=1, nfrm=1
> >> usbd_do_request_callback:95: st=1
> >> usb_cdev_create:1854: Creating device nodes
> >> usbd_set_config_index:584: error=USB_ERR_NORMAL_COMPLETION
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_transfer_submit:1397: xfer=0xc72230b0, endpoint=0xc71f9024,
> >> nframes=1, dir= write
> >> usb_dump_endpoint: endpoint=0xc71f9024 edesc=0xc624e4d9 isoc_next=0
> >> toggle_next= 0 bEndpointAddress=0x09
> >> usb_dump_queue: endpoint=0xc71f9024 xfer:
> >> usbd_transfer_submit:1416: open
> >> usbd_pipe_enter:1584: enter
> >> usbd_pipe_start:2416: start
> >> usbd_transfer_done:2185: err=USB_ERR_NORMAL_COMPLETION
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_callback_wrapper_sub:2550: xfer=0xc72230b0 endpoint=0xc71f9024
> >> sts=0 alen=3 1, slen=31, afrm=1, nfrm=1
> >> usbd_callback_wrapper:2030: case 1-4
> >> bbb_data_read_callback:320: max_bulk=64, data_rem=36
> >> usbd_transfer_submit:1397: xfer=0xc7223188, endpoint=0xc71f9000,
> >> nframes=1, dir= read
> >> usb_dump_endpoint: endpoint=0xc71f9000 edesc=0xc624e4d2 isoc_next=0
> >> toggle_next= 0 bEndpointAddress=0x88
> >> usb_dump_queue: endpoint=0xc71f9000 xfer:
> >> usbd_transfer_submit:1416: open
> >> usbd_pipe_enter:1584: enter
> >> usbd_pipe_start:2416: start
> >> usbd_transfer_done:2185: err=USB_ERR_NORMAL_COMPLETION
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_callback_wrapper_sub:2550: xfer=0xc7223188 endpoint=0xc71f9000
> >> sts=0 alen=3 6, slen=36, afrm=1, nfrm=1
> >> bbb_data_read_callback:320: max_bulk=64, data_rem=0
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_transfer_submit:1397: xfer=0xc72234f8, endpoint=0xc71f9000,
> >> nframes=1, dir= read
> >> usb_dump_endpoint: endpoint=0xc71f9000 edesc=0xc624e4d2 isoc_next=0
> >> toggle_next= 1 bEndpointAddress=0x88
> >> usb_dump_queue: endpoint=0xc71f9000 xfer:
> >> usbd_transfer_submit:1416: open
> >> usbd_pipe_enter:1584: enter
> >> usbd_pipe_start:2416: start
> >> usbd_transfer_done:2185: err=USB_ERR_NORMAL_COMPLETION
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_callback_wrapper_sub:2550: xfer=0xc72234f8 endpoint=0xc71f9000
> >> sts=0 alen=1 3, slen=13, afrm=1, nfrm=1
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_transfer_submit:1397: xfer=0xc72230b0, endpoint=0xc71f9024,
> >> nframes=1, dir= write
> >> usb_dump_endpoint: endpoint=0xc71f9024 edesc=0xc624e4d9 isoc_next=0
> >> toggle_next= 1 bEndpointAddress=0x09
> >> usb_dump_queue: endpoint=0xc71f9024 xfer:
> >> usbd_pipe_enter:1584: enter
> >> usbd_pipe_start:2416: start
> >> usbd_transfer_done:2185: err=USB_ERR_NORMAL_COMPLETION
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_callback_wrapper_sub:2550: xfer=0xc72230b0 endpoint=0xc71f9024
> >> sts=0 alen=3 1, slen=31, afrm=1, nfrm=1
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_transfer_submit:1397: xfer=0xc72234f8, endpoint=0xc71f9000,
> >> nframes=1, dir= read
> >> usb_dump_endpoint: endpoint=0xc71f9000 edesc=0xc624e4d2 isoc_next=0
> >> toggle_next= 0 bEndpointAddress=0x88
> >> usb_dump_queue: endpoint=0xc71f9000 xfer:
> >> usbd_pipe_enter:1584: enter
> >> usbd_pipe_start:2416: start
> >> usbd_transfer_done:2185: err=USB_ERR_NORMAL_COMPLETION
> >> usbd_callback_wrapper:2030: case 1-4
> >> usbd_callback_wrapper_sub:2550: xfer=0xc72234f8 endpoint=0xc71f9000
> >> sts=0 alen=1 3, slen=13, afrm=1, nfrm=1
> >> usb_test_autoinstall:571: Eject CD command status:
> >> USB_ERR_NORMAL_COMPLETION usbd_transfer_stop:1691: close
> >> usbd_transfer_done:2185: err=USB_ERR_CANCELLED
> >> usbd_transfer_done:2192: not transferring
> >> usbd_transfer_stop:1691: close
> >> usbd_transfer_done:2185: err=USB_ERR_CANCELLED
> >> usbd_transfer_done:2192: not transferring
> >> usbd_transfer_stop:1691: close
> >> usbd_transfer_done:2185: err=USB_ERR_CANCELLED
> >> usbd_transfer_done:2192: not transferring
> >> usb_alloc_device:1781: Found Huawei auto-install disk!
> >> usb_alloc_device:1789: new dev (addr 3), udev=0xc5dd5000,
> >> parent_hub=0xc621b400 ugen0.3: <Novatel Wireless> at usbus0
> >> usb_set_device_state:2442: udev 0xc5dd5000 state CONFIGURED -> DETACHED
> >> ugen0.3: <Novatel Wireless> at usbus0 (disconnected)
> >> usb_cdev_free:1906: Freeing device nodes
> >> usbd_transfer_stop:1691: close
> >> usbd_transfer_done:2185: err=USB_ERR_CANCELLED
> >> usbd_transfer_done:2192: not transferring
> >> uhub_reattach_port:440: could not allocate new device!
> >>
> >> *sigh* Unfortunately, I don't understand what is happening here.
> >
> > Try:
> >
> > sysctl hw.usb.ehci.no_hs=1
>
> Sorry, but I get the same messages:
>
> $ sysctl hw.usb.ehci.no_hs=1
> $ kldload u3g
> <plug in UMTS device>
> dmesg:
>  usb_test_autoinstall:571: Eject CD command status:
> USB_ERR_NORMAL_COMPLETION usb_alloc_device:1781: Found Huawei auto-install
> disk!
>  ugen0.2: <Novatel Wireless> at usbus0
>  ugen0.2: <Novatel Wireless> at usbus0 (disconnected)
>  uhub_reattach_port:440: could not allocate new device!
>

Try this patch:

src/sys/dev/usb/usb_device.c

_at__at_ -1777,7 +1777,8 _at__at_
                        }
                } else if (usb_test_huawei_autoinst_p(udev, &uaa) == 0) {
                        DPRINTFN(0, "Found Huawei auto-install disk!\n");
-                       err = USB_ERR_STALLED;  /* fake an error */
+                       /* leave device unconfigured */
+                       usb_unconfigure(udev, USB_UNCFG_FLAG_FREE_SUBDEV);
                }
        } else {
                err = 0;                /* set success */


--HPS
Received on Fri Aug 07 2009 - 13:12:56 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:53 UTC