Ubuntu 14.04 VirtualBox VM で USB 3.0 の問題を修正するにはどうすればいいですか

Ubuntu 14.04 VirtualBox VM で USB 3.0 の問題を修正するにはどうすればいいですか

ここ数日、私はこの課題の解決策を探すのに膨大な時間を費やしてきました。

私はテストに使用する外付け 2 TB USB 3.0 ディスクである Seagate Expansion Desktop Drive を持っています。ドライブは、1 つのテストでは Macbook Pro の USB 3.0 ポートに接続され、別のテストでは Mac Mini の USB 3.0 ポートに接続されています。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

ユーネーム -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 ドライブが Macbook Pro (または Mini) の電源と USB 3.0 ポートに接続されている (OSX の Filer で取り外されている) Macbook Pro が起動してログインしている VirtualBox が起動している ゲスト (Ubuntu 14.04) が起動してログインしている (ウィンドウ モードではなくフル スクリーン)

期待される結果: Seagate ドライブは、Ubuntu のデバイス下のファイル マネージャーにリストされる必要があります。ドライブは、たとえば Ubuntu の /dev/sdb などのドライブとして /dev にリストされる必要があります。ドライブは Ubuntu でマウント可能である必要があります。

実際の結果: ドライブは Ubuntu のデバイス下のファイル マネージャーに表示されません。ドライブは Ubuntu の /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

: ...

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 の問題ですか? 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}

私が試したが言及しなかったもう 1 つの方法は、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 で「開く...」を選択する必要があります。

これが Linux の場合と同じかどうかはわかりませんが (MAC の場合)、問題なく一部の機能にアクセスするには、ユーザーを 'virtualbox' グループに追加する必要があるかもしれません。

答え2

私も同じ問題に直面していました。VirtualBox をアップグレードした後、仮想マシンの電源をオフにし、VirtualBox プロパティで USB 3.0 (xHCI) の USB コントローラーを変更しました。

現在、USB 外付けドライブは正常に動作しています。

答え3

USB3 と USB2 で問題がありました。Guest Additions と拡張パックをロードしましたが、何も表示されませんでした。Linuxlsusbターミナルを使用して 1 つのデバイスを識別し、(vm がシャットダウンされている間に) バス、デバイス、ベンダー ID、および製品 ID を使用して USB3 フィルターを作成しました。

例:

バス 010 デバイス 006: ID 1f75:0903 Innostor Technology Corporation。バス # = 特定の USB3 コントローラー。

デバイス番号はデバイス上のポートです。ID はベンダー ID です (最初は実際の 16 進アドレスの前に 0x が付く場合があります)。

私のデバイスのベンダー ID は 1f75 ですが、最後の 4 桁 (製品 ID と同じ) を使用する 0x1f75 として表示され、それを保存して起動すると、起動時にデバイスが表示されましたが、vbox guest はそれらを取得できませんでした。

Windows USB ドライバーを以下から入手しました:

インテル(Intel(R)USB_3.0_eXtensible_Host_Controller_Driver)

インストールし、作成した元のフィルターを削除し、仮想マシンを再起動すると、すべてが機能しました。

関連情報