我尝试过使用各种方法来添加usb
设备Windows VM
,但都无济于事。
我安装了Yocto project
派生的Wind River Linux, with
Qemu-kvm。客户操作系统是 Windows 10。
我做了一个lsusb
并得到了 -
Bus 001 Device 029: ID 8564:1000 Transcend JetFlash
当我尝试将插入主机系统的 USB 设备传递到虚拟机时,通过执行
-usb -device qemu-xhci,id=xhci -device usb-host,bus=xhci.0,hostbus=1,hostaddr=29
我收到一条错误消息 -
qemu-system-x86_64: -device usb-host,bus=xhci.0,hostbus=1,hostaddr=29 : 'usb-host' is not a valid device model name.
如果我尝试使用 -device usb-storage
,它会需要另一个名为“driver”的输入,而我不知道。
我尝试做了一个qemu-system-x86_64 -device help|&greo usb.*hci
,得到了以下输出 -
name "ich9-usb-echi1", bus PCI
name "ich9-usb-echi2", bus PCI
name "ich9-usb-echi1", bus PCI
name "ich9-usb-echi2", bus PCI
name "ich9-usb-echi3", bus PCI
name "ich9-usb-echi4", bus PCI
name "ich9-usb-echi5", bus PCI
name "ich9-usb-echi6", bus PCI
name "nec-usb-xhci", bus PCI
name "piix3-usb-uhci", bus PIC
name "piix4-usb-uhci", bus PIC
name "usb-ehci", bus PCI
不确定需要做什么才能让 Windows VM 识别此 USB 磁盘,或者需要传递哪些设备类型和参数。我usb-ehci
也尝试过...
答案1
如果是从github源代码编译并安装qemu。
usb-host默认不支持。
您需要在 qemu 配置中添加参数--enable-libusb
,然后安装libusb
包。然后重新安装qemu
。
usb-host
就可以了!
可以获取信息在 bugs.launchpad.net。
//修正上面的拼写错误。
答案2
我也遇到过同样的问题,对我来说,这是由运行引起的sudo pacman -Syu
。
在此之后,我所有具有 USB 直通功能的虚拟机都会在启动时失败,日志文件会告诉我以下内容:
qemu-system-x86_64: -device {"driver":"usb-host","hostbus":1,"hostaddr":7,"id":"hostdev2","bus":"usb.0","port":"1"}: 'usb-host' is not a valid device model name
我意识到在运行更新后 qemu-hw-usb-host 丢失了,我所做的就是重新安装 libusb 来让它恢复工作,但同时sudo pacman -S qemu-hw-usb-host
我真心希望这可以让遇到同样问题的人节省一些时间和麻烦。