VirtualBox

Opened 7 years ago

Last modified 7 years ago

#16358 new defect

USB MSD device BBB (bulk only) transfer fails due to CBW/CSW tag mismatch

Reported by: lerdmann Owned by:
Component: USB Version: VirtualBox 5.1.12
Keywords: Cc:
Guest type: other Host type: Windows

Description

Host is Windows 7, guest is OS/2 (eComStation, latest of everything). I am using this set of USB drivers in the guest: http://hobbes.nmsu.edu/download/pub/incoming/usbdrv213.zip

I have an "Alcor Micro Corp." USB stick (vendor id: 0x58F, product id:0x6387). If I connect that device to the guest it is properly detected as a USB 2.0 device and I can access it in the guest. However, if I start some lengthy operation like a chkdsk.exe on the device, I eventually get a mismatch of the tag word in the sent out CBW block and the subsequently received CSW block (I have detected this by enabling tracing for USBMSD.ADD in OS/2 and looking at the trace output). At the point of failure, the CSW tag is off by 1 from the tag transferred in the corresponding CBW and it is equal to the CBW and CSW of the last (successful) transmission (as can be expected). If the tag is out of sync the USBMSD.ADD driver issues a MSD reset command and subsequently clears the input and output bulk pipes which of course is reported back to the OS as a transfer failure.

If I use the very same device under a native OS/2 installation with the very same set of USB drivers, I can successfully run the chkdsk. To me it looks like that on a large number of BBB transfers (where I cannot give a hard and fast value for "large"), that the USB virtualization eventually gets out of sync.

Let me know if you need any Virtualbox logs.

Attachments (1)

VBox.log (75.1 KB ) - added by lerdmann 7 years ago.
VBox log

Download all attachments as: .zip

Change History (8)

comment:1 by aeichner, 7 years ago

We would need to get a capture of the USB traffic between the host and the guest and a VBox.log of the affected VM. How to set up USB traffic capturing is described here: https://www.virtualbox.org/manual/ch09.html#usbtrafficcapturing

comment:2 by lerdmann, 7 years ago

VBoxManage controlvm "VM name" usbattach "device uuid|address" --capturefile "filename"

How do you specify "device uuid|address" ? Can you give a simple commandline example ? I tried: "058F:6387" and also "30CBAAS31399" (which is the devices serialnumber) but that did not work out. Is there anyway to display all the USB devices uuids ?

comment:3 by lerdmann, 7 years ago

I also cannot get:
VBoxManage setextradata "VM name" VBoxInternal/Devices/usb-ehci/0/LUN#0/Config/CaptureFilename "filename"

to work. my setting shows up in the VM log but the file is never created.

by lerdmann, 7 years ago

Attachment: VBox.log added

VBox log

comment:4 by lerdmann, 7 years ago

In the meantime I attached the VMBox log. I now also have a USB capture file but it is 27 MB in size. I zipped to about >= 900 kBytes but it's still too large to attach it here.

comment:5 by aeichner, 7 years ago

You can list all USB devices with their UUID and address with:

VBoxManage list usbhost

comment:6 by aeichner, 7 years ago

You can send the capture to alexander <dot> eichner <at> oracle <dot> com.

comment:7 by lerdmann, 7 years ago

Sent 2 traces to the above email address (1st for EHCI in total, 2nd one only for the Alcor stick and the chkdsk action).

Last edited 7 years ago by lerdmann (previous) (diff)
Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use