und*_*ore 3 linux usb virtualization arch-linux
当尝试在我的 macbook proretina 2015 上使用 qemu 通过 USB 直通运行 arch linux 时,运行 osx Yosemite 10.10.,使用以下命令:
sudo qemu-system-i386 -cpu core2duo -cdrom archlinux-2015.11.01-dual.iso -boot order=d -m 1G -usbdevice host:0x13fe:0x5500
我不断收到错误:
qemu:无法添加 USB 设备“host:0x13fe:0x5500”
而在系统信息中,USB 设备的供应商 ID 为“0x13fe”,产品 ID 为“0x5500”。
我使用代码块(在 bash 中)获得相同的供应商和产品 ID
`system_profiler SPUSBDataType | awk '
/Product ID:/{p=$3}
/Vendor ID:/{v=$3}
/Manufacturer:/{sub(/.*: /,""); m=$0}
/Location ID:/{sub(/.*: /,""); printf("%s:%s %s (%s)\n", v, p, $0, m);}
'
`
Run Code Online (Sandbox Code Playgroud)
在 qemu文档中,它说通过 USB 的正确形式是
主机:vendor_id:product_id
所以我相信我做对了。
我正在运行 qemu 2.4.0.1
我在这里做错了吗?
我不确定您为什么会收到该错误,但-usbdevice无论如何您都不想使用,因为它只能以“全速”模式(12M)连接设备,即使它是“高速”主机端(480M)设备:
如果您连接的是“超高速”(5000M)设备(在主机端启用 xHCI),它甚至可能根本无法工作:
因此,您需要更现代和更通用的-device usb-host方法,以及您选择的模拟主机控制器(例如-device nec-usb-xhci):
它也应该适用于“高速”(480M)设备:
以及“全速”(12M)设备:
模拟主机控制器的可能选择是:
[tom@localhost ~]$ qemu-system-x86_64 -device help |& grep usb.*hci
name "ich9-usb-ehci1", bus PCI
name "ich9-usb-ehci2", bus PCI
name "ich9-usb-uhci1", bus PCI
name "ich9-usb-uhci2", bus PCI
name "ich9-usb-uhci3", bus PCI
name "ich9-usb-uhci4", bus PCI
name "ich9-usb-uhci5", bus PCI
name "ich9-usb-uhci6", bus PCI
name "nec-usb-xhci", bus PCI
name "piix3-usb-uhci", bus PCI
name "piix4-usb-uhci", bus PCI
name "usb-ehci", bus PCI
name "vt82c686b-usb-uhci", bus PCI
[tom@localhost ~]$ qemu-system-x86_64 -device help |& grep ohci
name "pci-ohci", bus PCI, desc "Apple USB Controller"
name "sysbus-ohci", bus System, desc "OHCI USB Controller"
Run Code Online (Sandbox Code Playgroud)
nec-usb-xhci 在大多数情况下应该工作得最好。
顺便说一句,除了vendorid+之外,还有其他方法productid可以指定要使用-device usb-host. 例如,hostbus+ hostaddr:
或者,hostbus+ hostport:
当系统中有多个相同型号的设备时,这很方便。
参考:http : //git.qemu.org/?p=qemu.git;a= blob_plain;f= docs/ usb2.txt;hb= HEAD
| 归档时间: |
|
| 查看次数: |
7312 次 |
| 最近记录: |