终于搞到了一台实验机子。本次实验环境为:
PVE: 6.2
CPU: g5400
主板: 铭瑄h110
注意,intel gvt-g技术,只支持5代以上桌面CPU或者4代以上服务器CPU
第一步:开启主板的虚拟化,这个自行在主板中开启。
第二步:开启PVE的直通功能
开启iommu和GVT-g支持
#开启iommu和gvt内核
#编辑grub
vi /etc/default/grub
在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"
然后修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_gvt=1"
#update grub
update-grub
加载直通内核模块
echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules
echo kvmgt >> /etc/modules
屏蔽驱动
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf
echo "blacklist amdgpu" >> /etc/modprobe.d/blacklist.conf
echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf
echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/blacklist.conf
echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf
将显卡加入直通
通过lspci 命令查看核显序号,一般是00:02.0 。这里以00:02.0 为例
#查看直通设备
root@pve2:~# lspci -n -s 00:02.0
00:02.0 0380: 8086:3e90
#将8086:3e90 这个设备加入直通组
echo "options vfio-pci ids=8086:3e90" > /etc/modprobe.d/vfio.conf
第三步:重启主机
第四步:验证是否开启GVT
ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/ #自觉将00:02换成自己的。
#出现下面4个选项或者类似的即成功。
i915-GVTg_V5_1 i915-GVTg_V5_2 i915-GVTg_V5_4 i915-GVTg_V5_8
第五步:创建虚拟机
新建OVMF EFI虚拟机,把cpu类型设置成HOST。将主板设置成q35。安装好系统,开启远程桌面。关机,将虚拟机显卡设置成无。添加PCIE设备。

如上图所示,注意,看后面的显存。勾选高级里的ROM-BAR和pcie。主GPU不勾选。
开机之后,远程连接上去,安装好驱动即可。在远程桌面设置里,开启remotefx。(开启remotefx教程)。就可以看到显卡正在使用了。注意在连接的时候,一定要把体验设置成LAN

总结
开启简单,但是性能稍微有些弱了一点,GVT-G技术, 并不像s7150/nvidia k1那样,将显卡独立成几个模块,反而是共享显卡的性能。
我开了2个虚拟机,其中一个进行3D测试的时候,另外一台显卡占用竟然满载。

这确实是一个不好的地方,
我的机子在PVE6.2是能这么设置的,但是升级到PVE6.3.1里这个配置失效了。
所用的U为G4560
华擎B150M-HDS
8G DDR4 2400内存
BIOS里分配512M显存
原来在6.2里能划分出2个GVT来,但是升级后突然发现黑群晖里无法硬件解码了,一看直通的那个GVT变灰不可选。
重装6.2后正常,新装6.3一样配置后又不可用了。不知道6.3是禁用了GVT,或者是需要更换配置方式?
兄弟 按照文档的配置 你这里有点错误。你的方案是同时做了直通和中介设备。
http://fdq.me/books/Proxmox5.4%E6%96%87%E6%A1%A3.pdf
你好请教下,一张显卡多个输出接口,能不能实现分配给不同虚拟机连接多台独立物理显示器
不能。
目前我独显单独直通给某个虚拟机,我还可以把核显做成虚拟化给其他虚拟机公用吗?可以的话需要如何操作?谢谢
您好,可以的。独显和核显没有冲突的。您可以像直通独显一样,直通核显,然后接显示器。如果是使用上面讲的GVT-g,那么您的核显是不能现实画面的,必须使用rdp或者xendesktop这种连上虚拟机才行。
为什么我的核显最多只能给两台虚拟机同时使用?你的是4台
可能是你的显存低了吧。如果核显显存为2G。那么512M就可以4台,256M就有8台
我换了一台机器,发现 mdev类型是灰色的无法选择,查看 /sys/bus/pci/devices/0000:00:02.0/ 下面 没有 mdev_supported_types 这个文件夹,不知道是什么原因,另外一台机子正常大,cpu是一样的
不知VT-D开启没有。
我的也是两台,使用LC_ALL=C lspci -v | grep -EA10 "3D|VGA" | grep 'prefetchable' 返回
Memory at f6000000 (64-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
也就是说我的核心显卡现存只有256M?但是我在BIOS里面DVMT Pre-Allocated设置了1024M,但是没找到 igd memory的设置,或许把igd memory调大就行了,但我的BIOS不行,ASUS B250M-A
能麻烦佛西大大看一下自己的核显现存大小嘛?
此机器为hd610,2G核显存。有群友UHD630,只有1G显存.