PVE开启显卡虚拟化intel GVT-g

2022年1月22日更新

搞了个自动配置脚本,2步快速执行,脚本对zfs和btrfs启动的支持有问题,请勿用。

wget https://fastly.jsdelivr.net/gh/jiangcuo/foxi/gvtg.sh
bash gvtg.sh

终于搞到了一台实验机子。本次实验环境为

PVE: 6.2
CPU: g5400
主板: 铭瑄h110

[start-plane type="3"]注意,intel gvt-g技术,只支持5代以上桌面CPU或者4代以上服务器CPU。不支持11代以上CPU。J3XXX似乎支持,请自测[/start-plane]

第一步:开启主板的虚拟化,这个自行在主板中开启。

第二步:开启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

!!!注意,如果此方法还不能开启iommu,请修改

 /etc/kernel/cmdline文件

并且使用proxmox-boot-tool refresh 更新启动项

加载直通内核模块

echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules
echo kvmgt >> /etc/modules
update-initramfs -u 

第三步:重启主机

第四步:验证是否开启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测试的时候,另外一台显卡占用竟然满载。

 

这确实是一个不好的地方,

2021.9.10更新

GVT-G支持4种vgpu模型,最大分辨率为1200P,参考https://wiki.archlinux.org/title/Intel_GVT-g

# ls /sys/devices/pci${GVT_DOM}/$GVT_PCI/mdev_supported_types
i915-GVTg_V5_1  # Video memory: <512MB, 2048MB>, resolution: up to 1920x1200
i915-GVTg_V5_2  # Video memory: <256MB, 1024MB>, resolution: up to 1920x1200
i915-GVTg_V5_4  # Video memory: <128MB, 512MB>, resolution: up to 1920x1200
i915-GVTg_V5_8  # Video memory: <64MB, 384MB>, resolution: up to 1024x768

2021.9.29更新

可参考bilibli视频

https://www.bilibili.com/video/BV1UV411W7gc/

2021.12.29更新

如果参考上面教程,不成功。请确保开启了IOMMU,同时确保pve-blacklist种没有包含i915,参考下面命令。

cat /etc/modprobe.d/* |grep blacklist 

如果有i915,请删除这个条目,同时更新内核。重启之后再次确认

update-initramfs -u -k all 

在群晖中使用gvt-g

请使用seabios和i440fx安装群晖。

将gvt-g添加到虚拟机上,将下面命令添加到args中。

-set 'device.hostpci0.addr=0x02' 

这个args意思就是将hostpci0的pci地址,设置成0x02。所以注意,请确认自己的gvt-g是在hostpci几,如hostpci2,你就要改一下args,

https://foxi.buduanwang.vip/virtualization/pve/592.html/

评论

  1. RedWu
    Windows Chrome 95.0.4638.69
    5月前
    2023-11-27 17:17:38

    脚本连接好像失效了!麻烦博主更新一下吧!谢谢!
    wget https://fastly.jsdelivr.net/gh/jiangcuo/foxi/gvtg.sh
    --2023-11-28 01:17:05-- https://fastly.jsdelivr.net/gh/jiangcuo/foxi/gvtg.sh
    Resolving fastly.jsdelivr.net (fastly.jsdelivr.net)... 151.101.109.229, 2a04:4e42:8c::485
    Connecting to fastly.jsdelivr.net (fastly.jsdelivr.net)|151.101.109.229|:443... connected.
    ERROR: The certificate of ‘fastly.jsdelivr.net’ is not trusted.

  2. RedWu
    Windows Chrome 95.0.4638.69
    5月前
    2023-11-27 17:16:14

    您好!下载脚本的 https://fastly.jsdelivr.net/gh/jiangcuo/foxi/gvtg.sh 这个连接好像失效了!

    wget https://fastly.jsdelivr.net/gh/jiangcuo/foxi/gvtg.sh
    --2023-11-28 01:17:05-- https://fastly.jsdelivr.net/gh/jiangcuo/foxi/gvtg.sh
    Resolving fastly.jsdelivr.net (fastly.jsdelivr.net)... 151.101.109.229, 2a04:4e42:8c::485
    Connecting to fastly.jsdelivr.net (fastly.jsdelivr.net)|151.101.109.229|:443... connected.
    ERROR: The certificate of ‘fastly.jsdelivr.net’ is not trusted.

  3. 382
    Windows Chrome 86.0.4240.198
    1年前
    2023-3-19 12:21:43

    TASK ERROR: pci device '0000:00:02.0' has no available instances of 'i915-GVTg_V5_8'
    报错了,只能使用一个,编辑pcie提示可用实例0
    检查kvmgt如下
    kvmgt 36864 1
    mdev 28672 2 kvmgt
    i915 3047424 3 kvmgt
    kvm 1019904 2 kvmgt,kvm_intel
    vfio 45056 7 vfio_pci_core,kvmgt,vfio_iommu_type1,mdev
    drm 614400 7 drm_kms_helper,kvmgt,drm_ttm_helper,i915,ttm,nouveau

  4. 天涯
    Windows Edge 107.0.1418.26
    1年前
    2022-11-01 10:40:19

    求教,怎么关闭这个核显虚拟化。想用核显直通。

  5. 九天御风
    Windows Chrome 94.0.4606.71
    2年前
    2022-6-11 13:55:49

    GVT-G支持4种vgpu模型,最大分辨率为1200P。是不是理解成直通给设备后还是不能硬解4K的视频?

  6. Ymmmsick
    Macintosh Chrome 100.0.4896.88
    2年前
    2022-4-24 13:16:39

    修改了bios的aperture实现了4组GVTg,win10也成功识别到核显630,但是win10的声音设备无法识别,是无解吗

  7. never
    Windows Chrome 99.0.4844.51
    2年前
    2022-3-18 10:49:05

    i7 8700T ES改了video bios,AGP显存设置为1GB,成功开启了GVT-g,win11能正常调用UHD630虚拟化核显。现在有两个问题:1)win11下运行dxdiag,只有D3D加速显示正常,其他Direct Show和AGP纹理显示不可用 2)群晖DSM7还是不能人脸识别,虽然ls /dev/dri已经可以看到显卡。请问有什么办法解决么?

    • tomssy
      Windows Edge 100.0.1185.50
      2年前
      2022-4-23 22:29:40

      1. window下用来加速界面或应用需要remotefx远程登录,你用普通虚拟机管理页登录或者vnc等等方式,主显示器还是在虚拟显卡上,用不了核显。
      2.群晖要人脸识别必须下卡位于0.2.0地址,需要手动给qemu加参数来对调,否则0.2.0会被qemu的默认显卡占据,具体方法请自行查阅

  8. 鞑靼风
    Windows Edge 99.0.1150.30
    2年前
    2022-3-10 21:05:31

    有直通pcie 硬盘的方法吗?直接加不能启动。。

  9. 穆拉
    Windows Edge 97.0.1072.55
    2年前
    2022-1-15 0:14:21

    这个方法做完后是只能通过开启remotefx了的电脑远程虚拟win10才能启用核显解码视频么?这个方法做好了之后控制台的novnc还能看见win10界面么?novnc的win10可以核显解码视频么?我搞了之后要么novnc只能黑屏看见一个位置不对的鼠标,只能通过远程连接win10,启动核显解码(虚拟显卡设置无),要么就是虚拟显卡默认,能在novnc显示win10,能看见核显,但不能核显解码

    • 佛西 博主
      Windows Chrome 97.0.4692.71
      2年前
      2022-1-15 23:08:53

      控制台不能调用直通的gpu,
      如果需要调用直通的gpu,用第三方软件,如parsec,rdp,vnc等等

  10. mutt
    Windows Chrome 86.0.4240.198
    2年前
    2021-12-29 11:14:37

    安装操作执行了 我的bios没法调显存 只能生成2个vGPU 但是pve下同时只能使用其中的任意一个 再开虚拟机就提示
    TASK ERROR: pci device '0000:00:02.0' has no available instances of 'i915-GVTg_V5_8'
    是需要留一个vGPU给pve吗 有人把虚拟的vGPU同时都开启了吗 还是我的有问题

    • 佛西 博主
      Windows Edge 90.0.818.66
      2年前
      2021-12-29 17:46:38

      第一点,UHD630就只能创建2种vGPU类型!想要多种,去破解bios。
      第二点,请仔细研究一下,选择vGPU的时候,【可用】这个概念。
      uhd630,允许开2种类型,但不是可以同时开2个!具体开几个,需要看可用数量。

  11. 小小鸟
    Windows Chrome 95.0.4638.69
    2年前
    2021-11-08 17:28:16

    你好,四代的e3-1275l v3支持吗?

    • 乌鱼子
      Windows Chrome 103.0.0.0
      2年前
      2022-9-13 16:25:54

      你那个叫3代服务器好不,
      上面不是说了5代桌面处理或4代服务器,
      你就拿桌面的代数来套在服务器。

  12. gai
    Windows Edge 93.0.961.52
    3年前
    2021-9-25 19:04:19

    前面一样的做法,后面验证显示:No such file or directory,不知道那里错了,PVE7

    • 佛西 博主
      Windows Edge 93.0.961.52
      3年前
      2021-9-25 19:26:40
      • gai
        Windows Edge 93.0.961.52
        3年前
        2021-9-25 20:20:50

        谢谢你的回复,看了视频没发现那部有错,我的是CPU是4125 显卡是600

        • 佛西 博主
          Windows Edge 93.0.961.52
          3年前
          2021-9-25 21:31:40

          这个应该是不支持

          • gai
            Windows Edge 93.0.961.52
            3年前
            2021-9-25 23:03:43

            看了一下主板选项是支持的,是不是要PVE6.2才行?我的7.0

            • 佛西 博主
              Windows Edge 93.0.961.52
              3年前
              2021-9-25 23:13:51

              你好,主板管不了GVT-G。你看到的是VT吧?如果要直通,去参考直通的文章。
              PVE开启硬件直通功能
              这是GVT-G显卡虚拟化。

  13. 东瓜菜园
    Windows Chrome 69.0.3497.100
    3年前
    2021-9-09 22:47:51

    感谢,我有一台i3 6100u的小主板,hd 520集显,根据文中的方法可以开启gvt-g,安装win10,检测测试下,鲁大师正常,几个1080p视频可以硬解码,4k视频报错,等有空再研究下。

    • 东瓜菜园
      Windows Chrome 69.0.3497.100
      3年前
      2021-9-09 23:04:44

      应该是我的测试平台显存太小了,造成4k失败。

      • 佛西 博主
        Windows Chrome 93.0.4577.63
        3年前
        2021-9-10 1:31:13

        GVT-g 从界面上说,应该是不支持4k,参考https://wiki.archlinux.org/title/Intel_GVT-g。最大是1080p。

        • cucumber
          Windows Chrome 121.0.0.0
          2月前
          2024-2-13 16:36:54

          实测支持硬解4K的

  14. 匿名
    Windows Chrome 91.0.4472.106
    3年前
    2021-6-18 20:43:20

    ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/ 大佬前面我都照着做了但是最后这步提示没有相关目录请问是哪里出错了呢

  15. 新年快乐
    Windows Edge 89.0.774.27
    3年前
    2021-2-14 13:28:09

    我的机子在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,或者是需要更换配置方式?

    • 墨色之月
      Android Chrome 68.0.3440.91
      3年前
      2021-9-08 0:12:09

      这条是我问的,权当回复给后续需求的用户:6.3/6.4确实有这个bug无法使用,猜测是linux5.4核心的问题,7.0后pve的内核升级到了5.11,gvt又再次可用了,有需求的可升级pve7.0

  16. 匿名
    Windows Chrome 88.0.4324.104
    3年前
    2021-2-04 21:34:17

    兄弟 按照文档的配置 你这里有点错误。你的方案是同时做了直通和中介设备。
    http://fdq.me/books/Proxmox5.4%E6%96%87%E6%A1%A3.pdf

  17. buxiu
    Android Chrome 77.0.3865.116
    3年前
    2020-12-13 10:17:05

    你好请教下,一张显卡多个输出接口,能不能实现分配给不同虚拟机连接多台独立物理显示器

    • 佛西 博主
      Windows Chrome 87.0.4280.88
      3年前
      2020-12-16 22:41:55

      不能。

  18. 匿名
    Windows Chrome 63.0.3239.132
    4年前
    2020-8-12 16:25:45

    目前我独显单独直通给某个虚拟机,我还可以把核显做成虚拟化给其他虚拟机公用吗?可以的话需要如何操作?谢谢

    • 佛西 博主
      netdisk
      4年前
      2020-8-15 9:33:14

      您好,可以的。独显和核显没有冲突的。您可以像直通独显一样,直通核显,然后接显示器。如果是使用上面讲的GVT-g,那么您的核显是不能现实画面的,必须使用rdp或者xendesktop这种连上虚拟机才行。

      • 匿名
        Windows Chrome 63.0.3239.132
        4年前
        2020-9-29 15:14:25

        为什么我的核显最多只能给两台虚拟机同时使用?你的是4台

        • 佛西 博主
          Windows Chrome 85.0.4183.121
          4年前
          2020-10-04 10:27:37

          可能是你的显存低了吧。如果核显显存为2G。那么512M就可以4台,256M就有8台

          • 匿名
            Windows Chrome 63.0.3239.132
            4年前
            2020-10-10 17:27:29

            我换了一台机器,发现 mdev类型是灰色的无法选择,查看 /sys/bus/pci/devices/0000:00:02.0/ 下面 没有 mdev_supported_types 这个文件夹,不知道是什么原因,另外一台机子正常大,cpu是一样的

            • 佛西 博主
              Windows Chrome 86.0.4240.111
              4年前
              2020-10-25 16:29:27

              不知VT-D开启没有。

        • Houiin
          Windows Chrome 80.0.3987.163
          3年前
          2020-12-08 22:52:34

          我的也是两台,使用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

          能麻烦佛西大大看一下自己的核显现存大小嘛?

          • 佛西 博主
            Windows Edge 87.0.664.57
            3年前
            2020-12-13 0:01:48

            此机器为hd610,2G核显存。有群友UHD630,只有1G显存.

            • lucifer
              Linux Firefox 104.0
              2年前
              2022-9-27 20:52:17

              不同品牌芯片组一样都开的不一样 我正好两块z390的芯片 华硕和华擎的 一块2g一块只能1g

          • never
            Windows Chrome 99.0.4844.51
            2年前
            2022-3-18 10:51:10

            Bios里DVMT修改并不能改变显存,需要修改Video Bios里的AGP Aperture设置才可以


Deprecated: preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /www/wwwroot/foxi.buduanwang.vip_80/wwwroot/wp-content/themes/argon-theme-master/functions.php on line 1383

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇