原创文章,转载请注明出处
https://qiedd.com/
官方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
直通设备
机型选择q35,在虚拟机中添加PCI设备即可,如图,主GPU可勾可不勾,Linux下多GPU可能需要自己配置
可以通过 dmesg
查看是否有错误
比如 No more image in the PCI ROM
那你可能需要按上述操作把核显驱动也禁了
15 条评论
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下进行挖矿,没有尝试用来做显示输出
锁上的 · 2023年4月12日 下午11:49
直通后hdmi可以看见画面,为什么安装驱动后就黑屏了?
^_^ · 2022年4月1日 上午7:27
请问直通的目的是什么?将它当做台式机用?
Lordpenguindd · 2022年4月5日 下午12:33
直通之后可以直接使用硬件,而不是透过虚拟层来调用硬件,减少性能损失
Linux的GPU虚拟化确实不太行,特别是Nvidia()
肥鼠龙 · 2022年4月16日 上午12:45
太好了,总算找到一篇有用的文章了,经过不段的尝试,看了本文章,总算找NVIDIA 的P600显卡直通win10成功了。
LunarMeal · 2022年6月3日 上午12:05
最后虽然是把核显直通过去了,但是我用远程桌面查看,它还是使用的标准vga适配器,那个核显貌似根本没用上
wjj2999 · 2022年7月12日 下午7:32
远程桌面就是不调用GPU的。无论是核显还是独显。需要自己插显示器或者用向日葵连接。
多多柠檬茶 · 2022年9月27日 上午12:24
大佬,我两张独立显卡并不能分开同时直通给两台虚拟机:一台vm直通第一张卡启动了,第二台开机就整个pve都崩了重启,但两台分别各自开启直通又没有问题;按上面做了iommu分流,禁用了驱动,但好像不起效,amd3700x+x570+nv独显x2
Lordpenguindd · 2022年9月27日 上午12:32
就是说两张卡同时直通到一台虚拟机里不会崩吗
那你试试在Bios里找找Pcie拆分的选项?