Как исправить проблему USB 3.0 в виртуальной машине Ubuntu 14.04 VirtualBox

Как исправить проблему USB 3.0 в виртуальной машине Ubuntu 14.04 VirtualBox

За последние несколько дней я потратил огромное количество времени на поиск решения этой проблемы.

У меня есть Seagate Expansion Desktop Drive, внешний диск USB 3.0 емкостью 2 ТБ, который я использую для тестирования. Диск подключен к порту USB 3.0 на моем Macbook Pro в одном тесте и к порту USB 3.0 на моем Mac Mini в другом тесте. И на Macbook Pro, и на Mac Mini установлены virtualbox и гостевая система Ubuntu. Диск должен быть доступен гостевой системе ubuntu.

Моя текущая конфигурация: 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

Версии:

Хозяин:

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

Гость:

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

Условие: накопитель Seagate подключен к источнику питания и порту USB 3.0 на Macbook Pro (или Mini) (извлечен в Filer в OSX) Macbook Pro запущен и выполнен вход в систему VirtualBox запущен Гость (Ubuntu 14.04) запущен и выполнен вход в систему (оконный режим, а не полноэкранный)

Ожидаемый результат: диск Seagate должен быть указан в диспетчере файлов в разделе «Устройства» в Ubuntu. Диск должен быть указан в /dev как диск, например, /dev/sdb в Ubuntu. Диск должен быть монтируемым в Ubuntu.

Фактический результат: Диск не отображается в диспетчере файлов в разделе «Устройства» в Ubuntu Диск не отображается в разделе /dev в 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

Подробный вывод lsusb для 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

Вывод 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"

Я подозреваю, что проблема в этой строке из dmesg:

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

Это проблема Virtualbox или Ubuntu? Может ли Ubuntu неправильно обрабатывать USB xHCI контроллер?

Кстати, Drive работает на выделенной рабочей станции Kubuntu и на виртуальной машине Windows 10 с того же MacBook Pro.

@nephente (прикреплено по запросу) Я предполагаю, что вы имеете в виду установить контроллер в VirtualBox на USB 2.0 (EHCI) Controller. Если это так, то я получаю следующую ошибку в 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}

Еще одна вещь, которую я также попробовал, но забыл упомянуть, это подключение устройства USB 3.0 к концентратору USB 2.0 и подключение концентратора к Macbook Pro. Это тоже не сработало.

@Takkat Спасибо за предложение создать фильтр и убедиться, что диск отмонтирован/извлечен из OSX.

Я создал фильтр для Seagate Expansion Desk (Desk как в Desktop) и убедился, что диск не смонтирован в OSX.

Результат: проверка того, что диск не был смонтирован, и создание фильтра для диска не дало никаких результатов. Диск по-прежнему распознается, как описано в начале этого поста.

решение1

Поддержка USB 3.0 была недавно добавлена ​​в VirtualBox версии 5.0. Пожалуйста, прочтите примечания к выпускуздесь. (Для быстрого поиска воспользуйтесь функцией поиска в браузере и напишите «USB 3»).

Чтобы получить доступ к этой новой функции, вам необходимо установить пакет расширений.

Скачать здесь

Чтобы установить пакет расширений, необходимо щелкнуть правой кнопкой мыши по загруженному файлу и выбрать «Открыть с помощью...» virtualbox.

Я не знаю, то же ли это (в MAC) и в Linux, но вам может потребоваться добавить своего пользователя в группу «virtualbox», чтобы получить доступ к некоторым функциям без проблем.

решение2

Я столкнулся с той же проблемой. После обновления VirtualBox я просто выключил свою виртуальную машину и в свойствах VirtualBox изменил USB-контроллер на USB 3.0 (xHCI).

Теперь мой внешний USB-накопитель работает нормально.

решение3

У меня были трудности с USB3 и USB2. Я загрузил гостевые дополнения и пакет расширений. Ничего не отобразилось. Я использовал lsusbтерминал Linux для идентификации одного устройства и (пока виртуальная машина была выключена) создал фильтр USB3 с шиной, устройством, идентификатором поставщика и идентификатором продукта.

Пример:

Шина 010 Устройство 006: ID 1f75:0903 Innostor Technology Corporation. Номер шины = Конкретный контроллер USB3.

Device # — это порт на устройстве. ID — это идентификатор поставщика (изначально перед фактическим шестнадцатеричным адресом может быть 0x).

Идентификатор поставщика моего устройства — 1f75, но он отображается как 0x1f75, просто используйте последние 4 цифры (то же самое с идентификатором продукта). После того, как я сохранил его и загрузился, я смог увидеть устройства при запуске, но гостевая система vbox не смогла их захватить.

Я взял USB-драйвер для Windows отсюда:

Intel(Intel(R)USB_3.0_eXtensible_Host_Controller_Driver)

и установил его, удалил оригинальный фильтр, который я создал, перезагрузил виртуальную машину и все заработало.

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