Unreliable USB connection
Posted: 5. Aug 2014, 10:00
I don't know if this is the right forum section. I have two Linux hosts (a Linux Mint 16 KDE, based on Ubuntu 13.10, as system A and a Debian Wheezy as system B) and two Windows XP SP3 guests.
On both configurations the symptoms I have are the following.
USB connection and forwarding to the VM works perfectly: the guest OS sees the device once connected, drivers are installed if needed and the connection stays alive until I disconnect the device or I uncheck it from the Devices menu of VirtualBox (well, I have a problem with VirtualBox 4.3.14 on physical disconnection: the VM stops immediately, as of bug https://www.virtualbox.org/ticket/13239).
However, even though Windows sees the device as connected, the software that must communicate with the USB device have problems.
On system A I'm trying to connect a Tom Tom GO 500 GPS device to my Windows guest: Tom Tom's software to update the device is for Windows and Mac only. The device is seen by both the host Linux OS and the guest Windows OS as a new network interface. When I try to make a big update (like software or maps updates, which can range from hundreds of megabytes to some gigabytes in size) the update process frequently stops. The software suddenly doesn't see the device connected any more, although it is (and Windows also sees is as connected). If I look at the logs of the Tom Tom software, I see errors like this:
Apart from the protocol details, what is clear here is that the device suddenly does not respond any more.
On system B the situation is a bit different, but not so much. There I have two printers, an Epson one and a Canon one. The Epson printer seems not to work at all ("not responding" errors), although Windows sees it as connected. Anyway, I don't have too much precise information on this, since it's my father's system and I don't have investigated on it too much. However I have better information on the Canon printer. This does work correctly if Windows is started after the printer has already been turned on and connected to the host system. Instead, if I turn on the printer after Windows has been already started, any printing attempt ends with a "printer not responding" error: I have to uncheck the printer from the "Devices" menu of VirtualBox and check it again to make the printer work again. Also, the same problem (printer not responding) happens if I leave the USB printer on and inactive for some minutes and then try to print something: it seems like it enters a standby state from which it can't resume anymore. Again, the solution is to uncheck and check again the printer from the VirtualBox Devices menu in order to disconnect and re-connect again the printer to the guest OS. I already described this problem at: viewtopic.php?f=7&t=62198
Useless to say that all of these devices work correctly when connected to a physical Windows system.
On both systems I'm using VirtualBox 4.3.14 with the USB extension pack (of the same version). Guest Additions are installed and their version matches that of the VirtualBox used to run the VMs.
So, I was wondering if these kind of issues with USB devices is known. Has anyone some good advice to make the situation better?
Also, might be another Windows version (like Vista or 7) as the guest OS more reliable for this kind of usage with VirtualBox?
Thanks in advance for any reply.
On both configurations the symptoms I have are the following.
USB connection and forwarding to the VM works perfectly: the guest OS sees the device once connected, drivers are installed if needed and the connection stays alive until I disconnect the device or I uncheck it from the Devices menu of VirtualBox (well, I have a problem with VirtualBox 4.3.14 on physical disconnection: the VM stops immediately, as of bug https://www.virtualbox.org/ticket/13239).
However, even though Windows sees the device as connected, the software that must communicate with the USB device have problems.
On system A I'm trying to connect a Tom Tom GO 500 GPS device to my Windows guest: Tom Tom's software to update the device is for Windows and Mac only. The device is seen by both the host Linux OS and the guest Windows OS as a new network interface. When I try to make a big update (like software or maps updates, which can range from hundreds of megabytes to some gigabytes in size) the update process frequently stops. The software suddenly doesn't see the device connected any more, although it is (and Windows also sees is as connected). If I look at the logs of the Tom Tom software, I see errors like this:
Code: Select all
2014-07-20 18:18:22.388|10|Information|ServerRequest::onTimer|URL: http://169.254.255.1:80/mpnd/progressupdate?api=2.0
2014-07-20 18:18:22.401|10|Information|ServerRequest::onTimer|Data:
2014-07-20 18:18:22.401|30|Warning|DeviceNavEthernetManager::onDeviceNotResponding|No response for request: /mpnd/progressupdate?api=2.0
2014-07-20 18:18:22.401|10|Information|DeviceNavEthernetManager::onDeviceNotResponding|Schedule timer to check unresponsiveness
2014-07-20 18:18:22.413|20|Trace|ServerRequest::~ServerRequest|Parent: DeviceNavEthernetManager, 1
2014-07-20 18:18:23.185|10|Information|DeviceNavEthernetManager::AppendRequest|Sending /mpnd/progressupdate?api=2.0
2014-07-20 18:18:23.185|20|Trace|ServerRequest::ServerRequest1|Parent: DeviceNavEthernetManager, 1
2014-07-20 18:18:23.198|20|Trace|DeviceRequest::SendRequest|URL: http://169.254.255.1:80/mpnd/progressupdate?api=2.0
2014-07-20 18:18:23.198|20|Trace|DeviceRequest::SendRequest|checking for https
2014-07-20 18:18:23.198|20|Trace|DeviceRequest::SendRequest|request url is http://169.254.255.1:80/mpnd/progressupdate?api=2.0
2014-07-20 18:18:23.198|20|Trace|DeviceRequest::SendRequest|encoded request url is http://169.254.255.1:80/mpnd/progressupdate?api=2.0
2014-07-20 18:18:23.198|20|Trace|DeviceRequest::SendRequest|------
2014-07-20 18:18:23.198|20|Trace|DeviceRequest::SendRequest|Header. User-Agent: TomTomSA/3.3.0.1502
2014-07-20 18:18:23.198|20|Trace|DeviceRequest::SendRequest|Header. Accept: application/xml
2014-07-20 18:18:23.198|20|Trace|DeviceRequest::SendRequest|------
2014-07-20 18:18:23.198|20|Trace|DeviceRequest::SendRequest|After done 'get' method.
2014-07-20 18:18:23.439|10|Information|RelayProxy::reverseServerDisconnected|
2014-07-20 18:18:23.439|10|Information|RelayAgent::connectionError|error: 1, The remote host closed the connection
2014-07-20 18:18:23.439|10|Information|RelayAgent::reverseServerDisconnected|
2014-07-20 18:18:23.439|10|Information|RelayProxy::Stop|
2014-07-20 18:18:23.439|10|Information|DeviceNavEthernetManager::AppendRequest|Sending /sa/goodbye?api=2.0
2014-07-20 18:18:23.439|20|Trace|ServerRequest::ServerRequest1|Parent: DeviceNavEthernetManager, 2
2014-07-20 18:18:23.439|20|Trace|DeviceRequest::SendRequest|URL: http://169.254.255.1:80/sa/goodbye?api=2.0
2014-07-20 18:18:23.439|20|Trace|DeviceRequest::SendRequest|checking for https
2014-07-20 18:18:23.439|20|Trace|DeviceRequest::SendRequest|request url is http://169.254.255.1:80/sa/goodbye?api=2.0
2014-07-20 18:18:23.439|20|Trace|DeviceRequest::SendRequest|encoded request url is http://169.254.255.1:80/sa/goodbye?api=2.0
2014-07-20 18:18:23.439|20|Trace|DeviceRequest::SendRequest|------
2014-07-20 18:18:23.439|20|Trace|DeviceRequest::SendRequest|Header. User-Agent: TomTomSA/3.3.0.1502
2014-07-20 18:18:23.439|20|Trace|DeviceRequest::SendRequest|Header. Accept: application/xml
2014-07-20 18:18:23.439|20|Trace|DeviceRequest::SendRequest|------
2014-07-20 18:18:23.439|20|Trace|DeviceRequest::SendRequest|After done 'get' method.
2014-07-20 18:18:23.439|10|Information|DeviceNavEthernetManager::StopDevice|done.
2014-07-20 18:18:23.439|20|Trace|ServerRequest::~ServerRequest|Parent: DeviceNavEthernetManager, 2
2014-07-20 18:18:23.464|20|Trace|DeviceNavEthernetManager::onDeviceRequest|Request 2, /sa/goodbye?api=2.0, response: "<?xml version='1.0' encoding='utf-8' ?><goodbye xmlns="http://www.tomtom.com/ns/device/2.0" deviceid="QJ6213G05957" rescue="false" />", status code: 200
2014-07-20 18:18:23.464|10|Information|SupporterManager::onDeviceManagerGoodbye|
2014-07-20 18:18:23.464|20|Trace|ServerRequest::~ServerRequest|Parent: DeviceNavEthernetManager, 1
On system B the situation is a bit different, but not so much. There I have two printers, an Epson one and a Canon one. The Epson printer seems not to work at all ("not responding" errors), although Windows sees it as connected. Anyway, I don't have too much precise information on this, since it's my father's system and I don't have investigated on it too much. However I have better information on the Canon printer. This does work correctly if Windows is started after the printer has already been turned on and connected to the host system. Instead, if I turn on the printer after Windows has been already started, any printing attempt ends with a "printer not responding" error: I have to uncheck the printer from the "Devices" menu of VirtualBox and check it again to make the printer work again. Also, the same problem (printer not responding) happens if I leave the USB printer on and inactive for some minutes and then try to print something: it seems like it enters a standby state from which it can't resume anymore. Again, the solution is to uncheck and check again the printer from the VirtualBox Devices menu in order to disconnect and re-connect again the printer to the guest OS. I already described this problem at: viewtopic.php?f=7&t=62198
Useless to say that all of these devices work correctly when connected to a physical Windows system.
On both systems I'm using VirtualBox 4.3.14 with the USB extension pack (of the same version). Guest Additions are installed and their version matches that of the VirtualBox used to run the VMs.
So, I was wondering if these kind of issues with USB devices is known. Has anyone some good advice to make the situation better?
Also, might be another Windows version (like Vista or 7) as the guest OS more reliable for this kind of usage with VirtualBox?
Thanks in advance for any reply.