我尝试以下方法通过 macOS 主机上运行的 Ubuntu 来宾访问 USB 存储设备:
sudo qemu-system-x86_64 -m 8G -boot d -smp 4 -net nic -net user \
-hda Ubuntu/ubuntu.img -machine type=q35,accel=hvf \
-device intel-hda -device hda-duplex \
-device nec-usb-xhci -device usb-host,vendorid=0x0781,productid=0x5580
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法从访客访问 USB 设备。访客系统日志说:
... kernel: [...] usb 5-1: USB new high-speed USB device number 3 using xhci_hcd
... kernel: [...] usb 5-1: New USB device found, idVendor=0781, idProduct=5580, bcdDevice= 0.10
... kernel: [...] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
... kernel: [...] usb 5-1: Product: Extreme
... kernel: [...] usb 5-1: Manufacturer: SanDisk
... kernel: [...] usb 5-1: SerialNumber: AA010829152XXXXXXX
... kernel: [...] usb 5-1: can't set config #1, error -32
... mtp-probe: checking bus 5 device 3: "/sys/devices/pci0000:00/0000:00:04.0/usb5/5-1"
... mtp-probe: bus: 5, device:3 was not an MTP device
Run Code Online (Sandbox Code Playgroud)
如何才能成功访问USB设备?
使用物理设备通过 Android Studio 进行 Android 开发需要 USB。
我在文件传输模式下尝试了两个 USB 记忆棒和一部 Android 智能手机。
版本信息:macOS:10.13.6,qemu:5.1.0,Ubuntu:20.04。
在我们开始之前:请确保您的vendorid和 与productid您想要共享的设备相匹配。在macOS客户机上,您可以通过运行来做到这一点
system_profiler SPUSBDataType
Run Code Online (Sandbox Code Playgroud)
你应该得到类似的东西
USB 3.1 Bus:
Host Controller Driver: AppleUSB...
PCI Device ID: 0x1234
PCI Revision ID: 0x1234
PCI Vendor ID: 0x1234
Bus Number: 0x00
USB 3.1 Storage Device:
Product ID: 0x4242
Vendor ID: 0x2424
Version: 42
Serial Number: ABCDE
Speed: Up to 10 Gb/s
Manufacturer: FooBar
Run Code Online (Sandbox Code Playgroud)
对您来说可能看起来有点不同,但这没关系。对您来说重要的产品和供应商 ID是您想要共享的实际设备之一,而不是总线。所以在这种情况下,它会是
vendorid=0x2424,productid=0x4242
一旦一切正确,请确保以 root 身份运行qemu-system-x86_64。否则,您将没有 USB 直通的权限。我认为这就是您遇到的问题。因此,qemu-system-x86_64使用以下命令运行sudo:
USB 3.1 Bus:
Host Controller Driver: AppleUSB...
PCI Device ID: 0x1234
PCI Revision ID: 0x1234
PCI Vendor ID: 0x1234
Bus Number: 0x00
USB 3.1 Storage Device:
Product ID: 0x4242
Vendor ID: 0x2424
Version: 42
Serial Number: ABCDE
Speed: Up to 10 Gb/s
Manufacturer: FooBar
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7746 次 |
| 最近记录: |