Что удерживает мое USB-устройство, когда я пытаюсь использовать его в VirtualBox?

Что удерживает мое USB-устройство, когда я пытаюсь использовать его в VirtualBox?

Хост Ubuntu, гостевая XP.

Когда я подключаю нужное мне USB-устройство к виртуальной машине, я получаю:

Не удалось подключить USB-устройство Microchip Technology Inc. PICDEM FS USB Demo Board (C) 2004 к виртуальной машине DevelXP. Не удалось создать прокси-устройство для USB-устройства. (Ошибка: VERR_READ_ERROR). Код результата: NS_ERROR_FAILURE (0x80004005) Компонент: Консоль Интерфейс: IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}

$ lsusb
Bus 002 Device 029: ID 04d8:000c Microchip Technology, Inc. 

$ cat /etc/udev/rules.d/90-picdem.rules 
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="000c", GROUP="plugdev", MODE="660"

(Я тоже пробовал без этого файла, никаких изменений)

$ grep dargaud /etc/group:
plugdev:x:46:dargaud
vboxusers:x:124:dargaud

$ dmesg
[103413.447464] usb 2-1.3: new full-speed USB device number 29 using ehci-pci
[103413.549055] usb 2-1.3: New USB device found, idVendor=04d8, idProduct=000c
[103413.549063] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[103413.549068] usb 2-1.3: Product: PICDEM FS USB Demo Board (C) 2004
[103413.549072] usb 2-1.3: Manufacturer: Microchip Technology Inc.

$ VBoxManage list usbhost
Host USB Devices:
UUID:               fbd0bac3-f283-46bc-9632-603471a932cb
VendorId:           0x04d8 (04D8)
ProductId:          0x000c (000C)
Revision:           0.0 (0000)
Port:               2
USB version/speed:  2/1
Manufacturer:       Microchip Technology Inc.
Product:            PICDEM FS USB Demo Board (C) 2004
Address:            sysfs:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3//device:/dev/vboxusb/002/029
Current State:      Held

Почему он удерживается? Что его удерживает? Примечание: другие пользовательские USB-карты работают нормально. Но эта старая, так что может ли это быть проблема USB1/1.1/2? Я временно отключил USB 2.0 EHCI в своей виртуальной машине, но никаких изменений.

Больше информации:

$ sudo udevadm info -q path -n /dev/bus/usb/002/029
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3

$ sudo udevadm info -a -p /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3                      

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3':
    KERNEL=="2-1.3"
    SUBSYSTEM=="usb"
    DRIVER=="usb"
    ATTR{bDeviceSubClass}=="00"
    ATTR{bDeviceProtocol}=="00"
    ATTR{devpath}=="1.3"
    ATTR{idVendor}=="04d8"
    ATTR{speed}=="12"
    ATTR{bNumInterfaces}==" 1"
    ATTR{bConfigurationValue}=="1"
    ATTR{bMaxPacketSize0}=="8"
    ATTR{busnum}=="2"
    ATTR{devnum}=="29"
    ATTR{configuration}==""
    ATTR{bMaxPower}=="100mA"
    ATTR{authorized}=="1"
    ATTR{bmAttributes}=="80"
    ATTR{bNumConfigurations}=="1"
    ATTR{maxchild}=="0"
    ATTR{bcdDevice}=="0000"
    ATTR{avoid_reset_quirk}=="0"
    ATTR{quirks}=="0x8"
    ATTR{version}==" 2.00"
    ATTR{urbnum}=="18"
    ATTR{ltm_capable}=="no"
    ATTR{manufacturer}=="Microchip Technology Inc."
    ATTR{removable}=="removable"
    ATTR{idProduct}=="000c"
    ATTR{bDeviceClass}=="00"
    ATTR{product}=="PICDEM FS USB Demo Board (C) 2004"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1':
    KERNELS=="2-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{devpath}=="1"
    ATTRS{idVendor}=="8087"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="2"
    ATTRS{devnum}=="2"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="0mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="8"
    ATTRS{bcdDevice}=="0000"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="660"
    ATTRS{ltm_capable}=="no"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="0020"
    ATTRS{bDeviceClass}=="09"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb2':
    KERNELS=="usb2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{devpath}=="0"
    ATTRS{idVendor}=="1d6b"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{authorized_default}=="1"
    ATTRS{busnum}=="2"
    ATTRS{devnum}=="1"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="0mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="3"
    ATTRS{bcdDevice}=="0313"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="0000:00:1d.0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="26"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 3.13.0-29-generic ehci_hcd"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="0002"
    ATTRS{bDeviceClass}=="09"
    ATTRS{product}=="EHCI Host Controller"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci-pci"
    ATTRS{irq}=="17"
    ATTRS{subsystem_vendor}=="0x1028"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0320"
    ATTRS{companion}==""
    ATTRS{enabled}=="1"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{local_cpus}=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000f"
    ATTRS{device}=="0x3b34"
    ATTRS{uframe_periodic_max}=="100"
    ATTRS{msi_bus}==""
    ATTRS{local_cpulist}=="0-3"
    ATTRS{vendor}=="0x8086"
    ATTRS{subsystem_device}=="0x040a"
    ATTRS{numa_node}=="-1"
    ATTRS{d3cold_allowed}=="1"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""


$ VBoxManage showvminfo DevelXP --details  
Name:            DevelXP
Groups:          /
Guest OS:        Windows XP (32 bit)
UUID:            79b38fbb-d0d5-4b78-9ee4-944050e4b4b8
Config file:     /home/dargaud/.VirtualBox/Machines/DevelXP/DevelXP.vbox
Snapshot folder: /home/dargaud/.VirtualBox/Machines/DevelXP/Snapshots
Log folder:      /home/dargaud/.VirtualBox/Machines/DevelXP/Logs
Hardware UUID:   79b38fbb-d0d5-4b78-9ee4-944050e4b4b8
Memory size:     2048MB
Page Fusion:     off
VRAM size:       64MB
CPU exec cap:    100%
HPET:            off
Chipset:         piix3
Firmware:        BIOS
Number of CPUs:  2
PAE:             off
Long Mode:       on
Synthetic CPU:   off
CPUID overrides: None
Boot menu mode:  message and menu
Boot Device (1): DVD
Boot Device (2): HardDisk
Boot Device (3): Not Assigned
Boot Device (4): Not Assigned
ACPI:            on
IOAPIC:          on
Time offset:     0ms
RTC:             local time
Hardw. virt.ext: on
Nested Paging:   on
Large Pages:     off
VT-x VPID:       on
VT-x unr. exec.: on
State:           running (since 2014-06-17T12:43:14.761000000)
Monitor count:   1
3D Acceleration: off
2D Video Acceleration: on
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address: 
Teleporter Password: 
Tracing Enabled: off
Allow Tracing to Access VM: off
Tracing Configuration: 
Autostart Enabled: off
Autostart Delay: 0
Default Frontend: 
Storage Controller Name (0):            IDE Controller
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on
IDE Controller (0, 0): /home/dargaud/.VirtualBox/HardDisks/XP.vdi (UUID: 93969496-17bb-46c2-9e56-a7c24b6e05f4)
IDE Controller (1, 0): Empty
NIC 1:           MAC: 080027A62FA1, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 1 Settings:  MTU: 0, Socket (send: 64, receive: 64), TCP Window (send:64, receive: 64)
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1:          disabled
UART 2:          disabled
LPT 1:           disabled
LPT 2:           disabled
Audio:           enabled (Driver: ALSA, Controller: AC97)
Clipboard Mode:  Bidirectional
Drag'n'drop Mode: disabled
Session type:    GUI/Qt
Video mode:      1680x1050x32 at 0,0
VRDE:            disabled
USB:             enabled
EHCI:            enabled

USB Device Filters:

Index:            0
Active:           no
Name:             JMicron USB to ATA/ATAPI bridge [0100]
VendorId:         152d
ProductId:        2338
Revision:         0100
Manufacturer:     JMicron
Product:          USB to ATA/ATAPI bridge
Remote:           0
Serial Number:    43527262060A

Index:            1
Active:           yes
Name:             Cypress
VendorId:         04b4
ProductId:        8613
Revision:         
Manufacturer:     
Product:          
Remote:           0
Serial Number:    

Index:            2
Active:           no
Name:             Broadcom Corp 5880 [0101]
VendorId:         0a5c
ProductId:        5800
Revision:         0101
Manufacturer:     Broadcom Corp
Product:          5880
Remote:           0
Serial Number:    0123456789ABCD

Index:            3
Active:           yes
Name:             Microchip Technology Inc. PICDEM FS USB Demo Board (C) 2004
VendorId:         04d8
ProductId:        000c
Revision:         0000
Manufacturer:     Microchip Technology Inc.
Product:          PICDEM FS USB Demo Board (C) 2004
Remote:           
Serial Number:    

Available remote USB devices:

<none>

Currently Attached USB Devices:

<none>

Bandwidth groups:  <none>

Shared folders:  

Name: 'dargaud', Host path: '/home/dargaud' (machine mapping), writable
Name: 'lpscdata', Host path: '/informatique/dargaud' (machine mapping), writable
Name: 'D620', Host path: '/D620' (machine mapping), writable
Name: 'tmp', Host path: '/tmp' (machine mapping), writable

VRDE Connection:    not active
Clients so far:     0

Video capturing:    not active
Capture screens:    0
Capture file:       /home/dargaud/.VirtualBox/Machines/DevelXP/DevelXP.webm
Capture dimensions: 1024x768
Capture rate:       512 kbps
Capture FPS:        25

Guest:

Configured memory balloon size:      0 MB
OS type:                             WindowsXP
Additions run level:                 3
Additions version:                   4.2.18 r88780


Guest Facilities:

Facility "VirtualBox Base Driver": active/running (last update: 2014/06/17 12:43:25 UTC)
Facility "VirtualBox System Service": active/running (last update: 2014/06/17 12:44:01 UTC)
Facility "VirtualBox Desktop Integration": active/running (last update: 2014/06/17 12:44:23 UTC)
Facility "Seamless Mode": active/running (last update: 2014/06/17 12:43:25 UTC)
Facility "Graphics Mode": active/running (last update: 2014/06/17 12:43:25 UTC)

решение1

У меня похожая проблема с другим USB-устройством — спортивными часами Garmin.

Вот моя конфигурация:

  • Хозяин: VirtualBox 5.0.0 r101573 на Ubuntu 14.04 с установленным пакетом расширений Oracle VM VirtualBox
  • Гость: Windows 7 с установленными гостевыми дополнениями VirtualBox

Какой бы USB-контроллер я ни выбрал в настройках виртуальной машины, при каждом запуске виртуальной машины возникает ошибка:

Не удалось создать прокси-устройство для USB-устройства. (Ошибка: VERR_READ_ERROR).

Код результата: NS_ERROR_FAILURE (0x80004005) Компонент: ConsoleWrap Интерфейс: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

После некоторых исследований я пришел к выводу,скорее всего, это печально известная ошибка VirtualBox, которая все еще находится в открытом состоянии(точнее, повторно открытый дефект). См.Билет VirtualBox #5175для подробностей. Это что-то связанное с текущим состоянием устройства, которое каким-то образом находится в Heldсостоянии (это можно проверить, выполнив VBoxManage list usbhostкоманду, как вы и сделали).

Связанный контент