我尝试使用 qemu/kvm 和 pci-passthrough 在 Linux 上运行 Windows VM,但是启动 VM 时出现以下错误:
qemu-system-x86_64: -usbdevice host:046d:c227: could not add USB device 'host:046d:c227'
lsusb 输出:
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 046d:c227 Logitech, Inc. G15 Refresh Keyboard
Bus 001 Device 004: ID 046d:c226 Logitech, Inc. G15 Refresh Keyboard
Bus 001 Device 002: ID 046d:c223 Logitech, Inc. G11/G15 Keyboard / USB Hub
Bus 001 Device 005: ID 8087:0a2b Intel Corp.
Bus 001 Device 003: ID 1038:1384 SteelSeries ApS
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
开始脚本:
qemu-system-x86_64 \
-enable-kvm \
-m 16392 \
-cpu host,kvm=off \
-smp 4,sockets=1,cores=2,threads=2 \
-vga none \
-usb -usbdevice host:046d:c227 -usbdevice host:046d:c226 \
-device vfio-pci,host=01:00.0,multifunction=on \
-device vfio-pci,host=01:00.1 \
-drive if=pflash,format=raw,readonly,file=/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd \
-drive if=pflash,format=raw,file=/tmp/my_vars.fd \
-device virtio-scsi-pci,id=scsi \
-drive file=/var/iso/win10.iso,id=isocd,format=raw,if=none -device scsi-cd,drive=isocd \
-drive file=/home/icehawk/images/windows10.img,id=disk,format=raw,if=none,cache=writeback -device scsi-hd,drive=disk \
-drive file=/var/iso/virtio-win-0.1.126.iso,id=virtiocd,if=none,format=raw -device ide-cd,bus=ide.1,drive=virtiocd
我尝试通过整个总线或其他各种组合,但都不起作用。每次,错误消息中都会列出第一个 USB 设备。我查看了这个帖子,但答案对我没有帮助:QEMU 的 USB 直通出现错误“qemu:无法添加 USB 设备”
我使用最新的 qemu 版本 2.7.9(又名 2.8 rc0)
有什么想法吗?提前致谢!
编辑:找到了一个解决方案:必须使用 --enable-libusb 和 --enable-usb-redir 编译 qemu
答案1
找到解决方案:必须使用--enable-libusb
和编译 qemu--enable-usb-redir