WiFi USB does not work following "Stop using"->"Start using" via VirtualHere Win7 client

Hello,

We have recently encountered the following scenario, which is reproduced 100%:

Setup:
- Server version is up-to-date (2.6.8), running on Rpi
- Client version is up-to-date (3.3.5), running on Win7
- Rpi Debian OS version is updated to 13.01.2016
- Prolific serial-to-usb and 'Dlink AC600' wifi-to-usb connected, via hub, to Rpi

Scenario:
1. PC is using normally both serial and Dongle USBs, all works well.
2. From Win7 PC, via VirtualHere client UI, mark "Stopped using" both USBs
3. From Win7 PC, via VirtualHere client UI, "Start using" again the shared USB ports on the server.
4. USB-serial is functioning well, but the USB Wifi Dongle doesn't!!
(* Strangest thing! - the device is visible in Win7 adapters, the correct SSID are shown through the device, but all attempts to connect to any of the SSID's are constantly failing.)
5. Reboot Win7 PC, issue remains with WiFi Dongle.
6. Physically Detach / Attach the dongle, from the hub connected to Rpi -> issue resolved (i.e. WiFi working properly on Win7 client)

I have several syslog traces, taken between the reproduced steps...

(might this be related to https://www.virtualhere.com/node/592?)

Your advice will be greatly appreciated.

Thank you!

#2

When both WiFi and Serial are "Auto-Use Device" in VirtualHere client:
pi@raspberrypi ~ $ lsusb -t
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 3: Dev 4, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 5, If 0, Class=HID, Driver=usbhid, 480M
|__ Port 3: Dev 6, If 0, Class=vend., Driver=usbfs, 12M
|__ Port 5: Dev 7, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 8, If 0, Class=HID, Driver=usbhid, 480M
|__ Port 4: Dev 9, If 0, Class=vend., Driver=usbfs, 480M

When "Stop Using" only the 'Serial-to-usb' via VirtualHere UI client:
pi@raspberrypi ~ $ lsusb -t
1-1.3.3:1.0: No such file or directory
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 3: Dev 4, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 5, If 0, Class=HID, Driver=usbhid, 480M
|__ Port 3: Dev 6, If 0, Class=vend., Driver=, 12M
|__ Port 5: Dev 7, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 8, If 0, Class=HID, Driver=usbhid, 480M
|__ Port 4: Dev 9, If 0, Class=vend., Driver=usbfs, 480M
(*i.e. 'Port 3: Dev 6' modified)

When "Stop Using" only the 'WiFi-to-usb' via VirtualHere UI client:
pi@raspberrypi ~ $ lsusb -t
1-1.3.5.4:1.0: No such file or directory
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
|__ Port 3: Dev 4, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 5, If 0, Class=HID, Driver=usbhid, 480M
|__ Port 3: Dev 6, If 0, Class=vend., Driver=usbfs, 12M
|__ Port 5: Dev 7, If 0, Class=hub, Driver=hub/5p, 480M
|__ Port 1: Dev 8, If 0, Class=HID, Driver=usbhid, 480M
|__ Port 4: Dev 9, If 0, Class=vend., Driver=, 480M
(*i.e. 'Port 4: Dev 9' modified)

Above is not so consistent for the WiFi device case..
Sometimes, after "Stop Using" the WiFi, there is no change on the lsusb output.
However, for the 'Serial', there is always a change (on Dev 6 line) between "Use" and "Stop Using" the device...

(Is this any useful information?)

#3

OK thanks for that, i know we've been conversing via email about this, and i was thinking more about your scenario. You have a very unusual use-case running the actual wifi usb dongle over virtualhere. (i.e creating a virtualized wifi dongle on the client) . Most people use the network dongle as the network interface.

If you are going to use a pi, then I think that the wifi adapter needs to be set to the minimum possible speed, i.e 802.11b 11Mbps 5.5Mbps or 1Mbps. What i think is happening is your a trying to run a 433Mbps wifi adapter over virtualhere using the raspberry pi usb port as the conduit. By definition the maximum speed of this port would be 50Mbps because its shared with the network cable and other devices on the same USB hub. My guess is that the wifi adapter receives data much faster than this 50Mbps its buffers are filling with radio transmissions and after a while the internal dongle data buffers are filled because they are emptied too slowly by the remote client and this is basically jamming the wifi-dongels internal hardware state.

So firstly could you force your dongle to the lowest possible speed e.g 802.11 preferably 1Mbps and see how it responds. My guess is the wifi lockup will either be elimated of greatly reduced simply because the dongle is not receiving so much data at once and having to buffer until it can be cleared by the remote client drivers.