我有一个使用 KVM 的 64 位 Windows VM。我想尝试 VGA 直通。我使用以下命令启动了 VM:
qemu-system-x86_64\
-monitor stdio\
-enable-kvm -m 2048 -no-fd-bootchk -localtime -M q35\
-bios /usr/share/qemu/bios.bin\
-hda /home/xi/.aqemu/Windows_XP_x64_HDA.img -boot once=c,menu=off -net nic,vlan=0 -net user,vlan=0\
-name "Windows XP x64"\
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on\
-vga none
但我立即收到此错误:
QEMU 2.1.2 monitor - type 'help' for more information
(qemu) qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on: Bus 'root.1' not found
我按照以下步骤准备我的系统这指导。
我的硬件(笔记本电脑):
- 英特尔酷睿 i5
- Intel IGD 和 Nvidia m630 (我猜?)
答案1
您没有包括类似以下内容:
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1
前:
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on
ioh3420 是 QEMU 模拟的连接 PCI-E 设备所需的 PCI-E 根端口驱动程序。
您可能会遇到的第二个问题是,您的显卡有音频接口,您也应该添加它。
我的工作命令是:
qemu-system-x86_64 -enable-kvm -M q35 -m 2048 -smp 4,sockets=2,cores=2,threads=1 -cpu kvm64 -device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,romfile=gpu0.rom,x-vga=on -device vfio-pci,host=01:00.1,bus=root.1,addr=00.1 -drive file=cdrom.iso,id=isocd -device ide-cd,bus=ide.1,drive=isocd -drive file=hdd.img,id=hdd -device ide-hd,bus=ide.0,drive=hdd -rtc base=localtime -boot d -vga none -bios /usr/share/seabios/bios.bin