Nos últimos dias, passei muito tempo procurando uma solução para esse desafio.
Eu tenho um Seagate Expansion Desktop Drive, que é um disco USB 3.0 externo de 2 TB que uso para testes. A unidade é conectada a uma porta USB 3.0 no meu Macbook Pro em um teste e a uma porta USB 3.0 no meu Mac Mini para outro teste. Tanto o Macbook Pro quanto o Mac Mini possuem o virtualbox instalado e um convidado Ubuntu instalado. A unidade deve estar acessível ao convidado do Ubuntu.
Minha configuração atual: Macbook Pro:
Model Name: MacBook Pro
Model Identifier: MacBookPro11,1
Processor Name: Intel Core i7
Processor Speed: 2,8 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 4 MB
Memory: 16 GB
Boot ROM Version: MBP111.0138.B15
SMC Version (system): 2.16f68
Versões:
Hospedar:
Mac OSX: 10.10.5
VirtualBox: 5.0.4 r102546
USB device: Seagate Expansion Desktop Drive 2TB
Oracle VM VirtualBox Extension Pack: 5.0.4r102546 Installed
In Setup - Ports - USB USB 3.0 (xHCI) Controller is enabled
Convidado:
Guest: Ubuntu 14.04
VboxGuestAdditions installed
sem nome -a
Linux patal-vbox-ubuntu-002 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Pré-condição: unidade Seagate conectada à alimentação e porta USB 3.0 no Macbook Pro (ou Mini) (ejetado no Filer em osx) Macbook Pro iniciado e conectado VirtualBox iniciado Convidado (Ubuntu 14.04) Iniciado e conectado (modo janela não tela cheia)
Resultado esperado: a unidade Seagate deve estar listada no gerenciador de arquivos em Dispositivos no Ubuntu. A unidade deve estar listada em /dev como uma unidade como /dev/sdb no ubuntu por exemplo A unidade deve ser montável no ubuntu
Resultado real: A unidade não está listada no gerenciador de arquivos em Dispositivos no Ubuntu A unidade não está listada em /dev no Ubuntu
root@patal-vbox-ubuntu-002:~# ls -al /dev/sd*
brw-rw---- 1 root disk 8, 0 sep 26 09:16 /dev/sda
brw-rw---- 1 root disk 8, 1 sep 26 09:11 /dev/sda1
brw-rw---- 1 root disk 8, 2 sep 26 09:16 /dev/sda2
brw-rw---- 1 root disk 8, 5 sep 26 09:11 /dev/sda5
lsusb:
root@patal-vbox-ubuntu-002:~# lsusb
Bus 002 Device 002: ID 0bc2:3321 Seagate RSS LLC
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
saída lsusb detalhada para Seagate RSS LLC: root@patal-vbox-ubuntu-002:~# lsusb -v
Bus 002 Device 002: ID 0bc2:3321 Seagate RSS LLC
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x0bc2 Seagate RSS LLC
idProduct 0x3321
bcdDevice 1.00
iManufacturer 2 Seagate
iProduct 3 Expansion Desk
iSerial 1 NA4KX5JA
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 121
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
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 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 4
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 98
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 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
MaxStreams 32
Data-in pipe (0x03)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
MaxStreams 32
Data-out pipe (0x04)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
MaxStreams 32
Status pipe (0x02)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 0
Command pipe (0x01)
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 22
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 10 micro seconds
bU2DevExitLat 2047 micro seconds
Device Status: 0x0001
Self Powered
saída dmesg:
[ 795.810773] usb 2-1: new SuperSpeed USB device number 3 using xhci_hcd
[ 795.829590] usb 2-1: New USB device found, idVendor=0bc2, idProduct=3321
[ 795.829594] usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 795.829595] usb 2-1: Product: Expansion Desk
[ 795.829596] usb 2-1: Manufacturer: Seagate
[ 795.829597] usb 2-1: SerialNumber: NA4KX5JA
[ 795.857795] usb 2-1: USB controller 0000:00:0c.0 does not support streams, which are required by the UAS driver.
[ 795.857798] usb 2-1: Please try an other USB controller if you wish to use UAS.
[ 795.857799] usb-storage 2-1:1.0: USB Mass Storage device detected
[ 795.857848] scsi host5: usb-storage 2-1:1.0
[ 822.485641] usb 2-1: reset SuperSpeed USB device number 3 using xhci_hcd
[ 822.503463] xhci_hcd 0000:00:0c.0: xHCI xhci_drop_endpoint called with disabled ep ffff880013ebac00
[ 822.503468] xhci_hcd 0000:00:0c.0: xHCI xhci_drop_endpoint called with disabled ep ffff880013ebac48
[ 890.772127] audit_printk_skb: 120 callbacks suppressed
[ 890.772130] audit: type=1400 audit(1443252349.697:62): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=2761 comm="apparmor_parser"
[ 890.772135] audit: type=1400 audit(1443252349.697:63): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=2761 comm="apparmor_parser"
[ 890.772386] audit: type=1400 audit(1443252349.697:64): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=2761 comm="apparmor_parser"
Suspeito que o problema esteja nesta linha do dmesg:
[ 795.857795] usb 2-1: USB controller 0000:00:0c.0 does not support streams, which are required by the UAS driver.
É um problema do Virtualbox ou do Ubuntu? O Ubuntu poderia não estar lidando corretamente com o controlador USB xHCI?
Aliás, o Drive funciona em uma estação de trabalho kubuntu dedicada e em uma VM do Windows 10 do mesmo macbook pro.
@nephente (anexado conforme solicitado) Presumo que você pretenda definir o controlador no VirtualBox como controlador USB 2.0 (EHCI). Se for esse o caso, recebo o seguinte erro no VirtualBox:
Failed to attach the USB device Seagate Expansion Desk [0100] to the virtual machine patal-vbox-ubuntu-002.
Failed to create a proxy device for the USB device.
(Error: VERR_PDM_NO_USB_PORTS).
Result Code: NS_ERROR_FAILURE (0x80004005) Component: ConsoleWrap Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
Outra coisa que também tentei, mas não mencionei, foi conectar o dispositivo USB 3.0 a um hub USB 2.0 e conectar o hub ao Macbook Pro. Isso também não funcionou.
@Takkat Obrigado por sua sugestão de criar um filtro e garantir que a unidade seja desmontada/ejetada do osx.
Criei um filtro para o Seagate Expansion Desk (Desk como no Desktop) e certifiquei-me de que a unidade não esteja montada em osx.
Resultado: certificar-se de que o drive não estava montado e criar um filtro para o drive não fez diferença. A unidade ainda é reconhecida conforme descrito no início deste post.
Responder1
O suporte USB 3.0 foi adicionado recentemente no VirtualBox versão 5.0. Por favor, leia as notas de lançamentoaqui. (Para uma pesquisa rápida use a função de pesquisa do seu navegador e escreva "USB 3").
Para acessar este novo recurso você deve instalar o Extension Pack.
Para instalar o pacote de extensão você deve clicar com o botão direito no arquivo baixado e "Abrir com..." virtualbox.
Não sei se é igual (em MACs) ao Linux, mas pode ser necessário adicionar seu usuário no grupo 'virtualbox' para acessar alguns recursos sem problemas.
Responder2
Eu estava enfrentando o mesmo problema. Após atualizar meu VirtualBox, desliguei minha máquina virtual e nas propriedades do VirtualBox modifiquei o controlador USB para USB 3.0 (xHCI).
Agora, minha unidade externa USB está funcionando bem.
Responder3
Eu estava tendo dificuldades com USB3 e USB2. Eu carreguei o Guest Additions e o pacote de extensões. Nada apareceu. Usei lsusb
o terminal Linux para identificar um dispositivo e (enquanto a VM estava desligada) criei um filtro USB3 com o barramento, o dispositivo, o ID do fornecedor e o ID do produto.
Exemplo:
Barramento 010 Dispositivo 006: ID 1f75:0903 Innostor Technology Corporation. Barramento # = O controlador USB3 específico.
Device # é a porta do dispositivo. ID é o ID do fornecedor (inicialmente pode haver um 0x antes do endereço hexadecimal real.
O ID do fornecedor do meu dispositivo é 1f75, mas apareceu como 0x1f75, basta usar os últimos 4 dígitos (o mesmo com o ID do PRODUTO). Depois de salvá-lo e inicializá-lo, pude ver os dispositivos quando comecei, mas o convidado do vbox não conseguiu acessá-los.
Peguei um driver USB do Windows em:
Intel(Intel(R)USB_3.0_eXtensible_Host_Controller_Driver)
e instalei, apaguei o filtro original que criei, reiniciei a máquina virtual e tudo funcionou.