我跟着这份启用 PCI 直通的快速指南在Fedora上使用KVM,主要步骤是:
- 在主板上启用 IOMMU 和虚拟化
- 防止我的设备在启动期间被模块抓住
到目前为止,一切都很好。dmesg| grep -i iommu
:
[ 0.000000] DMAR: IOMMU enabled
...
[ 1.165288] vboxpci: IOMMU found
(甚至 vbox 模块也注意到了!)
lspci -nnk
:
00:02.0 Display controller [0380]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06)
Subsystem: ASUSTeK Computer Inc. Device [1043:8534]
Kernel driver in use: vfio-pci
Kernel modules: i915
我确实注意到它vfio-pci
没有作为我的 iGPU 的可用模块出现,但它仍然说它正在被使用,所以我认为这也很好。
然后,我继续使用以下命令将 iGPU 连接到我的 VBox VM:
VBoxManage modifyvm "Windows 10" --pciattach 00:02.0
它没有抱怨,所以我想这很好。我终于启动了虚拟机,但它仍然显示 VirtualBox 图形适配器,而不是设备管理器上的集成显卡(并且也没有任何 iGPU 的迹象):
Dmesg 甚至说,当我启动虚拟机时,正在创建一个 IOMMU 域(虽然不确定这意味着什么,但我想这意味着它正在工作):
[ 80.632320] vboxpci: created IOMMU domain ffff8816e45e9fe8
[ 159.674621] vboxpci: freeing IOMMU domain ffff8816e45e9fe8
那么我做错了什么?
一些澄清:
- 我确实有独立显卡(NVidia GTX 1050),但我在主机上使用它,所以我不想直通它
- 我在主板上启用了 iGPU,这样当它检测到独立显卡时它就不会被禁用
- 我只需要通过 iGPU 进行一些轻型游戏,这些游戏只能在具有硬件加速支持的 Windows 上进行,因为软件加速不起作用(游戏甚至无法启动)
由于几乎所有指南都是通过辅助显卡,他们告诉你将 nouveau 模块列入黑名单,但由于我以相反的方式这样做,我是否也应该将 i915 模块列入黑名单?