Bug 783714

Summary: /lib/udev/mtp-probe prevents VirtualBox from accessing an USB scanner
Product: [Fedora] Fedora Reporter: Vesa Halttunen <vesuri>
Component: libmtpAssignee: Linus Walleij <triad>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 16CC: triad
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: libmtp-1.1.2-2.fc16 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-02-07 07:52:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Vesa Halttunen 2012-01-21 23:18:25 UTC
Description of problem:
Trying to use a CanoScan D1250U2 USB scanner in VirtualBox results in the error message

Failed to create a proxy device for the USB device. (Error: VERR_READ_ERROR)
Error Code: NS_ERROR_FAILURE (0x80004005)

if /lib/udev/mtp-probe exists.

Version-Release number of selected component (if applicable):
libmtp.i686 1.1.1-2.fc16

How reproducible:
always

Steps to Reproduce:
1. Install VirtualBox (VirtualBox-4.1-4.1.8_75467_fedora16-1.i686)
2. Install the VirtualBox USB 2.0 support package
3. Configure a virtual machine running Windows (7)
4. Boot up the virtual machine
5. Attach the CanoScan D1250U2 USB scanner
6. Select Devices->USB Devices->Canon CanoScan
  
Actual results:
Failed to create a proxy device for the USB device. (Error: VERR_READ_ERROR)
Error Code: NS_ERROR_FAILURE (0x80004005)

Expected results:
The scanner is usable from inside VirtualBox.

Additional info:
Seems that this has been reported elsewhere as well: http://osdir.com/ml/general/2011-06/msg20017.html

Comment 1 Vesa Halttunen 2012-01-21 23:19:44 UTC
Workaround is to mv /lib/udev/mtp-probe to /lib/udev/mtp-probe.bak but then udevd will naturally say

Jan 22 01:09:01 vesuri udevd[2455]: failed to execute '/lib/udev/mtp-probe' 'mtp-probe /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-4 1 2': No such file or directory

Comment 2 Linus Walleij 2012-01-25 16:16:23 UTC
Can you provide lsusb -v for this scanner, so I can try to avoid
poking it...

Comment 3 Vesa Halttunen 2012-01-25 17:49:07 UTC
(In reply to comment #2)
> Can you provide lsusb -v for this scanner, so I can try to avoid
> poking it...

Bus 001 Device 002: ID 04a9:220c Canon, Inc. CanoScan D1250U2
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  idVendor           0x04a9 Canon, Inc.
  idProduct          0x220c CanoScan D1250U2
  bcdDevice            2.00
  iManufacturer           3 Canon
  iProduct                4 CanoScan
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower               10mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval               8
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

Comment 4 Linus Walleij 2012-01-28 08:54:04 UTC
Hm yeah that's a *very* strange device, it is a scanner, yet it provides a vendor-specific device descriptor, which has two bulk EP and one interrupt EP, just like an MTP device :-(

I will think of something, probably I'll just explicitly blacklist Canon devices since they don't make MTP equipment for a quick fix.

Comment 5 Fedora Update System 2012-01-28 10:15:52 UTC
libmtp-1.1.2-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/libmtp-1.1.2-2.fc16

Comment 6 Vesa Halttunen 2012-01-28 13:39:19 UTC
(In reply to comment #5)
> libmtp-1.1.2-2.fc16 has been submitted as an update for Fedora 16.
> https://admin.fedoraproject.org/updates/libmtp-1.1.2-2.fc16

I can confirm that this update fixes the problem.

Comment 7 Fedora Update System 2012-01-28 20:57:37 UTC
Package libmtp-1.1.2-2.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing libmtp-1.1.2-2.fc16'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-1016/libmtp-1.1.2-2.fc16
then log in and leave karma (feedback).

Comment 8 Linus Walleij 2012-01-29 01:54:42 UTC
Yay! :-)

Comment 9 Fedora Update System 2012-02-07 07:52:37 UTC
libmtp-1.1.2-2.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.