请稍侯

pve 上 nvidia vgpu

03 March 2025

PVE 上 NVIDIA vGPU 配置

1.安装相关的依赖包

apt update
apt install -y build-essential dkms pve-headers mdevctl

2.开启 iommu, 更新grub

vim /etc/default/grub 环境变量GRUB_CMDLINE_LINUX_DEFAULT添加 intel_iommu=on iommu=pt

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

3.配置内核,必须加载内核模块才能使 vGPU 工作,vim /etc/modules 添加:

# vfio 是 VFIO 的核心模块,必须加载以支持 VFIO(Virtual Function I/O) 功能
vfio
# 该模块实现了基于 IOMMU(Input-Output Memory Management Unit)的虚拟地址空间管理,支持设备的地址转换和权限控制,是使用 VFIO 的重要组成部分
vfio_iommu_type1
# 该模块允许将 PCI 设备(如 PCIe 显卡、网络适配器等)通过 VFIO 进行管理,支持将这些设备分配给虚拟机。
vfio_pci
# 该模块用于处理虚拟中断请求(IRQ),提供更细粒度的中断管理功能,增强了 VFIO 的功能。
vfio_virqfd

4.阻止 Proxmox 自带的 Nvidia GPU 的开源新驱动程序,编辑/etc/modprobe.d/blacklist.conf

# blacklist nvidiafb:禁用 NVIDIA framebuffer 驱动,通常用于图形输出。
echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf
# blacklist nouveau:禁用 Nouveau 驱动,这是一个开源的 NVIDIA 显卡驱动。
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
# blacklist nvidia:禁用 NVIDIA 官方驱动,通常用于高性能图形处理。
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
# blacklist radeon:禁用 Radeon 驱动程序,通常用于 AMD 显卡。
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
# blacklist amdgpu:禁用 AMD GPU 驱动程序,支持较新型号的 AMD 显卡。
echo "blacklist amdgpu" >> /etc/modprobe.d/blacklist.conf
# blacklist snd_hda_intel:禁用 Intel HD 音频驱动,通常用于音频输出。
echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf
# blacklist snd_hda_codec_hdmi:禁用 HDMI 音频编码器,通常用于 HDMI 输出音频。
echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/blacklist.conf
# blacklist i915:禁用 Intel 集成显卡驱动,通常用于 Intel 的集成图形处理单元。
echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf

5.应用内核配置并重启:

update-grub && update-initramfs -u -k all && reboot

6.验证配置

dmesg | grep 'remapping'
dmesg | grep -e DMAR -e IOMMU -e AMD-Vi

# 无输出,代表未启用
lsmod | grep nouveau

下载 vGPU 驱动

下载地址:https://pan.baidu.com/s/1J72clvi3IyZg-jStue2LJA?pwd=vGPU, 下完后, 将 Host 驱动 NVIDIA-Linux-x86_64-525.60.12-vGPU-kvm.run 上传到 PVE 上准备安装,如下:

chmod +x NVIDIA-Linux-x86_64-525.60.12-vgpu-kvm.run 
./NVIDIA-Linux-x86_64-525.60.12-vgpu-kvm.run --dkms

参考链接
PCI(e) Passthrough: https://pve.proxmox.com/wiki/PCI(e)_Passthrough
NVIDIA vGPU on Proxmox VE
国光的 PVE 环境搭建教程 - vGPU教程
Getting NVIDIA vGPU Software

非 vGPU, 直接安装nvidia驱动
PVE8.2 安装NVIDIA驱动并共享给LXC容器
Proxmox PVE虚拟机配置Debian 12实现NVIDIA显卡直通解决方法

验证驱动 与 cuda

# 验证驱动, 查看 nvidia gpu 信息
nvidia-smi
# 验证cuda
nvcc --version
# 如果没有 nvcc命令,需要将 /usr/local/cuda/bin添加到环境变量
export PATH=/usr/local/cuda/bin:$PATH