在 Proxmox VE 上进行独立显卡直通(GPU passthrough)操作,可以将物理显卡直接分配给虚拟机,从而提升虚拟机的图形性能。
前提条件
硬件支持:确保你的 CPU 和主板支持 IOMMU(Intel VT-d 或 AMD-Vi)
BIOS 设置:在 BIOS 中启用 IOMMU 和相关设置(Intel VT-d 或 AMD-Vi)
硬件环境:
CPU: AMD Ryzen 5 3600X
Motherboard: MSI MAG B550M
GPU: Nvidia 1650S
1.更改BIOS设置
重置BIOS为默认设置
Settings\Save & Exit\Restore Defaults
关闭S/3Modern Standby Support(可选)
Settings\Advanced\ACPI Settings\S/3Modern Standby Support [Disabled]
设置Initiate Graphic Adaptor为外置显卡
Settings\Advanced\Initiate Graphic Configuration\Initiate Graphic Adaptor [PEG]
设置Integrated Graphics为Force Mode
Settings\Advanced\Initiate Graphic Configuration\Integrated Graphics [Force]
打开主板IOMMU
Overclocking\Advanced CPU Configuration\AMD CBS\IOMMU [Enabled]
打开CPU虚拟化
Overclocking\Advanced CPU Configuration\SVM Mode [Enabled]
2.启用 IOMMU
编辑 /etc/default/grub 文件,找到 GRUB_CMDLINE_LINUX_DEFAULT 行,并添加
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"
3.更新 GRUB 配置
update-grub
4.编辑内核模块配置
创建或编辑 /etc/modules 文件,添加以下内容:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
5.获取设备 ID:
lspci -nn | grep -i vga
示例:
2b:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU116 [GeForce GTX 1650 SUPER] [10de:2187] (rev a1)
2b:00.0 为PCI ID
10de:2187 为显卡设备ID
6.绑定显卡到 VFIO 驱动程序
编辑 /etc/modprobe.d/vfio.conf 文件,添加你的显卡设备 ID:
options vfio-pci ids=10de:2187
7.禁用默认驱动程序
编辑或创建 /etc/modprobe.d/pve-blacklist.conf 文件,添加以下内容以禁用默认的显卡驱动程序:
blacklist nouveau
blacklist nvidia
blacklist radeon
blacklist amdgpu
8.更新 initramfs
update-initramfs -u -k all
9.重启系统
reboot