У меня есть 64-битная Windows VM, использующая KVM. Я хочу попробовать VGA passthrough. Я начал свою виртуальную машину с:

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

Я подготовил свою систему, следуя этому руководству.

Мое оборудование (ноутбук):

  • Intel Core i5
  • Intel IGD и Nvidia m630 (наверное?)

1 ответ1

0

Вы не включили что-то вроде:

-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 - драйвер корневого порта PCI-E, эмулируемый QEMU, необходимый для подключения устройств 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .