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.
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.
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
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.
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?
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
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?
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
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"
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.
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.
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.
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?
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.
Did you try devfs with the path to the real location set as I described above?
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?
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).
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
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.