macos - 如何在 Mac 主机上使用 USB 和 QEMU?
问题描述
我尝试通过在 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
不幸的是,我无法从客人那里访问 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
如何成功访问 USB 设备?
使用物理设备通过 Android Studio 进行 Android 开发需要 USB。
我在文件传输模式下尝试了两个 U 盘和一个 Android 智能手机。
版本信息:macOS:10.13.6,qemu:5.1.0,Ubuntu:20.04。
解决方案
在我们开始之前:确保您的vendorid
和productid
匹配您要共享的设备之一。在您的macOS客人上,您可以通过运行
system_profiler SPUSBDataType
你应该得到类似的东西
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
它对你来说可能看起来有点不同,但没关系。对您很重要的产品和供应商 ID是您要共享的实际设备之一,而不是总线。所以在这种情况下,它将是
vendorid=0x2424,productid=0x4242
一旦一切正确,请确保以root身份运行qemu-system-x86_64
。否则,您将没有 USB 直通的权限。我认为这是您遇到的问题。所以,运行qemu-system-x86_64
使用sudo
:
sudo qemu-system-x86_64 ... -device nec-usb-xhci -device usb-host,vendorid=0x2424,productid=0x4242
推荐阅读
- swiftui - 在 Swift UI 中单击按钮时如何显示一些文本?
- react-native - 无法从“screens\GridFilter\GridFilter.js”解析“constants/categories.json”
- javascript - Mongoose.js - 当我只保存一次时,“无法并行保存()同一个文档”
- security - Jenkins 中 HTTP 404 页面 URL 的自定义页面
- python - Pandas concat 翻转了我在 DataFrame 中的所有值
- python - 为什么我的准确性和损失,0.000 和 nan,在 keras 中?
- html - 如何为 CSS/HTML 删减不必要的额外编码并使其更具响应性?
- apache-spark - 何时使用 zscore 规范化数据(拆分之前或之后)
- regex - 正则表达式匹配页码组
- javascript - 将鼠标悬停在按钮上时如何显示按钮的ID