usb-host 不是有效的设备名称 - 尝试将 USB 传递到 Qemu 时出错

usb-host 不是有效的设备名称 - 尝试将 USB 传递到 Qemu 时出错

我尝试过使用各种方法来添加usb设备Windows VM,但都无济于事。

我安装了Yocto project派生的Wind River Linux, withQemu-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

我真心希望这可以让遇到同样问题的人节省一些时间和麻烦。

相关内容