PVE7教程【篇一】硬件虚拟化 显卡直通与GVT |
您所在的位置:网站首页 › kali禁用显卡 › PVE7教程【篇一】硬件虚拟化 显卡直通与GVT |
PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g
2022-05-29 18:36:27
57点赞
399收藏
55评论
前言:PVE的教程网上有很多,站内也有很多大佬的文章。对于小白来说,命令行敲错、复制错了,一出现error就不知道该怎么办了,我以前是再找一篇,从头再来一遍 我的硬件设备: 主板:华擎z390 极限玩家4 cpu:i5-9600k 内存:阿斯加特T2 16G✖2 SSD:英睿达镁光MX500 1T 机箱:安钛克P101S 散热:安耐美 晶凌240水冷 环境:Proxmox VE 7.2-4,内核5.15.35-3 行吧,咱们就开始操练起来吧。 一、显卡直通和中介设备原理介绍显卡直通很好理解,即是显卡直接直通给虚拟机,包括PVE和其他虚拟机都不能用。适合打算将显卡直通给一个虚拟机外联显示器的情况,或者主机有多个显卡分别直通给不同设备的情况。这里需要说下,直通也需要IOMMU拆分,不然整个PCIe全都给了某个虚拟机,后果不限于PVE失联,M.2固态找不到了,硬盘也找不到了等等。。。 中介设备【 Mediated Devices 】:vGPU, GVT-g。Intel核显的技术叫GVT-g, NVIDIA技术叫vGPU。这个是很多小伙伴的刚需,想把核显分享给黑群晖或者docker里面的emby、jellyfin做硬解,win10或者别的虚拟机也想要个核显,反正都得有。这种情况就用到intel的GVT-g,效果如下: 命令:nano /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet" 修改为: GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1" 光标放在quiet的后面空一格,然后复制黏贴。 修改完成后按Ctrl+x,问你是否需要保存?-->输入Y,问你是否写入文件-->按回车。 弄错了没关系,问你是否需要保存?-->输入N,就返回了。 原理说明(按需要添加命令): 1、官方文档:IOMMU (I/O Memory Management Unit)中断重新映射。如果不中断重新映射,将无法使用 PCI 直通。设备分配将失败,并显示“无法分配设备”[设备名称]“:不允许操作”或“找不到中断重新映射硬件,将设备传递到非特权域不安全”错误。【 'Failed to assign device "[device name]": Operation not permitted' or 'Interrupt Remapping hardware not found, passing devices to unprivileged domains is insecure.' error.】 所有使用英特尔处理器和芯片组的系统,如果支持英特尔虚拟化技术定向 I/O (VT-d),但不支持中断重新映射,将看到此类错误。较新的处理器和芯片组(AMD 和英特尔)提供中断重新映射支持; 2、PCIe直通需要主要主要开启虚拟化, Intel叫VT-d,AMD的叫AMD-V(i) ,都需要再主板BIOS里面开启; 3、Intel添加的为intel_iommu=on,AMD添加的为amd_iommu=on; 4、 iommu=pt,官方文档说明:这仅在必要时才启用 IOMMU 转换,适配器不需要使用 DMA 转换到内存,因此可以提高虚拟机管理程序 PCIe 设备(未传递到 VM)的性能。意思就是开了能提高虚拟机调取PCIe的性能,那就开吧。 5、i915.enable_gvt=1,官方文档说明:Intel的 GVT-g 驱动程序集成在内核中,启用时加载模块。意思就是,想开启GVT-g的就添加这条,显卡直通的就不要添加了。 【第二步】保存更改并更新 grubupdate-grub TIPS: GVT-g可支持数量和最多分辨率: i915-GVTg_V5_1 # Video memory: , resolution: up to 1920x1200可用数量i915-GVTg_V5_2 # Video memory: , resolution: up to 1920x1200可用数量i915-GVTg_V5_4 # Video memory: , resolution: up to 1920x1200 可用数量2i915-GVTg_V5_8 # Video memory: , resolution: up to 1024x768 可用数量1 所以想要核显分享给多个虚拟机用的,需要在bios里面设置内存分给核显显存的大小。 二、修改内核模块命令:nano /etc/modules 【第一步】添加内核模块vfiovfio_iommu_type1vfio_pcivfio_virqfdkvmgt 原理说明: 1、PCIe直通启用vfio vfio_iommu_type1 vfio_pci vfio_virqfd2、vGPU和GVT-g需再添加kvmgt 【第二步】更改任何与模块相关的内容后,您需要刷新 initramfsupdate-initramfs -u -k all 同时完成后,应重启以下。可用shell里面reboot,或者web界面重启。 总共也就四步而已,非常简单。 三、效果检测1、命令:dmesg | grep -e DMAR -e IOMMU -e AMD-Vi 2、命令:find /sys/kernel/iommu_groups/ -type l 3、命令:lspci 注:lspci 显示所有PCIe设备的信息,比如第二个VGA就是Intel的核显,0000:00:02.0就是设备ID,下一个命令就是参看此设备支持的类型。 4、命令:ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types 标题二里最后的TIPS里面,i915-GVTg_V5_4,i915-GVTg_V5_8。 最简单的还是直接建一个虚拟机,完成后不要启动,再【硬件】-->【添加】-->【PCI设备】就能看到了。 pve按照完成后,可先检测一下硬件设备和系统是否支持。要确定您的系统是否支持中断重新映射,请执行以下操作: dmesg | grep 'remapping' 如支持应显示: · "AMD-Vi: Interrupt remapping enabled" · "DMAR-IR: Enabled IRQ remapping in x2apic mode"('x2apic' can be different on old CPUs, but should still work) 下面重点来了,不支持咋办? 如不显示,则硬件设备不支持,可以使用以下命令允许不安全的中断: echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf 意思就是通过命令行或者软支持(我的理解)。 然后再命令行更新 grub,刷新 initramfs。 update-grub update-initramfs -u -k all 要是再不行,只能再网上搜搜有没有案例了。 最后的最后: 1、给软路由的小伙伴,这样设置下来,你的多网口网卡可以支持分别分给ikuai、openwrt、routeros等等软路由了。 2、如果你的网卡支持SR-IOV的话,你会发现也变成中介模式了一个网口也能支持给多个设备了。 无图.jpg 作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~ ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |