网上大量视频教程看的眼花缭乱。自己从中找到一条有效的方法,几分钟就能完成,适合11代以上cpu。
一、改bios:
。Intel VMX虚拟化技术
。VT-d
。SR-IOV
。Above 4GB MMlO BlOS assignment
。IOMMU
有的都开启来就好
二、下载AIO.rom和pve-source
rom下载链接:https://github.com/cmd2001/build-edk2-gvtd/releases/download/v0.1.0/AIO.rom
pve-source项目地址:https://github.com/Benson80/pve-source
三、使用pve-source脚本直通核显
1.开启核显直通:
./pve_source 开启脚本 选9 再选2 开启IOMMU及核显直通
2.开启windows核显直通:
在完成1的基础上再运行脚本
选9 再选6.虚拟机核显直通或 SR-IOV 向导
再选7.idg(或 vbios) + gop 合成单 rom 文件方案
将之前下载的AIO.rom用上
3.可能遇到的问题:AIO.rom输入的路径可能会有问题,不行就拷贝到rom 文件到 /usr/share/kvm, 只需输入 AIO.rom 就好。
到这核显直通应该完成。
四、windows关机后核显自动返回pve
只有核显的可能会使用到这个功能;
1.使用pvevm-hooks,项目地址:https://github.com/HelloZhing/pvevm-hooks
在pve中clone到root目录下
打开目录
cd pvevm-hooks
添加可执行权限
chmod a+x *.sh *.pl
复制perl脚本到snippets目录
mkdir /var/lib/vz/snippets
cp hooks-igpupt.pl /var/lib/vz/snippets/hooks-igpupt.pl
将钩子脚本应用至虚拟机
qm set <VMID> --hookscript local:snippets/hooks-igpupt.pl
<VMID> 替换自己的虚拟机id 如100、101;
2.如果是用pve_source脚本开的直通 /etc/modprobe.d/pve-blacklist.conf中应该有blacklist i915 blacklist snd_hda_intel blacklist snd_hda_codec_hdmi需要全部删除。
这样就可以试试开关windows,pve和windows应该都是正常显示了。
如果还有你对直通返回还有更多的需求,可以看看pvevm-hooks项目的大佬的博客有更详细的说明。博客地址:https://zhing.fun/pve_igpupt/