Ubuntu 14.04 VirtualBox VM에서 USB 3.0 문제를 해결하는 방법

Ubuntu 14.04 VirtualBox VM에서 USB 3.0 문제를 해결하는 방법

지난 며칠 동안 저는 이 문제에 대한 해결책을 찾기 위해 엄청난 시간을 보냈습니다.

테스트에 사용하는 외부 2TB USB 3.0 디스크인 Seagate Expansion Desktop Drive가 있습니다. 한 테스트에서는 드라이브를 Macbook Pro의 USB 3.0 포트에 연결하고, 또 다른 테스트에서는 Mac Mini의 USB 3.0 포트에 연결했습니다. Macbook Pro와 Mac Mini에는 모두 virtualbox가 설치되어 있고 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

전제 조건: Macbook Pro(또는 Mini)의 전원 및 USB 3.0 포트에 연결된 Seagate 드라이브(osx의 Filer에서 꺼냄) Macbook Pro가 시작되고 로그인됨 VirtualBox가 시작됨 게스트(Ubuntu 14.04) 시작되고 로그인됨(전체 화면이 아닌 창 모드)

예상 결과: Seagate 드라이브는 우분투의 장치 아래 파일 관리자에 나열되어야 합니다. 드라이브는 우분투의 /dev/sdb와 같은 드라이브로 /dev에 나열되어야 합니다. 예를 들어 드라이브는 우분투에서 마운트 가능해야 합니다.

실제 결과: 드라이브가 우분투의 장치 아래 파일 관리자에 나열되지 않습니다. 드라이브가 우분투의 /dev 아래에 나열되지 않습니다.

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

Seagate RSS LLC에 대한 자세한 lsusb 출력: 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 문제입니까? 우분투가 USB xHCI 컨트롤러를 올바르게 처리하지 못할 수 있습니까?

그런데 드라이브는 전용 kubuntu 워크스테이션과 동일한 macbook pro의 Windows 10 VM에서 작동합니다.

@nephente(요청에 따라 추가됨) VirtualBox의 컨트롤러를 USB 2.0(EHCI) 컨트롤러로 설정하려고 한다고 가정합니다. 이 경우 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(데스크탑의 데스크)에 대한 필터를 생성했으며 드라이브가 osx에 마운트되지 않았는지 확인했습니다.

결과: 드라이브가 마운트되지 않았는지 확인하고 드라이브에 대한 필터를 생성해도 아무런 차이가 없었습니다. 이 게시물의 시작 부분에 설명된 대로 드라이브는 여전히 인식됩니다.

답변1

최근 VirtualBox 버전 5.0에 USB 3.0 지원이 추가되었습니다. 릴리스 노트를 읽어보세요.여기. (빠른 검색을 위해서는 브라우저의 검색 기능을 사용하고 "USB 3"이라고 입력하세요).

이 새로운 기능에 액세스하려면 확장 팩을 설치해야 합니다.

여기에서 다운로드하세요

확장 팩을 설치하려면 다운로드한 파일을 마우스 오른쪽 버튼으로 클릭하고 "다음 프로그램으로 열기..." virtualbox를 클릭해야 합니다.

이것이 (MAC에서) Linux와 동일한지는 모르겠지만 문제 없이 일부 기능에 액세스하려면 'virtualbox' 그룹에 사용자를 추가해야 할 수도 있습니다.

답변2

나는 같은 문제에 직면했습니다. VirtualBox를 업그레이드한 후 방금 가상 머신의 전원을 끄고 VirtualBox 속성에서 USB 3.0(xHCI)용 USB 컨트롤러를 수정했습니다.

이제 USB 외장 드라이브가 제대로 작동합니다.

답변3

USB3과 USB2에 어려움을 겪었습니다. 게스트 추가 기능과 확장 팩을 로드했습니다. 아무것도 보여주지 않았습니다. 저는 lsusbLinux 터미널에서 하나의 장치를 식별하고 (vm이 종료되는 동안) 버스, 장치, 공급업체 ID 및 제품 ID를 사용하여 USB3 필터를 만들었습니다.

예:

버스 010 장치 006: ID 1f75:0903 Innostor Technology Corporation. 버스 # = 특정 USB3 컨트롤러.

장치 번호는 장치의 포트입니다. ID는 공급업체 ID입니다. 처음에는 실제 16진수 주소 앞에 0x가 있을 수 있습니다.

내 장치 공급업체 ID는 1f75이지만 0x1f75로 표시되었습니다. 저장하고 부팅하면 마지막 4자리(제품 ID와 동일)를 사용하면 시작할 때 장치를 볼 수 있었지만 vbox guest는 장치를 가져올 수 없었습니다.

나는 다음에서 Windows USB 드라이버를 얻었습니다.

인텔(인텔(R)USB_3.0_eXtensible_Host_Controller_Driver)

그것을 설치하고, 내가 만든 원래 필터를 삭제하고, 가상 머신을 재부팅하고 모두 작동했습니다.

관련 정보