官方WIKI:https://pve.proxmox.com/wiki/Pci_passthrough

配置:UH630+英伟达GT1030

Grub修改

编辑文件 /etc/default/grub

#编辑 /etc/default/grub
nano /etc/default/grub

#找到
GRUB_CMDLINE_LINUX_DEFAULT="quiet“

#Intel用户修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream video=vesafb:off video=efifb:off"

#AMD用户修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on pcie_acs_override=downstream video=vesafb:off video=efifb:off"

这里说一下为什么会需要拆分iommu pcie_acs_override=downstream

像我这块主板,一二槽同时插上时会共享带宽,如果不拆分iommu,当两个设备同时直通,其中一个就会显示占用

video=vesafb:off video=efifb:off :禁止启动和vesa驱动和efi启动的显卡

VT-d

检查VT-d是否开启

#执行
dmesg | grep -e DMAR -e IOMMU
#若无输出,请在BIOS内开启VT-d

#更新grub
update-grub

加载vifo模块

#编辑 /etc/modules
nano /etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

找到设备的hostpci

#找到设备的hostpci
lspci
#01:00.0为显卡本身视频输出
#01:00.1这是显卡自带的声卡

#查看设备的Device ID
lspci -n -s 01:00
##输出(将Device ID替换成你自己的)
#01:00.0 0300: 10de:1381 (rev a2)
#01:00.1 0403: 10de:0fbc (rev a1)

#将设备加入进vfio
echo "options vfio-pci ids=10de:1381,10de:0fbc disable_vga=1" > /etc/modprobe.d/vfio.conf 
##这里我还直通了核显
##echo "options vfio-pci ids=ids=8086:1234" > /etc/modprobe.d/vfio.conf

#防止在win10中显卡代码43
echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf

#信任设备
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf

#看看设备需要用到什么驱动
lspci -vvv -s 01:00

##可以看到01:00.0这个设备需要 nvidiafb, nouveau
#        Kernel driver in use: vfio-pci
#        Kernel modules: nvidiafb, nouveau

##01:00.1
#        Kernel driver in use: vfio-pci
#        Kernel modules: snd_hda_intel

因此我们把上面要的驱动都禁了

禁用驱动

将要禁用的驱动加入 /etc/modprobe.d/pve-blacklist.conf

#编辑blacklist
nano /etc/modprobe.d/pve-blacklist.conf

# This file contains a list of modules which are not supported by Proxmox VE 

# nidiafb see bugreport https://bugzilla.proxmox.com/show_bug.cgi?id=701
blacklist nvidiafb
blacklist nouveau
blacklist nvidia
blacklist snd_hda_intel     

#如果不想直通核显,这个可以不用
blacklist snd_hda_codec_hdmi
blacklist i915

#AMD Driver
blacklist radeon

更新配置

#更新initramfs
update-initramfs -u

#若输出 EFI sync什么的没有,不用理会,那是由于pve安装方式引起的

#重启
reboot

直通设备

在虚拟机中添加PCI设备即可,如图,主GPU可勾可不勾,Linux下多GPU可能需要自己配置

可以通过 dmesg 查看是否有错误
比如 No more image in the PCI ROM
那你可能需要按上述操作把核显驱动也禁了

分类: LinuxPVE

7 条评论

ZYZ · 2021年5月18日 下午9:37

还是不行啊,我是华南x99-8M-T E5-2673V3 DDR3 32G 显卡丽台k600,直通后win10下43

    Lordpenguindd · 2021年5月19日 上午12:52

    geforce 465以后的驱动似乎已经解禁了,但是专业卡我不清楚

怜炎佳佳 · 2021年6月11日 上午11:12

大佬求教 我pve一把显卡添加给虚拟机 我的m2固态就用不了

    Lordpenguindd · 2021年6月13日 下午1:56

    你这样说我什么都分析不出来呀,拆分iommu没

OvO · 2021年9月17日 下午9:02

站长可以出一个 7.0 显卡直通教程吗? 试了一下一直报43错误。。

geekercloud · 2021年10月16日 下午10:23

很棒,跟着教程走直通成功了。英伟达控制面板出来了,但是接显卡显示器没显示,不知道咋回事

    Lordpenguindd · 2021年10月17日 上午12:06

    有将显卡设置为主gpu吗
    我是直通到Linux下进行挖矿,没有尝试用来做显示输出

发表评论

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据