Intel集成显卡虚拟化的实现方式:PVE下kvmgt的应用

2021-07-01 21:23:30 36点赞 144收藏 22评论

创作立场声明:语言原创,材料都是网上搬得。

【写作说明】:本文是Intel集成显卡的虚拟化在Proxmox Virtualization Envirement(PVE)平台上实现的步骤。其实intel这套方案出来已经有十五年了,但是用的人好像不多,原因之一是Intel集成显卡本来就性能低下还要虚拟化岂不是更低。显卡虚拟化的优点就不赘述了,商用领域已经很成熟了,一块支持虚拟化的显卡最便宜也得接近五位数人民币。家用领域基本上没人会选择显卡虚拟化,打游戏直接windows+独立显卡,或者直接选择XBOX和PS系列游戏机了,影音领域是个系统都应该支持4K解码甚至8K、16K了。不过显卡虚拟化应用在all in one的平台上真是绝配,家用平台我把耗电放在首位毕竟电费是自己的,服务器领域都有tdp25w的志强。Nvdia的vGPU方案也有民用级别的破解了,但是考虑到耗电问题,还未尝试。

购买理由

原因是上周看到了张大妈上这篇文章IGPU的显卡虚拟化这次真的来了--基于unraid,讲了如何在unraid上虚拟化intel的显卡。我想都是基于Linux的没道理PVE不支持啊,其实几个月前,nvidia的民用显卡也被破解了虚拟化方案,vgpu_unlock。intel这套方案可不是破解的,是官方支持的。标题上放的图不完整这里是完整图。这里一组文章介绍了显卡虚拟化,本文主要讲如何在PVE下搭建一个Intel平台的显卡虚拟化系统。

Intel集成显卡虚拟化的实现方式:PVE下kvmgt的应用


外观展示

首先GVT-g支持虚拟机,不支持CT也就是容器,这点是缺点。毕竟轻量级的容器在效率上可能更加高。但是我看到网上也有人在容器和虚拟机里面同时搞了,我也试了没成功只能曲线救国全部用虚拟机了。如果不虚拟显卡的话容器可以直接用宿主机上的显卡,不需要什么直通显卡直接可以做PLEX、jellyfin的硬解显卡,比直通方便多了。但是基于Debian的PVE是没有什么Win10的容器的,所有在没有虚拟化显卡之前,要么直通给win10,要么不直通给容器直接用。PVE的容器比docker我个人认为简单的多,docker需要的各种步骤LXC容器都不需要,启动就是一个独立的系统自带各种属性。

上面那篇unraid的文章分配显存的方法不适合目前最新的主板,因为目前的主板都屏蔽了Intel集显的内存分配,默认只给了256M,所以上文中其实最多只能给两块虚拟显卡。如果主板够老可以在bios里面找到这个分配的选项,但是新主板毫无疑问的都给屏蔽了,至少我的两块z390芯片的都是默认256M。可以通过修改过的uefi来开启主板2G显存,华擎的只能到1G,华硕的可以到2G。具体如何修改,类似于黑苹果修改cfg lock,网上教程很多。这里给出几个软件的下载,和参考文章

提取自己主板bios固件的软件

讲上面固件转换成人类可以阅读的语言的软件

修改主板固件的软件

修改步骤其实很简单,做个启动盘,进去以后根据aperture对应的偏移量来设置显存

比如我的主板关于Aperture Size是这样子的,偏移量就是0x9c4,默认值是0x1,改成0x7是1G,0xf是2G

setup_var 0x9c4 0xf

然后reboot如果没有黑屏就ok了,黑屏了清bios换个参数试试0x7。

0x5CD0F One Of: Aperture Size, VarStoreInfo (VarOffset/VarName): 0x9C4, VarStore: 0x1, QuestionId: 0x2749, Size: 1, Min: 0x0, Max 0xF, Step: 0x0 {05 91 80 06 81 06 49 27 01 00 C4 09 14 10 00 0F 00}

0x5CD20 One Of Option: 128MB, Value (8 bit): 0x0 {09 07 82 06 00 00 00}

0x5CD27 One Of Option: 256MB, Value (8 bit): 0x1 (default) {09 07 83 06 30 00 01}

0x5CD2E One Of Option: 512MB, Value (8 bit): 0x3 {09 07 84 06 00 00 03}

0x5CD35 One Of Option: 1024MB, Value (8 bit): 0x7 {09 07 85 06 00 00 07}

0x5CD3C One Of Option: 2048MB, Value (8 bit): 0xF {09 07 86 06 00 00 0F}

0x5CD43 End One Of {29 02}

保姆级教程找到个苹果电脑如何修改CFG Lock 修改有风险,随时可能启动黑屏,不过只要清空cmos设置就行,现在主板都自带的。所以第一步是修改Intel集成显卡的的内存分配最好1G或者2G,默认256M就只能开两个功能最差的显卡了。如何确认自己已经打开了1G或者2G的显存。

root@prox:~# lspci -vv -s 00:02.0
(...)
Region 2: Memory at 90000000 (64-bit, prefetchable) [size=256M]

如果size显示1G或者2G就ok了,biso里面是看不到的。当然觉得风险大的同学可以不做修改显存这一步,但是这样子的缺点上面也说了只有默认256M显存最多分配两张性能最低的显卡。

root@pve:~# ls /sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/

i915-GVTg_V5_1 i915-GVTg_V5_2 i915-GVTg_V5_4 i915-GVTg_V5_8

如何在pve下产生gvt-g,pve的官方wiki里面救有,如果你有直通经验的话应该很简单,保姆级教程,没啥需要注意的一步一步来就是了。其实直通那部分是不需要的。

pve官方直通wiki,拉到下面有有关gvt-g的说明。


使用感受

终于可以在win10里面用显卡了,高兴的话开两台三台都可以有一块独立的显卡,而不是虚拟的显卡。jellyfin和plex也都可以硬解了,但是性能肯定比不过直通的给分配了i915-GVTg_V5_4这块卡转码4k输出4k是卡的,但是输出1080p是ok的。图什么不贴了就是觉得自己一下子是土豪了,可以有好多显卡同时用也不用多出电费关键。win10云桌面也流畅许多,正宗的万物互联模式。配合微软的RD-client出门带个手机真可以。

总结

ALL in One 可以带好多显卡很爽,下一步就是zfs的文件系统了。

展开 收起
22评论

  • 精彩
  • 最新
  • 因为碎片时间打字,错别字不少。Intel的这套方案出来是7年,也不知道昨天怎么算出来15年的,见谅!

    校验提示文案

    提交
    首先GVT-g支持虚拟机,不支持CT也就是容器,这点是缺点。
    刚刚在容器里面也ok了

    校验提示文案

    提交
    收起所有回复
  • 🙋🏻‍♂️老师,我有问题
    1 j4125的核显可以吗?
    2 zfs的作用很大吗?

    校验提示文案

    提交
    理论上 英特尔的集显都可以支持 我是uhd630 zfs据说是很牛*的文件系统 还没有尝试 需要超级大内存支撑

    校验提示文案

    提交
    收起所有回复
  • 显卡虚拟化并不能hdmi输出,用来远程链接做云电脑还是不错的。htpc的话就必须直通了。话说pve可是真的好玩啊。出了lede和win10。全部容器化。

    校验提示文案

    提交
    可以接显示器 guthub上有人这么玩的 有个i915啥rom太高深了 也不是pve上的玩法 但是是类似的qemu还有人在mac上驱动了都 我反正是没搞定

    校验提示文案

    提交
    收起所有回复
  • 好文,pve搞定虚拟显卡,Windows也可以用显卡了,解决一大痛点。

    校验提示文案

    提交
    最近准备搞nvidia民用显卡的vgpu intel显卡还是弱了点

    校验提示文案

    提交
    收起所有回复
  • 好文当赏,哈哈 [示爱]

    校验提示文案

    提交
    估计用pve的人不多 再加上没有多图显得文章有点高深莫测哈 其实很简单的样子 再搞搞nvidia显卡虚拟化

    校验提示文案

    提交
    收起所有回复
  • 同用pve,大佬,CT怎么用vgpu,还有nvidia的vgpu文章打算出不 [得意]

    校验提示文案

    提交
    ct在配置里面得有类似下面这个网上教程都是cgroup
    lxc.cgroup2.devices.allow: c 226:0 rwm
    lxc.cgroup2.devices.allow: c 226:128 rwm
    lxc.cgroup2.devices.allow: c 29:0 rwm

    校验提示文案

    提交
    nvidia的笔记本上试了大半 能产生mdev设备了都 但是最后在win虚拟机上驱动有感叹号 得找一个旧一点的kvm驱动

    校验提示文案

    提交
    收起所有回复
  • 我的服务器板子也有这个问题,网上搜了一下,看见pve论坛上有人抱怨这个事,然后追着到github上,发现改bios解决了,原来就是你么,真大佬了,膜拜 [赞一个]

    校验提示文案

    提交
    我也是追到Github解决的哈 比你早一步而已

    校验提示文案

    提交
    收起所有回复
  • 哈哈哈,搞起来搞起来 [高兴]

    校验提示文案

    提交
  • 刚刚搞定了nvidia民用显卡的vgpu 自己偷偷用不要商用就行 千元的1050ti秒变3w的p40啊 这个还没有跑虚拟机测试 等我迁移到为all in one上

    校验提示文案

    提交
    大佬给个教程文章可好!

    校验提示文案

    提交
    但是我看这个vgpu_unlock只是让家用gpu可以用虚拟化,但是要用虚拟化本身还要花钱买license啊,不然过了24小时就强制降低到3fps让人看ppt

    校验提示文案

    提交
    收起所有回复
  • 牛* [高兴] 这么好的文章居然没什么留言

    校验提示文案

    提交
  • 感谢,尝试一下黑群晖的虚拟化

    校验提示文案

    提交
  • 按照保姆教程修改好了,群晖918还是不能人脸识别,ssh进去核显是启用成功的。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
144
扫一下,分享更方便,购买更轻松