加入收藏 | 设为首页 | 会员中心 | 我要投稿 漯河站长网 (https://www.0395zz.cn/)- 云服务器、混合云存储、网络、内容创作、云渲染!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

使用GVT-g为KVM添加虚拟显卡渲染3D图形

发布时间:2022-08-09 10:00:48 所属栏目:Linux 来源:互联网
导读:0x00 前言 可以在KVM虚拟机看电影、玩游戏哦。 我的环境如下: Kernel: 5.14.12-arch1-1 CPU: Intel i5-8250U GPU: Intel UHD Graphics 620 QEMU: 6.1.0 0x01 启动GVT-g 1. 添加内核参数 要启用IOMMU、i915,编辑grub文件: $ sudo vim /etc/default/grub 找
  0x00 前言
  可以在KVM虚拟机看电影、玩游戏哦。
 
  我的环境如下:
 
  Kernel: 5.14.12-arch1-1
  CPU: Intel i5-8250U
  GPU: Intel UHD Graphics 620
  QEMU: 6.1.0
  0x01 启动GVT-g
  1. 添加内核参数
  要启用IOMMU、i915,编辑grub文件:
 
   
  $ sudo vim /etc/default/grub
  找到GRUB_CMDLINE_LINUX_DEFAULT的参数,在后面添加intel_iommu=on和i915.enable_guc=0
 
   
  GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 intel_iommu=on i915.enable_guc=0"
  2. 启用内核模块
  要启用kvmgt、vfio-iommu-typ1、mdev
 
   
  $ sudo modprobe kvmgt vfio-iommu-type1 mdev
  3. 添加内核模块参数
  在/etc/modprobe.d/目录下创建配置文件来打开GPU虚拟化
 
   
  $ sudo echo "options i915 enable_gvt=1" >> /etc/modprobe.d/gvt-g.conf
  至此,重新启动系统。
 
   
  $ reboot
  4. 查询显卡的GUID
   
  $ lspci -D -nn
  找到显卡的GUID,例如 0000:00:02.0
 
  5. 查看mdev支持的类型
   
  $ ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/
  i915-GVTg_V5_4 i915-GVTg_V5_8
  例如,显示如下两个文件夹,说明启动成功
 
   
  i915-GVTg_V5_4 i915-GVTg_V5_8
  若文件夹为空说明GVT-g没有成功启动。
 
  进入对应目录,查看description文件获取信息
 
   
  $ cat /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_4/description
  low_gm_size: 128MB
  high_gm_size: 512MB
  fence: 4
  resolution: 1920x1200
  weight: 4
  说明i915-GVTg_V5_4最大支持分辨率1920x1200,显存占用128MB~512MB。
 
  Arch wiki还描述了其他类型:
 
  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
 
  6. 创建一个虚拟GPU设备
  使用
 
   
  $ uuidgen
  7d6cff35-231d-4ad2-a9b7-aa53d4d51b1f
  来生成一个UUID,用它来标识新建的虚拟显卡
 
  创建设备,这里我选择i915-GVTg_V5_4:
 
   
  $ echo "7d6cff35-231d-4ad2-a9b7-aa53d4d51b1f" > "/sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_4/create"
  其中GUID编号和mdev类型根据实际情况修改。
 
  0x02 创建虚拟机
  1. 使用通常方法创建一个普通虚拟机
  使用virtio设备。虚拟机命名为vmname。
 
  2. 添加虚拟显卡
  使用
 
   
  $ virsh edit vmname
  vmname替换成创建虚拟机的名称,在<devices>元素中添加
 
   
  <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='off'>
  <source>
  <address uuid='7d6cff35-231d-4ad2-a9b7-aa53d4d51b1f'/>
  </source>
  </hostdev>
  uuid要修改成创建虚拟显卡的UUID
 
  3. 图像显示设置
  找到<graphics>和<video>元素,删除默认,修改为:
 
   
  <graphics type='spice'>
  <listen type='none'/>
  <gl enable='yes' rendernode='/dev/dri/by-path/pci-0000:00:02.0-render'/>
  </graphics>
  <video>
  <model type='none'/>
  </video>
  pci-后面编号根据实际情况修改。

(编辑:漯河站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读