笔者在网上见了很多的直通显卡教程,但是经过我的研究,某些选项是不必要的,我们可以舍弃掉这些设置,当然每台设备的体质不同,我是基于我个人的机器写的这篇文章。
检查CPU是否支持VT-D,以及修改BIOS设置
- 这一步是绝对必要的,你先要上网查询你的CPU是否支持VT-D,还要查询你的主板是否支持VT-D相关的设置,当然这个一般都会有,检查一下更保险。
先根据你的主板对应的进入BIOS方法进入BLOS,去检查你的BLOS设置保证VT-D是启用的状态,然后还需要开启CSM这个选项。
这里引用一些其他主板的BIOS图片做示例:
图片源:https://www.thomas-krenn.com/en/wiki/Activating_the_Intel_VT-d_Virtualization_Feature
启用它之后,硬件方面的设置就完成了,现在就需要进入PVE进行下一步的设置。
PVE直通设置
- 1,修改GRUB
这一步的作用是开启硬件直通必须的iommu功能
这一步你需要修改/etc/default/grub
这个文件。
先注释掉GRUB_CMDLINE_LINUX_DEFAULT="quiet"
在它之后添加如下设置:GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
注意:若你的设备在之后的操作中遇到问题可以在intel_iommu=on
之后添加video=efifb:off
,vesafb:off
运行update-grub使操作生效update-grub
- 4,modprobe设置
这一步是添加直通所需的模块
编辑/etc/modules
这个文档,添加如下设置:
``
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
``
若本来就有的在原来的基础上添加设置。
- 3,添加设备驱动黑名单
这一步的作用是防止宿主机占用直通设备,导致后续无法直通。
编辑/etc/modprobe.d/pve-blacklist.conf
这个文档
添加:
``
blacklist radeon
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist amdgpu
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
``
若本来就有的在原来的基础上添加设置。
- 4,添加options防止虚拟机死机
这部是通过修改kvm配置文件添加options来防止虚拟机死机
编辑/etc/modprobe.d/kvm.conf
这个文件
添加options kvm ignore_msrs=1
- 5,更新内核应用设置
这一步的作用是将前面的设置应用到内核。
执行update-initramfs -u
虚拟机设置
这一步我发现每个人的设置都不太相同,这里分享一个我的办法,或许对N卡的小伙伴有用。
- 1,转到虚拟机的硬件页面,添加一个PCI设备
- 2,选择
Raw Device
,根据下图操作
图二的设备0000:01:00.0
和0000:01:00.1
是一个设备,若你需要这个设备的所有功能,选择前者,勾选图一的“所有功能”。
那么做完这一步,设备应该就没什么问题了,以下是一些问题的解决方案
- 对于做完这项设置启动虚拟机之后设备错误和无法显示画面的,虚拟机中重启之后显卡错误的,那么你大概率需要你的设备vblos
推荐文章:https://vt.wooomooo.com/?p=46813
- 1,这个你可以去看上面的那篇文章或者直接去网上找你这张卡的vbios或者在pe或者windows下使用GPU-Z保存vbios
- 2,将提取的vbios保存到
/usr/share/kvm/
这个目录 - 3,编辑虚拟机的配置文件
/etc/pve/qemu-server/[替换为你的虚拟机id].conf
- 4,找到你刚刚添加的pci设备那一行,像这样:
hostpci0: 0000:01:00,pcie=1
- 5,在后面添加romfile=[替换为vbios文件名]
6,完整的像这样hostpci0: 0000:01:00,pcie=1,romfile=gt605BIOS.rom
评论 (1)