VMware Communities
ds79
Enthusiast
Enthusiast

Unable to claim USB device

Hi,

I've just switched to a new PC and re-installed Linux from scratch. Though using the same VMWare Workstation 6.0 Beta (build 44426), I can't connect my PocketPC to the VM anymore. (Read: it worked and still works just fine on my old machine).

Connecting e.g. a USB stick works, but when I select "High PocketPC USB Sync", VMWare tells me "VMware workstation was unable to claim the device (No such file or directory)".

The log says:

May 06 22:27:28.835: vmx| USB: Connecting device 0xe00100030bb40b01

May 06 22:27:28.835: vmx| USB: Found device \[name:High\ PocketPC\ USB\ Sync vid:0bb4 pid:0b01 path:1/1/3 speed:full family:comm,pda]

May 06 22:27:28.835: vmx| USBG: CONNREQ: Dequeued head request after 0 ms for \[name:High\ PocketPC\ USB\ Sync vid:0bb4 pid:0b01 path:1/1/3 speed:full family:comm,pda]

May 06 22:27:28.841: vmx| USBGL: CLAIMINTERFACE=0 failed -1:2:No such file or directory

May 06 22:27:28.841: vmx| Msg_Post: Information

May 06 22:27:28.841: vmx| \[msg.usb.claimFailed] VMware Workstation was unable to claim the device (No such file or directory)

May 06 22:27:28.841: vmx| \----


May 06 22:27:28.843: vmx| USBGL: Connect failed for e00100030bb40b01

BTW, I also get the following output:

...

May 06 22:26:47.755: vmx| SOCKET 65 client closed connection

May 06 22:26:52.755: vmx| SOCKET 66 client closed connection

May 06 22:26:57.752: vmx| SOCKET 67 client closed connection

May 06 22:27:02.746: vmx| SOCKET 68 client closed connection

May 06 22:27:07.729: vmx| SOCKET 69 client closed connection

May 06 22:27:12.820: vmx| SOCKET 70 client closed connection

...

The lsusb -v output shows

Bus 001 Device 003: ID 0bb4:0b01 High Tech Computer Corp.

Device Descriptor:

bLength 18

bDescriptorType 1

bcdUSB 2.00

bDeviceClass 239 Miscellaneous Device

bDeviceSubClass 1 ?

bDeviceProtocol 1 Microsoft ActiveSync

bMaxPacketSize0 16

idVendor 0x0bb4 High Tech Computer Corp.

idProduct 0x0b01

bcdDevice 0.00

iManufacturer 1 MSFT

iProduct 2 PocketPC USB Sync

iSerial 3 00955135-3708-0106-1800-0050bf3f5173

bNumConfigurations 1

Configuration Descriptor:

bLength 9

bDescriptorType 2

wTotalLength 62

bNumInterfaces 2

bConfigurationValue 1

iConfiguration 0

bmAttributes 0xc0

Self Powered

MaxPower 500mA

Interface Descriptor:

bLength 9

bDescriptorType 4

bInterfaceNumber 0

bAlternateSetting 0

bNumEndpoints 1

bInterfaceClass 239 Miscellaneous Device

bInterfaceSubClass 1 ?

bInterfaceProtocol 1 Microsoft ActiveSync

iInterface 0

Endpoint Descriptor:

bLength 7

bDescriptorType 5

bEndpointAddress 0x81 EP 1 IN

bmAttributes 3

Transfer Type Interrupt

Synch Type None

Usage Type Data

wMaxPacketSize 0x0008 1x 8 bytes

bInterval 1

Interface Descriptor:

bLength 9

bDescriptorType 4

bInterfaceNumber 1

bAlternateSetting 0

bNumEndpoints 2

bInterfaceClass 10 CDC Data

bInterfaceSubClass 0 Unused

bInterfaceProtocol 0

iInterface 0

Endpoint Descriptor:

bLength 7

bDescriptorType 5

bEndpointAddress 0x82 EP 2 IN

bmAttributes 2

Transfer Type Bulk

Synch Type None

Usage Type Data

wMaxPacketSize 0x0040 1x 64 bytes

bInterval 0

Endpoint Descriptor:

bLength 7

bDescriptorType 5

bEndpointAddress 0x03 EP 3 OUT

bmAttributes 2

Transfer Type Bulk

Synch Type None

Usage Type Data

wMaxPacketSize 0x0040 1x 64 bytes

bInterval 0

I've also created a completely new (empty) VM and it shows the same problem. Attaching the PocketPC to different USB ports on the machine does not make a difference either.

Please help, what can I do to have VMWare accept the USB device?

P.S.: In another thread it was suggested to add usb.zerobasedinterface = "FALSE" to the *.vmx file, but this did not help.

P.S.: My old system was Gentoo Linux 2.6.20 on P4, my new one is Gentoo Linux 2.6.21 on C2D. The kernel has been recompiled from scratch, though I compared the settings for both and they should in fact be quite similar.

0 Kudos
25 Replies
ds79
Enthusiast
Enthusiast

Update:

While I started to suspect that this was a hardware issue, installing OpenSuSE 10.2 instead of Gentoo on a spare partition showed that the problem does not exist there.

On SuSE (2.6.18, default kernel), the log shows:

May 07 14:04:09.885: vmx| USB: Connecting device 0xe00500030bb40b01

May 07 14:04:09.885: vmx| USB: Found device \[name:High\ PocketPC\ USB\ Sync vid:0bb4 pid:0b01 path:5/1 speed:full family:comm,pda]

May 07 14:04:09.885: vmx| USB: Found device \[name:Kingston\ DataTravelerMini vid:0951 pid:1602 path:2/4 speed:high family:storage]

May 07 14:04:09.885: vmx| USBG: CONNREQ: Dequeued head request after 0 ms for \[name:High\ PocketPC\ USB\ Sync vid:0bb4 pid:0b01 path:5/1 speed:full family:comm,pda]

May 07 14:04:09.890: vmx| USB: Automatically connecting virtual hub

May 07 14:04:09.890: vmx| USB: Connecting device 0xc00000010e0f0002

May 07 14:04:09.890: vmx| USB: Adding autoconnect pattern \[path:5/1 autoclean:1] in slot 0

So this must indeed be some problem with my current installation, maybe some missing kernel settings?

I tried to enable the extended USB logging output, but either the above is already the full output or the usb.analyzer.enable = "TRUE" is not supported anymore on WS6.

0 Kudos
ejasons
Contributor
Contributor

I am getting this error also -- sometimes. Other times, when I try to connect the USB device (a SmartPhone), the VMWare program just exits.

Host is Fedore Core 6, VMWare Workstation 6, the target doesn't seem to matter...

Any ideas?

I would really hate to have to go back to WS5 (especially after having paid the money to upgrade...).

Jason

0 Kudos
ds79
Enthusiast
Enthusiast

For me it does not make a difference whether to use WS5.5 or WS6, the problem happens with both.

After extensive trial-and-error, I switched back to kernel 2.6.20 and it is now working just fine. I don't know what the problem with 2.6.21 is, I even used the 2.6.20 settings as basis and accepted the defaults for the new features.

0 Kudos
ejasons
Contributor
Contributor

For me it does not make a difference whether to use

WS5.5 or WS6, the problem happens with both.

After extensive trial-and-error, I switched back to

kernel 2.6.20 and it is now working just fine. I

don't know what the problem with 2.6.21 is, I even

used the 2.6.20 settings as basis and accepted the

defaults for the new features.

Ah, that was it! Reverted to 2.6.20, and everything works.

Though, at least with the Fedora 2.6.20 kernel, my system locked up tight twice while trying to use the USB device -- hasn't happened yet with my custom-compiled 2.6.20 (but I haven't used it very long that way yet).

Perhaps an addendum to the release notes is in order?

0 Kudos
mordecai
Contributor
Contributor

I am having the same problem, and I'm running 2.6.20 on my host OS (Ubuntu Feisty).

When I try to enable a USB device from the "VM->Removable Devices->USB Devices" tab, I get the message "VMWare Workstation was unable to claim the device (no such file or directory)."

My vmware.log looks like this:

May 10 16:45:05.706: vmx| USB: Connecting device 0xe003001410c4ea60

May 10 16:45:05.707: vmx| USB: Found device [name:Lexmark\ XLNTIdea\

Nexis\ 100 vid:043d pid:0078 path:3/2/0 speed:full family:printer]

May 10 16:45:05.707: vmx| USB: Device [name:Lexmark\ XLNTIdea\ Nexis\

100 vid:043d pid:0078 path:3/2/0 speed:full family:printer] should

already be connected

May 10 16:45:05.707: vmx| USB: Found device [name:Cygnal\ Integrated\

CP2101\ USB\ to\ UART\ Bridge\ Controller vid:10c4 pid:ea60 path:3/2/1

speed:full family:vendor]

May 10 16:45:05.707: vmx| USB: Autoconnecting device "Cygnal Integrated

CP2101 USB to UART Bridge Controller" matching pattern [path:3/2/1

autoclean:1]

May 10 16:45:05.707: vmx| USB: Connecting device 0xe003001410c4ea60

May 10 16:45:05.707: vmx| USB: Found device [name:IOI\ Cypress\ AT2LP

vid:3873 pid:6830 path:3/2/2 speed:high family:storage]

May 10 16:45:05.707: vmx| USB: Device [name:IOI\ Cypress\ AT2LP vid:3873

pid:6830 path:3/2/2 speed:high family:storage] should already be connected

May 10 16:45:05.708: vmx| USBG: CONNREQ: Dequeued head request after 1

ms for [name:Cygnal\ Integrated\ CP2101\ USB\ to\ UART\ Bridge\

Controller vid:10c4 pid:ea60 path:3/2/1 speed:full family:vendor]

May 10 16:45:05.778: vmx| USBGL: CLAIMINTERFACE=0 failed -1:2:No such

file or directory

May 10 16:45:05.778: vmx| Msg_Post: Information

May 10 16:45:05.778: vmx| \[msg.usb.claimFailed] VMware Workstation was

unable to claim the device (No such file or directory)

May 10 16:45:05.778: vmx| \----


May 10 16:45:05.787: vmx| USBGL: Connect failed for e003001410c4ea60

May 10 16:45:05.967: vmx| SOCKET 423 client closed connection

May 10 16:45:07.160: mks| MKS lost grab

May 10 16:45:10.849: vmx| SOCKET 424 client closed connection

May 10 16:45:15.850: vmx| SOCKET 425 client closed connection

May 10 16:45:20.829: vmx| SOCKET 426 client closed connection

May 10 16:45:25.867: vmx| SOCKET 427 client closed connection

May 10 16:45:30.839: vmx| SOCKET 428 client closed connection

May 10 16:45:35.839: vmx| SOCKET 429 client closed connection

May 10 16:45:40.850: vmx| SOCKET 430 client closed connection

May 10 16:45:45.832: vmx| SOCKET 431 client closed connection

May 10 16:45:50.828: vmx| SOCKET 432 client closed connection

May 10 16:45:55.846: vmx| SOCKET 433 client closed connection

May 10 16:46:00.828: vmx| SOCKET 434 client closed connection

May 10 16:46:05.857: vmx| SOCKET 435 client closed connection

May 10 16:46:10.865: vmx| SOCKET 436 client closed connection

May 10 16:46:15.869: vmx| SOCKET 437 client closed connection

May 10 16:46:20.980: vmx| SOCKET 438 client closed connection

0 Kudos
pcrow17
Contributor
Contributor

I just upgraded from 2.6.20 to 2.6.21.5 and now I have this problem. The error message reports "VMware Workstation was unable to claim the device (No such file or directory)," which leads me to suspect that something with 2.6.21 has changed the directory structure in /dev/ slightly, so perhaps all that's needed is a symlink?

0 Kudos
pcrow
Contributor
Contributor

More Info:

\# lsusb

Bus 005 Device 001: ID 0000:0000

Bus 004 Device 003: ID 413c:2003 Dell Computer Corp.

Bus 004 Device 002: ID 413c:3200 Dell Computer Corp.

Bus 004 Device 001: ID 0000:0000

Bus 003 Device 001: ID 0000:0000

Bus 001 Device 001: ID 0000:0000

Bus 002 Device 007: ID 0bb4:0b51 High Tech Computer Corp.

Bus 002 Device 001: ID 0000:0000

0 Kudos
Neben
VMware Employee
VMware Employee

Could you please "ls -al /proc/bus/usb/" please?

Ubuntu has changed /proc/bug/usb/devices into a symbolic link to /proc/bus/usb/.usbfs/devices. If it is linked, you can add the following line to your VM's vmx config file:

usb.generic.devfsPath = "/proc/bus/usb/.usbfs"

0 Kudos
dfx
Contributor
Contributor

looks like this is caused by newer kernels not automatically selecting a configuration for some (unhandled?) usb devices. the "claim interface" call will return "no such file" if the device has no active configuration. in the kernel log (dmesg), this looks like this when the device is connected:

usb 1-2: new full speed USB device using uhci_hcd and address 4

usb 1-2: no configuration chosen from 1 choice

however, you can manually select a configuration via sysfs. go to /sys/bus/usb/devices/, there you will symlinks for all connected devices (and also hubs etc). in my case the link was called 1-2. each link points to a directory, which contains the files bNumConfigurations and bConfigurationValue. bNumConfigurations contains the number of possible configurations (which you can also see in the dmesg message):

xwing:/sys/bus/usb/devices/1-2# cat bNumConfigurations

1

xwing:/sys/bus/usb/devices/1-2#

as there is no active configuration, bConfigurationValue will be empty:

xwing:/sys/bus/usb/devices/1-2# cat bConfigurationValue

xwing:/sys/bus/usb/devices/1-2#

by writing a value into bConfigurationValue, you can select an active configuration:

xwing:/sys/bus/usb/devices/1-2# echo 1 > bConfigurationValue

xwing:/sys/bus/usb/devices/1-2# cat bConfigurationValue

1

xwing:/sys/bus/usb/devices/1-2#

then it should be possible for vmware to claim the device (do it directly via the menu, VM/removable devices), don't let it happen automatically via disconnect/reconnect, as this will remove the active configuration again.

Neben
VMware Employee
VMware Employee

I believe we default to devfs if it's present, but we don't handle it correctly if the default path is a sym link. Did you try devfs with the path to the real location set as I described above? We do support sysfs for those distros who use it exclusively (i.e. Suse). I don't know how to force the vmx to use sysfs without disabling devfs, but you could give disabling devfs, or at least usbdevfs, a try.

0 Kudos
shaoh
Contributor
Contributor

I've using this workaround for the problem, if you are using PocketPCs, and Windows Mobile 5-based devices.

I'm running Gentoo-Linux and almost all modules compiled including rndis_host, cdc_ether modules.

In /etc/modprobe.conf I've added:

blacklist cdc_ether

blacklist rndis_host

blacklist ipaq

That way the kernel finds a configuration for the device and put the '1' in bConfigurationValue, but sinces the modules is blacklisted the value stays '1', even if you disconnect the device and reconnect it again.

0 Kudos
Poet_Imp
Contributor
Contributor

Just an update so that the thread does not drift into forgotten realms.. The problem persists under kernel: 2.6.22.7-85.fc7

Such a nuisance! Does anybody know if there is a bugzilla report filed against this?

0 Kudos
Poet_Imp
Contributor
Contributor

I have opened a bugzilla incident::

http://bugzilla.kernel.org/show_bug.cgi?id=9097

Please feel free to track, update and add more information.

0 Kudos
Poet_Imp
Contributor
Contributor

This from the kernel guys.... anybody out there have a support agreement with VMWare and are willing to open an issue?
-----
{noformat}This is not a Linux kernel issue, vmware knows how to properly disconnect a device from a driver, they just need to do it in the correct manner. I suggest you take this up with them. {noformat}
0 Kudos
Neben
VMware Employee
VMware Employee

Did you try devfs with the path to the real location set as I described above?

0 Kudos
Poet_Imp
Contributor
Contributor

$ ls -al /proc/bus/usb/

total 0

drwxr-xr-x 7 root root 0 2007-09-27 02:53 .

dr-xr-xr-x 6 root root 0 2007-09-27 02:53 ..

dr-xr-xr-x 2 root root 0 2007-09-27 02:53 001

dr-xr-xr-x 2 root root 0 2007-09-27 02:53 002

dr-xr-xr-x 2 root root 0 2007-09-27 02:53 003

dr-xr-xr-x 2 root root 0 2007-09-27 02:53 004

dr-xr-xr-x 2 root root 0 2007-09-27 02:53 005

-rrr-- 1 root root 0 2007-09-27 17:34 devices

My "devices" is not a link to another location. I don't think this applies. Am I reading that wrong?

0 Kudos
Neben
VMware Employee
VMware Employee

Nope, it looks like you're fine (maybe I was reading Gentoo and thinking Ubuntu). Obviously, the kernel guys have changed something about how USB works (WS6 works just fine on previous kernels).

0 Kudos
Poet_Imp
Contributor
Contributor

I opened a problem with the kernel folks and they are pointing at VMWare . Not even any discussion. I agree that they changed something in the 2.6.21 release. I am not high enough of the food chain to argue either side. I am hoping that someone who is takes ownership and works towards a solution.

The linix kernel guys vollied it back to VMWare... Their serve?

---

BTW: I am seeing this on Fedora 7

0 Kudos
ds79
Enthusiast
Enthusiast

After my initial discovery that 2.6.20 was working, I kept using it until now. Today I tried switching to the latest kernel (2.6.23) and the issue remains.

The trick with setting bConfigurationValue posted by dfx is working fine, however it's a bit tedious to do this every single time (I plug/unplug my PocketPC several times per hour). But maybe it's possible to have some udev script or something take care of that automatically?

Also using Gentoo, I checked out shaoh's suggested solution with blacklisting the modules, however even when loading ipaq/rndis/cdc_ether modules, the device is not taken by any of the modules and bConfigurationValue stays 0, so it doesn't work for me.

As Poet_Imp pointed out, Gentoo does not use a symlink in dev, so that does not seem to be the issue.

At this time, all kernels that were released in the last 6 months are not supported by VMWare + WM USB devices. I would also kindly ask that somebody higher up has this checked out.

0 Kudos