За последние несколько дней я потратил огромное количество времени на поиск решения этой проблемы.
У меня есть 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)
и установил его, удалил оригинальный фильтр, который я создал, перезагрузил виртуальную машину и все заработало.