O que está segurando meu dispositivo USB quando tento usá-lo no VirtualBox?

9

Host do Ubuntu, convidado do XP.

Quando eu conecto o dispositivo USB que quero na máquina virtual, obtenho:

  

Falha ao conectar o dispositivo USB Microchip Technology Inc. PICDEM FS Placa de Demonstração USB (C) 2004 à máquina virtual DevelXP.   Falha ao criar um dispositivo proxy para o dispositivo USB. (Erro: VERR_READ_ERROR).   Código de resultado: NS_ERROR_FAILURE (0x80004005)   Componente: Console   Interface: 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"

(Eu também tentei sem este arquivo, sem alteração)

$ 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

Por que isso está sendo realizado? O que está segurando? Nota: outros cartões usb personalizados funcionam bem. Este é antigo, então poderia ser um problema USB1 / 1.1 / 2? Eu desabilitei o USB 2.0 EHCI temporariamente na minha VM, mas sem alterações.

Mais informações:

$ 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)
    
por dargaud 17.06.2014 / 15:04

1 resposta

1

Eu tenho um problema semelhante com um dispositivo USB diferente, um relógio esportivo Garmin.

Esta é minha configuração:

  • Host : VirtualBox 5.0.0 r101573 no Ubuntu 14.04, com o Oracle VM VirtualBox Extension Pack instalado
  • Convidado : Windows 7, com Adições ao Convidado do VirtualBox instaladas

Não importa qual controlador USB eu escolha nas configurações da VM, sempre que eu inicio a VM, recebo o erro:

  

Falha ao criar um dispositivo proxy para o dispositivo USB. (Erro:   VERR_READ_ERROR).

     

Código do resultado: NS_ERROR_FAILURE (0x80004005) Componente: ConsoleWrap   Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

Após algumas pesquisas, concluímos que é provável que seja um bug notório do VirtualBox que ainda está no estado aberto (reabrir defeito, para ser preciso). Veja Bilhete VirtualBox # 5175 para mais detalhes. É algo a ver com o estado atual do dispositivo, que está de alguma forma no estado Held (que pode ser verificado executando o comando VBoxManage list usbhost como você também fez).

    
por mguassa 15.08.2015 / 22:32