How to fix "VMware Workstation was unable to claim the device (No such file or directory)"

I'm running Ubuntu 7.10 using custom 2.6.23.11 kernel. Somehow, starting from kernel 2.6.23, VMware was unable to properly use my Windows Mobile PDA (Atom O2 Life). Every time I plugged in the Atom, VMware will spurt out "VMware Workstation was unable to claim the device" message. The issue was actually with VMware, and not the kernel. Follow the steps outlined below to work around this bug in VMware.

  1. Plug in your Windows Mobile device. You should see the error in VMware if you try to bind the device to VMware. Don't worry, just open up a terminal (xterm, gnome-terminal, konsole, etc.), and issue 'lsusb' command.
    x@bitubique:~$ lsusb
    Bus 011 Device 001: ID 0000:0000  
    Bus 010 Device 001: ID 0000:0000  
    Bus 009 Device 001: ID 0000:0000  
    Bus 007 Device 001: ID 0000:0000  
    Bus 005 Device 002: ID 0408:f003 Quanta Computer, Inc. 
    Bus 005 Device 001: ID 0000:0000  
    Bus 004 Device 001: ID 0000:0000  
    Bus 003 Device 003: ID 0db0:a970 Micro Star International 
    Bus 003 Device 001: ID 0000:0000  
    Bus 008 Device 001: ID 0000:0000  
    Bus 006 Device 001: ID 0000:0000  
    Bus 002 Device 001: ID 0000:0000  
    Bus 001 Device 001: ID 0000:0000
  2. From the 'lsusb' output, notice that the device is located at bus 5, device 2. Your device might show up on different bus / device, depending on your USB configuration. Take note of this value.
  3. Now we need to override this device configuration by writing '1' to /sys/bus/usb/devices/x-y/bConfigurationValue, where x is the bus id (5 in my case), and y is the device number (2 in my case).
    $ sudo su -  # become root
    # echo 1 > /sys/bus/usb/devices/5-2/bConfigurationValue

    Note the highlight. You need to change the value '5-2' to value that match your configuration, based on your 'lsusb' command output.

  4. Connect your Windows Mobile device to VMware again. It should work now.