技术解析
正确配置 vfio-pci 并移除 i915 模块后添加 -device vfio-pci,host=00:02.0
启动虚拟机,报错:
qemu-system-x86_64: vfio-pci: Cannot read device rom at 0000:00:02.0
Device option ROM contents are probably invalid (check dmesg).
Skip option ROM probe with rombar=0, or load from file with romfile=
dmesg 的错误信息:
[ 1271.531853] vfio-pci 0000:00:02.0: enabling device (0400 -> 0403)
[ 1271.639246] vfio_ecap_init: 0000:00:02.0 hiding ecap [email protected]
[ 1272.865197] vfio-pci 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
添加 rombar=0
参数后虚拟机可启动,但显卡直通不工作。按照一些英文资料中的说法,在显卡在主机上工作时,dump 显卡的 vBIOS ROM:
# cd /sys/bus/pci/devices/0000\:00\:02.0
# echo 1 > rom
# cat rom > /tmp/rom
cat: rom: Input/output error
此时 dmesg
的输出与上述类似。搜索了这些错误信息后发现,又多例使用 UEFI 引导无法读取,但使用 Legacy 引导成功读取的例子,但我的机器并不支持 Legacy 引导。如何解决?
显卡型号是 HD520。