web-dev-qa-db-fra.com

Comment résoudre un problème lié à l'USB 3.0 dans une VirtualBox Ubuntu 14.04 VM

Ces derniers jours, j'ai passé énormément de temps à chercher une solution à ce problème.

J'ai un disque Seagate Expansion Desktop qui est un disque externe USB 2 TB que j'utilise pour les tests. Le lecteur est connecté à un port USB 3.0 de mon Macbook Pro lors d'un test et à un port USB 3.0 de mon Mac Mini pour un autre test. La virtualbox est installée sur les Macbook Pro et Mac Mini et un invité Ubuntu est installé. Le lecteur doit être accessible à l'invité Ubuntu.

Ma configuration actuelle: 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

Versions:

Hôte:

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

Client:

Guest:  Ubuntu 14.04
VboxGuestAdditions installed

uname -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

Condition: disque Seagate connecté à l'alimentation et au port USB 3.0 sur Macbook Pro (ou Mini) (éjecté dans Filer sous osx). Macbook Pro démarré et connecté VirtualBox démarré Invité (Ubuntu 14.04) Démarré et connecté (mode fenêtre non plein écran)

Résultat attendu: Le lecteur Seagate devrait figurer dans le gestionnaire de fichiers sous Périphériques dans ubuntu. Le lecteur doit figurer dans/dev en tant que lecteur, tel que/dev/sdb dans Ubuntu, par exemple. Le lecteur doit pouvoir être monté dans Ubuntu.

Résultat actuel: le lecteur ne figure pas dans le gestionnaire de fichiers sous Périphériques dans ubuntu Le lecteur n'est pas répertorié dans/dev dans 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

sortie verbeuse lsusb pour Seagate RSS LLC: racine @ 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

sortie 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"

Je soupçonne que le problème est sur cette ligne du dmesg:

[  795.857795] usb 2-1: USB controller 0000:00:0c.0 does not support streams, which are required by the UAS driver.

Est-ce un problème Virtualbox ou un problème Ubuntu? Ubuntu ne pourrait-il pas gérer correctement le contrôleur USB xHCI?

Incidemment, le lecteur fonctionne sur un poste de travail kubuntu dédié et sous Windows 10 VM à partir du même macbook pro.

@nephente (ajouté à la demande) Je suppose que vous voulez définir le contrôleur dans VirtualBox sur Contrôleur USB 2.0 (EHCI). Si tel est le cas, l'erreur suivante apparaît dans 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}

Une autre chose que j'ai également essayée mais que je n'ai pas mentionnée est de connecter le périphérique USB 3.0 à un concentrateur USB 2.0 et de connecter le concentrateur au Macbook Pro. Cela n'a pas fonctionné non plus.

@Takkat Merci pour votre suggestion de créer un filtre et de vous assurer que le lecteur est démonté/éjecté d'osx.

J'ai créé un filtre pour le Seagate Expansion Desk (bureau comme dans Desktop) et je me suis assuré que le lecteur n'est pas monté dans osx.

Résultat: s'assurer que le lecteur n'était pas monté et créer un filtre pour le lecteur ne faisait aucune différence. Le lecteur est toujours reconnu comme décrit au début de ce post.

4
mcfearsson

La prise en charge USB 3.0 a été ajoutée récemment à la version 5.0 de VirtualBox. Veuillez lire les notes de version ici . (Pour une recherche rapide, utilisez la fonction de recherche de votre navigateur et écrivez "USB 3").

Pour accéder à cette nouvelle fonctionnalité, vous devez installer le pack d'extension.

Télécharger ici

Pour installer le pack d'extension, vous devez cliquer avec le bouton droit de la souris sur le fichier téléchargé et sur la boîte virtuelle "Ouvrir avec ...".

Je ne sais pas s'il s'agit de la même chose (sous MAC) que sous Linux, mais vous devrez peut-être ajouter votre utilisateur dans le groupe 'virtualbox' pour pouvoir accéder à certaines fonctionnalités sans problème.

4
NickTux

Je faisais face au même problème. Après la mise à niveau de ma VirtualBox, je viens de mettre hors tension ma machine virtuelle et, dans ses propriétés, modifie le contrôleur USB pour USB 3.0 (xHCI).

Maintenant, mon lecteur externe USB fonctionne bien.

3
Jansen Sena

J'avais des difficultés avec USB3 et USB2. J'avais chargé Guest Additions et le pack d'extension. Rien n'a montré. J'ai utilisé lsusb à partir d'un terminal Linux pour identifier un périphérique et (alors que la machine virtuelle était fermée) créé un filtre USB3 avec le bus, le périphérique, l'ID de fournisseur et l'ID de produit.

Exemple:

Autobus 010 Dispositif 006: ID 1f75: 0903 Innostor Technology Corporation. Bus # = Le contrôleur USB3 spécifique.

Device # est le port sur le périphérique. ID est l'ID du fournisseur (il peut initialement y avoir un 0x avant l'adresse hexadécimale réelle.

Mon identifiant de fournisseur de périphérique est 1f75 mais il s’est affiché sous la forme 0x1f75. Il vous suffit d’utiliser les 4 derniers chiffres (idem PRODUCT) une fois que j’ai enregistré et démarré, je pouvais voir les périphériques lorsque j’ai démarré, mais vbox guest ne pouvait pas les récupérer.

J'ai attrapé un pilote USB Windows de:

Intel (Intel (R) USB_3.0_eXtensible_Host_Controller_Driver)

et l'a installé, supprimé le filtre d'origine que j'ai créé, redémarrez la machine virtuelle et tout a fonctionné.

1
Bruce Nygard