On 12/1/12, Stefan Sperling <[email protected]> wrote:
> On Sat, Dec 01, 2012 at 05:15:22PM +0000, Heptas Torres wrote:
>> Hi
>> I run OpenBSD in a VMware workstation and I would like to connect the
>> Edimax EW-7811Un nano USB wireless adapter:
>> http://www.edimax.com/en/produce_detail.php?pd_id=347&pl1_id=1&pl2_id=44.
>> I get the error:
>> urtwn0: timeout waiting for MAC auto ON
>
> The driver believes that it is failing to power up the hardware.
As it looks from outside the dongle is not powered up.
> If the dongle works with OpenBSD on real hardware there is probably
> some problem with the way VMware handles USB devices. Do other USB
> devices work?
Yes. I have tried with a Linksys USB wifi adapter and that worked (a
different driver is used though).
I have tried with VirtualBox and none of the Wifi USB adapters worked.
I got the error "uhub0: device problem, disabling port 1".
The adapters normally work fine (tried both of them under Linux in a
VBox and they worked fine).
> Perhaps things just happen slower than the driver is expecting?
> The driver waits for 5 miliseconds before giving up.
> You could try increasing the timeout a little by tweaking the code as
> shown below. However, if this fixes the problem the driver might end
> up timing out elsewhere, so quite a few timeouts in the driver may
> need to be tweaked.
Did not work, same problem...
-heptas
> Index: if_urtwn.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/usb/if_urtwn.c,v
> retrieving revision 1.23
> diff -u -p -r1.23 if_urtwn.c
> --- if_urtwn.c 17 Sep 2012 15:14:14 -0000 1.23
> +++ if_urtwn.c 1 Dec 2012 17:49:53 -0000
> @@ -2066,13 +2066,13 @@ urtwn_power_on(struct urtwn_softc *sc)
> /* Auto enable WLAN. */
> urtwn_write_2(sc, R92C_APS_FSMCO,
> urtwn_read_2(sc, R92C_APS_FSMCO) | R92C_APS_FSMCO_APFM_ONMAC);
> - for (ntries = 0; ntries < 1000; ntries++) {
> + for (ntries = 0; ntries < 10000; ntries++) {
> if (urtwn_read_2(sc, R92C_APS_FSMCO) &
> R92C_APS_FSMCO_APFM_ONMAC)
> break;
> DELAY(5);
> }
> - if (ntries == 1000) {
> + if (ntries == 10000) {
> printf("%s: timeout waiting for MAC auto ON\n",
> sc->sc_dev.dv_xname);
> return (ETIMEDOUT);