PVE搭建VGPU

清夏晚风

宿主机环境配置(手动):

宿主机版本:PVE 8.4-1

更换APT源(加速安装依赖):

1
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
  • 建议选择清华大学、南京大学镜像源

安装依赖包:

1
2
apt update
apt install git build-essential pve-kernel-6.1 proxmox-headers-6.2 mdevctl dkms cargo jq uuid-runtime -y
  • 不要使用太新的内核版本,根据显卡支持的VGPU驱动版本选择
  • P4、P40显卡不支持17.X及以上版本的驱动,目前最新支持版本为16.12(NVIDIA-Linux-x86_64-535.274.03-vgpu-kvm.run)
  • 若这步可以安装驱动,则可以跳过下一步

安装内核源码:

1
apt install linux-source-6.1
  • 安装 proxmox-headers 包后貌似可以跳过(未测试)
  • 可以尝试不安装linux-source-6.1直接安装VGPU驱动

编辑GRUB配置文件:

1
nano /etc/default/grub

查看GRUB启动顺序

1
grep menuentry /boot/grub/grub.cfg

修改为6.1的内核

  • 如果觉得麻烦可以使用自动脚本。
  • 在GRUB配置中,GRUB_DEFAULT=”1>2”的格式用于指定多级菜单中的启动项。具体解释如下:

    1>‌:表示进入第一个子菜单(从0开始计数)。
    2‌:表示在该子菜单中选择第3个选项(因为索引从0开始)。

若要指定第五个选项(索引4),则应修改为:

1
GRUB_DEFAULT="1>4"

配置虚拟化环境:

PVE开启IOMMU:

1
nano /etc/default/grub

修改 GRUB_CMDLINE_LINUX_DEFAULT

1
2
3
4
5
6
7
8
# INTEL CPU  
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

# AMD CPU
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

# 更新GRUB让配置生效
update-grub

加载VFIO:

1
2
3
4
5
6
7
echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules

# 更新initramfs让配置生效
update-initramfs -k all -u

屏蔽默认驱动

1
2
3
4
5
6
7
8
9
10
11
nano /etc/modprobe.d/blacklist.conf

# 写入以下内容
blacklist radeon
blacklist amdgpu
blacklist nouveau
blacklist nvidia
blacklist nvidiafb

# 更新initramfs让配置生效
update-initramfs -k all -u

重启系统

1
reboot
  • 也可以使用控制台重启

验证默认驱动屏蔽效果:

1
lsmod|grep nouveau
  • 无输出即为成功

屏蔽企业源:

1
2
3
# 注释以下文件中的内容
nano /etc/apt/sources.list.d/ceph.list
nano /etc/apt/sources.list.d/pve-enterprise.list

宿主机环境配置(半自动)

使用PVE优化脚本:

官网:https://bbs.x86pi.com/thread?topicId=20

1
2
3
4
5
6
# 下载 pve_source.tar.gz 文件
wget https://gitee.com/kimikkorow/tools/releases/download/v0.0.3/pve_source.tar.gz
# 解压 pve_source.tar.gz 文件
tar zxvf pve_source.tar.gz
# 执行 pve_source
/root/pve_source
  • 选择你需要的功能根据提示进行即可。
  • 手动方式可以组合脚本使用。

虚拟机安装

此次略过,安装完成后,安装VGPU宿主机驱动。

VGPU授权

使用docker-compose.yml编排授权服务器,并启动:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: '3.9'

x-dls-variables: &dls-variables
TZ: Asia/Shanghai
DLS_URL: 10.10.20.20 # 配置为你容器所在的主机ip或者域名
DLS_PORT: 443
LEASE_EXPIRE_DAYS: 3650
DATABASE: sqlite:////app/database/db.sqlite
DEBUG: "false"

services:
dls:
image: collinwebdesigns/fastapi-dls:1.4.1
restart: always
environment:
<<: *dls-variables
ports:
- "443:443"
volumes:
- ./cert:/app/cert
- ./db:/app/database

或者使用 docker run 拉起服务器:

1
docker run -d -e DLS_URL=10.10.20.20 -e DLS_PORT=443 -p 443:443  makedie/fastapi-dls
  • 其中10.10.20.20配置为你容器所在的主机ip或者域名
  • 注意端口映射
  • Title: PVE搭建VGPU
  • Author: 清夏晚风
  • Created at : 2025-12-20 00:00:00
  • Updated at : 2026-01-13 16:48:23
  • Link: https://blog.kimikkorow.eu.org/虚拟化技术/Proxmox VE(PVE)/PVE搭建VGPU/
  • License: This work is licensed under CC BY-NC-SA 4.0.