在PVE9.0下使用NVIDIA vGPU19.0显卡虚拟化拆分技术--应用于Windows/Ubuntu系统

记录6.14内核的PVE9.0.3版本配置NVIDIA vGPU19.0版本的显卡虚拟化拆分,NVIDIA vGPU是一项由 NVIDIA 开发的虚拟化技术。它允许单个物理的 NVIDIA GPU(显卡)被多个虚拟机(VM)同时、直接地共享使用。注意它不是一个免费的项目,需要购买软件许可vGPU License才能完整的使用vGPU。本文涉及的vGPU功能基于技术社区方案实现,仅限个人测试、学习及非商业用途,禁止用于商业生产环境。

硬件配置

演示的显卡依旧是哥布林救出来的“女生一手自用P106-100”显卡

配置型号
系统PVE 9.0.3
内核Linux pve9 6.14.8-2-pve
pve-qemu-kvm10.0.2-4
CPUIntel Core CC150 @ 3.5GHz 8核16线程
显卡七彩虹 P106-100 6144 MB
vGPU驱动580.65.05

女生一手自用P106-100
显卡支不支持vGPU虚拟化,可以点开下边列表进行查阅。

vGPU_Unlock支持的显卡列表 点我展开



以下 Maxwell\Pascal\Turing架构的显卡均支持vGPU,Ampere架构的30系及之后的消费卡暂不支持
Maxwell 架构:(GTX 9xx、Quadro Mxxxx、Tesla Mxx)
Pascal 架构:(GTX 10xx、Quadro Pxxxx、Tesla Pxx)
Turing 架构:(GTX 16xx、RTX 20xx、Quadro RTXxx、Tesla Txx)

设备ID显卡型号vGPU模拟型号
21c4TU116 GeForce GTX 1660 SUPERQuadro RTX 6000
21d1TU116BM GeForce GTX 1660 Ti MobileQuadro RTX 6000
21c2TU116Quadro RTX 6000
2182TU116 GeForce GTX 1660 TiQuadro RTX 6000
2183TU116Quadro RTX 6000
2184TU116 GeForce GTX 1660Quadro RTX 6000
2187TU116 GeForce GTX 1650 SUPERQuadro RTX 6000
2188TU116 GeForce GTX 1650Quadro RTX 6000
2191TU116M GeForce GTX 1660 Ti MobileQuadro RTX 6000
2192TU116M GeForce GTX 1650 Ti MobileQuadro RTX 6000
21aeTU116GLQuadro RTX 6000
21bfTU116GLQuadro RTX 6000
2189TU116 CMP 30HXQuadro RTX 6000
1fbfTU117GLQuadro RTX 6000
1fbbTU117GLM Quadro T500 MobileQuadro RTX 6000
1fd9TU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 6000
1ff9TU117GLM Quadro T1000 MobileQuadro RTX 6000
1fddTU117BM GeForce GTX 1650 Mobile RefreshQuadro RTX 6000
1f96TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 6000
1f99TU117MQuadro RTX 6000
1faeTU117GLQuadro RTX 6000
1fb8TU117GLM Quadro T2000 Mobile / Max-QQuadro RTX 6000
1fb9TU117GLM Quadro T1000 MobileQuadro RTX 6000
1f97TU117M GeForce MX450Quadro RTX 6000
1f98TU117M GeForce MX450Quadro RTX 6000
1f9cTU117M GeForce MX450Quadro RTX 6000
1f9dTU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 6000
1fb0TU117GLM Quadro T1000 MobileQuadro RTX 6000
1fb1TU117GL T600Quadro RTX 6000
1fb2TU117GLM Quadro T400 MobileQuadro RTX 6000
1fbaTU117GLM T600 MobileQuadro RTX 6000
1f42TU106 GeForce RTX 2060 SUPERQuadro RTX 6000
1f47TU106 GeForce RTX 2060 SUPERQuadro RTX 6000
1f50TU106BM GeForce RTX 2070 Mobile / Max-QQuadro RTX 6000
1f51TU106BM GeForce RTX 2060 MobileQuadro RTX 6000
1f54TU106BM GeForce RTX 2070 MobileQuadro RTX 6000
1f55TU106BM GeForce RTX 2060 MobileQuadro RTX 6000
1f81TU117Quadro RTX 6000
1f82TU117 GeForce GTX 1650Quadro RTX 6000
1f91TU117M GeForce GTX 1650 Mobile / Max-QQuadro RTX 6000
1f92TU117M GeForce GTX 1650 MobileQuadro RTX 6000
1f94TU117M GeForce GTX 1650 MobileQuadro RTX 6000
1f95TU117M GeForce GTX 1650 Ti MobileQuadro RTX 6000
1f76TU106GLM Quadro RTX 3000 Mobile RefreshQuadro RTX 6000
1f07TU106 GeForce RTX 2070 Rev. AQuadro RTX 6000
1f08TU106 GeForce RTX 2060 Rev. AQuadro RTX 6000
1f09TU106 GeForce GTX 1660 SUPERQuadro RTX 6000
1f0aTU106 GeForce GTX 1650Quadro RTX 6000
1f10TU106M GeForce RTX 2070 MobileQuadro RTX 6000
1f11TU106M GeForce RTX 2060 MobileQuadro RTX 6000
1f12TU106M GeForce RTX 2060 Max-QQuadro RTX 6000
1f14TU106M GeForce RTX 2070 Mobile / Max-Q RefreshQuadro RTX 6000
1f15TU106M GeForce RTX 2060 MobileQuadro RTX 6000
1f2eTU106MQuadro RTX 6000
1f36TU106GLM Quadro RTX 3000 Mobile / Max-QQuadro RTX 6000
1f0bTU106 CMP 40HXQuadro RTX 6000
1eb5TU104GLM Quadro RTX 5000 Mobile / Max-QQuadro RTX 6000
1eb6TU104GLM Quadro RTX 4000 Mobile / Max-QQuadro RTX 6000
1eb8TU104GL Tesla T4Quadro RTX 6000
1eb9TU104GLQuadro RTX 6000
1ebeTU104GLQuadro RTX 6000
1ec2TU104 GeForce RTX 2070 SUPERQuadro RTX 6000
1ec7TU104 GeForce RTX 2070 SUPERQuadro RTX 6000
1ed0TU104BM GeForce RTX 2080 MobileQuadro RTX 6000
1ed1TU104BM GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 6000
1ed3TU104BM GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 6000
1f02TU106 GeForce RTX 2070Quadro RTX 6000
1f04TU106Quadro RTX 6000
1f06TU106 GeForce RTX 2060 SUPERQuadro RTX 6000
1ef5TU104GLM Quadro RTX 5000 Mobile RefreshQuadro RTX 6000
1e81TU104 GeForce RTX 2080 SUPERQuadro RTX 6000
1e82TU104 GeForce RTX 2080Quadro RTX 6000
1e84TU104 GeForce RTX 2070 SUPERQuadro RTX 6000
1e87TU104 GeForce RTX 2080 Rev. AQuadro RTX 6000
1e89TU104 GeForce RTX 2060Quadro RTX 6000
1e90TU104M GeForce RTX 2080 MobileQuadro RTX 6000
1e91TU104M GeForce RTX 2070 SUPER Mobile / Max-QQuadro RTX 6000
1e93TU104M GeForce RTX 2080 SUPER Mobile / Max-QQuadro RTX 6000
1eabTU104MQuadro RTX 6000
1eaeTU104MQuadro RTX 6000
1eb0TU104GL Quadro RTX 5000Quadro RTX 6000
1eb1TU104GL Quadro RTX 4000Quadro RTX 6000
1eb4TU104GL T4GQuadro RTX 6000
1e04TU102 GeForce RTX 2080 TiQuadro RTX 6000
1e07TU102 GeForce RTX 2080 Ti Rev. AQuadro RTX 6000
1e2dTU102 GeForce RTX 2080 Ti Engineering SampleQuadro RTX 6000
1e2eTU102 GeForce RTX 2080 Ti 12GB Engineering SampleQuadro RTX 6000
1e30TU102GL Quadro RTX 6000/8000Quadro RTX 6000
1e36TU102GL Quadro RTX 6000Quadro RTX 6000
1e37TU102GL GRID RTX T10-4/T10-8/T10-16Quadro RTX 6000
1e38TU102GLQuadro RTX 6000
1e3cTU102GLQuadro RTX 6000
1e3dTU102GLQuadro RTX 6000
1e3eTU102GLQuadro RTX 6000
1e78TU102GL Quadro RTX 6000/8000Quadro RTX 6000
1e09TU102 CMP 50HXQuadro RTX 6000
1dbaGV100GL Quadro GV100Tesla V100 32GB PCIE
1e02TU102 TITAN RTXQuadro RTX 6000
1cfaGP107GL Quadro P2000Tesla P40
1cfbGP107GL Quadro P1000Tesla P40
1d01GP108 GeForce GT 1030Tesla P40
1d10GP108M GeForce MX150Tesla P40
1d11GP108M GeForce MX230Tesla P40
1d12GP108M GeForce MX150Tesla P40
1d13GP108M GeForce MX250Tesla P40
1d16GP108M GeForce MX330Tesla P40
1d33GP108GLM Quadro P500 MobileTesla P40
1d34GP108GLM Quadro P520Tesla P40
1d52GP108BM GeForce MX250Tesla P40
1d56GP108BM GeForce MX330Tesla P40
1d81GV100 TITAN VTesla V100 32GB PCIE
1cb6GP107GL Quadro P620Tesla P40
1cbaGP107GLM Quadro P2000 MobileTesla P40
1cbbGP107GLM Quadro P1000 MobileTesla P40
1cbcGP107GLM Quadro P600 MobileTesla P40
1cbdGP107GLM Quadro P620Tesla P40
1cccGP107BM GeForce GTX 1050 Ti MobileTesla P40
1ccdGP107BM GeForce GTX 1050 MobileTesla P40
1ca8GP107GLTesla P40
1caaGP107GLTesla P40
1cb1GP107GL Quadro P1000Tesla P40
1cb2GP107GL Quadro P600Tesla P40
1cb3GP107GL Quadro P400Tesla P40
1c70GP106GLTesla P40
1c81GP107 GeForce GTX 1050Tesla P40
1c82GP107 GeForce GTX 1050 TiTesla P40
1c83GP107 GeForce GTX 1050 3GBTesla P40
1c8cGP107M GeForce GTX 1050 Ti MobileTesla P40
1c8dGP107M GeForce GTX 1050 MobileTesla P40
1c8eGP107MTesla P40
1c8fGP107M GeForce GTX 1050 Ti Max-QTesla P40
1c90GP107M GeForce MX150Tesla P40
1c91GP107M GeForce GTX 1050 3 GB Max-QTesla P40
1c92GP107M GeForce GTX 1050 MobileTesla P40
1c94GP107M GeForce MX350Tesla P40
1c96GP107M GeForce MX350Tesla P40
1ca7GP107GLTesla P40
1c36GP106 P106MTesla P40
1c07GP106 P106-100Tesla P40
1c09GP106 P106-090Tesla P40
1c20GP106M GeForce GTX 1060 MobileTesla P40
1c21GP106M GeForce GTX 1050 Ti MobileTesla P40
1c22GP106M GeForce GTX 1050 MobileTesla P40
1c23GP106M GeForce GTX 1060 Mobile Rev. 2Tesla P40
1c2dGP106MTesla P40
1c30GP106GL Quadro P2000Tesla P40
1c31GP106GL Quadro P2200Tesla P40
1c35GP106M Quadro P2000 MobileTesla P40
1c60GP106BM GeForce GTX 1060 Mobile 6GBTesla P40
1c61GP106BM GeForce GTX 1050 Ti MobileTesla P40
1c62GP106BM GeForce GTX 1050 MobileTesla P40
1bb8GP104GLM Quadro P3000 MobileTesla P40
1bb9GP104GLM Quadro P4200 MobileTesla P40
1bbbGP104GLM Quadro P3200 MobileTesla P40
1bc7GP104 P104-101Tesla P40
1be0GP104BM GeForce GTX 1080 MobileTesla P40
1be1GP104BM GeForce GTX 1070 MobileTesla P40
1c00GP106Tesla P40
1c01GP106Tesla P40
1c02GP106 GeForce GTX 1060 3GBTesla P40
1c03GP106 GeForce GTX 1060 6GBTesla P40
1c04GP106 GeForce GTX 1060 5GBTesla P40
1c06GP106 GeForce GTX 1060 6GB Rev. 2Tesla P40
1b87GP104 P104-100Tesla P40
1ba0GP104M GeForce GTX 1080 MobileTesla P40
1ba1GP104M GeForce GTX 1070 MobileTesla P40
1ba2GP104M GeForce GTX 1070 MobileTesla P40
1ba9GP104MTesla P40
1baaGP104MTesla P40
1badGP104 GeForce GTX 1070 Engineering SampleTesla P40
1bb0GP104GL Quadro P5000Tesla P40
1bb1GP104GL Quadro P4000Tesla P40
1bb3GP104GL Tesla P4Tesla P40
1bb4GP104GL Tesla P6Tesla P40
1bb5GP104GLM Quadro P5200 MobileTesla P40
1bb6GP104GLM Quadro P5000 MobileTesla P40
1bb7GP104GLM Quadro P4000 MobileTesla P40
1b06GP102 GeForce GTX 1080 TiTesla P40
1b07GP102 P102-100Tesla P40
1b30GP102GL Quadro P6000Tesla P40
1b38GP102GL Tesla P40Tesla P40
1b70GP102GLTesla P40
1b78GP102GLTesla P40
1b80GP104 GeForce GTX 1080Tesla P40
1b81GP104 GeForce GTX 1070Tesla P40
1b82GP104 GeForce GTX 1070 TiTesla P40
1b83GP104 GeForce GTX 1060 6GBTesla P40
1b84GP104 GeForce GTX 1060 3GBTesla P40
1b39GP102GL Tesla P10Tesla P40
1b00GP102 TITAN XTesla P40
1b01GP102 GeForce GTX 1080 Ti 10GBTesla P40
1b02GP102 TITAN XpTesla P40
1b04GP102Tesla P40
179cGM107 GeForce 940MXTesla M10
17c2GM200 GeForce GTX TITAN XTesla M60
17c8GM200 GeForce GTX 980 TiTesla M60
17f0GM200GL Quadro M6000Tesla M60
17f1GM200GL Quadro M6000 24GBTesla M60
17fdGM200GL Tesla M40Tesla M60
1617GM204M GeForce GTX 980MTesla M60
1618GM204M GeForce GTX 970MTesla M60
1619GM204M GeForce GTX 965MTesla M60
161aGM204M GeForce GTX 980 MobileTesla M60
1667GM204M GeForce GTX 965MTesla M60
1725GP100Tesla P40
172eGP100Tesla P40
172fGP100Tesla P40
174dGM108M GeForce MX130Tesla M10
174eGM108M GeForce MX110Tesla M10
1789GM107GL GRID M3-3020Tesla M10
1402GM206 GeForce GTX 950Tesla M60
1406GM206 GeForce GTX 960 OEMTesla M60
1407GM206 GeForce GTX 750 v2Tesla M60
1427GM206M GeForce GTX 965MTesla M60
1430GM206GL Quadro M2000Tesla M60
1431GM206GL Tesla M4Tesla M60
1436GM206GLM Quadro M2200 MobileTesla M60
15f0GP100GL Quadro GP100Tesla P40
15f1GP100GLTesla P40
1404GM206 GeForce GTX 960 FAKETesla M60
13d8GM204M GeForce GTX 970MTesla M60
13d9GM204M GeForce GTX 965MTesla M60
13daGM204M GeForce GTX 980 MobileTesla M60
13e7GM204GL GeForce GTX 980 Engineering SampleTesla M60
13f0GM204GL Quadro M5000Tesla M60
13f1GM204GL Quadro M4000Tesla M60
13f2GM204GL Tesla M60Tesla M60
13f3GM204GL Tesla M6Tesla M60
13f8GM204GLM Quadro M5000M / M5000 SETesla M60
13f9GM204GLM Quadro M4000MTesla M60
13faGM204GLM Quadro M3000MTesla M60
13fbGM204GLM Quadro M5500Tesla M60
1401GM206 GeForce GTX 960Tesla M60
13b3GM107GLM Quadro K2200MTesla M10
13b4GM107GLM Quadro M620 MobileTesla M10
13b6GM107GLM Quadro M1200 MobileTesla M10
13b9GM107GL NVS 810Tesla M10
13baGM107GL Quadro K2200Tesla M10
13bbGM107GL Quadro K620Tesla M10
13bcGM107GL Quadro K1200Tesla M10
13bdGM107GL Tesla M10Tesla M10
13c0GM204 GeForce GTX 980Tesla M60
13c1GM204Tesla M60
13c2GM204 GeForce GTX 970Tesla M60
13c3GM204Tesla M60
13d7GM204M GeForce GTX 980MTesla M60
1389GM107GL GRID M30Tesla M10
1390GM107M GeForce 845MTesla M10
1391GM107M GeForce GTX 850MTesla M10
1392GM107M GeForce GTX 860MTesla M10
1393GM107M GeForce 840MTesla M10
1398GM107M GeForce 845MTesla M10
1399GM107M GeForce 945MTesla M10
139aGM107M GeForce GTX 950MTesla M10
139bGM107M GeForce GTX 960MTesla M10
139cGM107M GeForce 940MTesla M10
139dGM107M GeForce GTX 750 TiTesla M10
13b0GM107GLM Quadro M2000MTesla M10
13b1GM107GLM Quadro M1000MTesla M10
13b2GM107GLM Quadro M600MTesla M10
1347GM108M GeForce 940MTesla M10
1348GM108M GeForce 945M / 945ATesla M10
1349GM108M GeForce 930MTesla M10
134bGM108M GeForce 940MXTesla M10
134dGM108M GeForce 940MXTesla M10
134eGM108M GeForce 930MXTesla M10
134fGM108M GeForce 920MXTesla M10
137aGM108GLM Quadro K620M / Quadro M500MTesla M10
137bGM108GLM Quadro M520 MobileTesla M10
137dGM108M GeForce 940ATesla M10
1380GM107 GeForce GTX 750 TiTesla M10
1381GM107 GeForce GTX 750Tesla M10
1382GM107 GeForce GTX 745Tesla M10
1340GM108M GeForce 830MTesla M10
1341GM108M GeForce 840MTesla M10
1344GM108M GeForce 845MTesla M10
1346GM108M GeForce 930MTesla M10


资源下载

百度网盘:https://pan.baidu.com/s/1rqgxvmFku6rG2Ppjq4g-cg?pwd=knrj

资源说明
1.PVE镜像proxmox-ve_9.0-1.iso
2.写盘工具balenaEtcher-Portable-1.7.9.exe
3.vGPU驱动NVIDIA vGPU 19.0
4.FASTAPI-DLSFASTAPI-DLS授权服务LXC还原包
5.系统镜像虚拟机的系统镜像(Win11/Ubuntu/飞牛fnOS)

BIOS设置


提前在BIOS开启以下设置

  • 开启VT-d --必须开启,英特尔叫vt-d,AMD叫iommu
  • 开启SRIOV --如有
  • 开启Above 4G --如有
  • 关闭安全启动 --在security菜单 secure boot 改disabled

PVE的安装和基本设置

PVE烧录U盘

提前把balenaEtcher烧录工具PVE安装镜像下载好,这里我用的是proxmox-ve_9.0-1.iso版本,用balenaEtcher烧录工具将镜像写入U盘或者移动硬盘,然后插到主机进行PVE的安装。
示例图演示的是烧录PVE8镜像,PVE9也是一样的

安装PVE系统

将U盘或者移动硬盘接入主机引导启动到PVE安装界面,采用第一种图形化界面进行安装。PVE系统我这边给了28G,20G作为PVE系统盘用于存些ISO镜像啥的,不需要太大。按自己需要设置。另外8G作为SWAP虚拟内存用。
PVE图形界面手动分区安装示意图:
示例图演示的是PVE8的安装过程,PVE9也是一样的

PVE基本设置

使用浏览器登录到PVE后台,需要对PVE进行硬盘挂载和一些基本设置,在PVE Shell 中执行。(以下设置将会大量使用nano文本编辑命令,至于怎么使用nano命令点我去学习

删除local-lvm将空间合并到local

前面只给PVE系统盘分配了20G空间,再分出个local-lvm分区那local系统分区就没多少空间了,所以我们需要进行合并,删除local-lvm

# 使用命令删除local-lvm
lvremove /dev/pve/data
# 输入y,确认,输出以下信息即成功
Do you really want to remove active logical volume pve/data? [y/n]: y
Logical volume "data" successfully removed.
# 再将local-lvm的空间转移到pve-root
lvextend -rl +100%FREE /dev/pve/root
# 输出以下信息即合并local分区成功
Size of logical volume pve/root changed from <9.75 GiB (2495 extents) to <19.50 GiB (4991 extents).
Logical volume pve/root successfully resized.
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/mapper/pve-root is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/mapper/pve-root is now 5110784 (4k) blocks long.

删除了lvm-thin之后,还需要在Web删除local-lvm才算完成。
示例图演示的是PVE8的操作,PVE9也是一样的

把剩余的空间挂载为PVE数据存储池

最后就是把剩余的硬盘空间用作PVE数据存储池,需要做下硬盘分区。(这里要根据自己实际硬盘ID操作,我这里的是sda,用M.2硬盘的可能是nvme0n1不要盲目照抄)@零帧起手
示例图演示的是PVE8的操作,PVE9也是一样的
硬盘分区好后,可以到PVE控制台看到硬盘分区情况
示例图演示的是PVE8的操作,PVE9也是一样的
接着就是将该分区挂载为PVE数据存储池,把虚拟机安装到该存储池下就行。
示例图演示的是PVE8的操作,PVE9也是一样的

PVE换源

更换国内源主要是为了解决网络访问问题、提升下载速度、确保系统更新的可靠性,同时避免付费订阅的要求。
更换系统源
中科大源

# 替换 Debian 官方源和安全源为中科大源
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources
sed -i 's/security.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources

更换企业源
中科大源

# 关闭官方订阅企业源
sed -i '/Types:/a Enabled: false' /etc/apt/sources.list.d/pve-enterprise.sources
# 新增无订阅企业源为中科大源
cat > /etc/apt/sources.list.d/pve-no-subscription.sources <<EOF
Types: deb
URIs: https://mirrors.ustc.edu.cn/proxmox/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

更换Ceph源
中科大源

# 匹配当前Ceph版本和系统版本并更换为社区无订阅的中科大源
if [ -f /etc/apt/sources.list.d/ceph.sources ]; then
  CEPH_CODENAME=`ceph -v | grep ceph | awk '{print $(NF-1)}'`
  source /etc/os-release
  cat > /etc/apt/sources.list.d/ceph.sources <<EOF
Types: deb
URIs: https://mirrors.ustc.edu.cn/proxmox/debian/ceph-$CEPH_CODENAME
Suites: $VERSION_CODENAME
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
fi

执行更新

# 更新软件包
apt update

LXC容器更源
国内清华源

# 备份APLInfo.pm
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
# 替换为清华源:
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
# 重启服务后生效
systemctl restart pvedaemon.service

PVE常用优化脚本

# 一键给PVE增加温度和CPU频率显示;硬盘信息;取消弹窗订阅;
(curl -Lf -o /tmp/temp.sh https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh || curl -Lf -o /tmp/temp.sh https://mirror.g hproxy.com/https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh) && chmod +x /tmp/temp.sh && /tmp/temp.sh remod

开启硬件直通

从Proxmox VE 8.0 开始,系统在检测到CPU和芯片组支持 IOMMU 的情况下,会自动启用内核参数,用户通常无需手动在 GRUB 中添加 intel_iommu=on 参数。只需要在主板BIOS开启IO虚拟化功能就能正常直通了。英特尔为vt-d,AMD平台是iommu。

加载内核模块

加载内核模块,使用nano命令加入以下信息
nano /etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

屏蔽设备

添加设备黑名单,编辑pve-blacklist.conf
nano /etc/modprobe.d/pve-blacklist.conf

# 屏蔽NVIDIA显卡
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
# 允许不安全的设备中断
options vfio_iommu_type1 allow_unsafe_interrupts=1

执行更新initramfs

# 更新initramfs
update-initramfs -u -k all

配置 NVIDIA vGPU_Unlock 服务

vGPU_Unlock是解锁 NVIDIA 消费级显卡虚拟化功能的vGPU补丁,消费卡必须安装,原生支持的专业卡,数据中心卡可选安装(推荐也安装,可以解锁NVIDIA限制)。

# 创建vgpu_unlock文件夹
mkdir /etc/vgpu_unlock
# 创建profile_override.toml文件
touch /etc/vgpu_unlock/profile_override.toml
# 创建nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d启动服务
mkdir /etc/systemd/system/{nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d}
# 写入路径信息
echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpud.service.d/vgpu_unlock.conf
echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpu-mgr.service.d/vgpu_unlock.conf
# 重新加载服务
systemctl daemon-reload

执行完成后,cat下查看服务配置是否与下边一致
cat /etc/systemd/system/{nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d}/*

[Service]
Environment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so
[Service]
Environment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so

下载预编译好的libvgpu_unlock_rs.so文件

mkdir -p /opt/vgpu_unlock-rs/target/release
cd /opt/vgpu_unlock-rs/target/release
wget -O libvgpu_unlock_rs.so https://yangwenqing.com/files/pve/vgpu/vgpu_unlock/rust/libvgpu_unlock_rs_vgpu19.so

安装 NVIDIA vGPU_HOST 驱动

在宿主机PVE下安装vGPU的HOST驱动。驱动已做修补,自行将host驱动NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run上传到/tmp目录

# 安装用到的依赖包和header头文件
apt install build-essential dkms mdevctl pve-headers-$(uname -r)
# 前往上传驱动的/tmp目录
cd /tmp
# 赋予执行权限
chmod +x NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run
# 安装驱动(默认一路回车直至安装完成即可)
./NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run --dkms -m=kernel
# 安装好后执行重启
reboot

其他补充提示:

如要升级|降级vGPU驱动,则需要先卸载,再安装

# 卸载显卡驱动
./NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run --uninstall
# 移除显卡相关程序
apt remove --purge nvidia-*
# 再开始安装驱动(默认一路回车直至安装完成即可)
./NVIDIA-Linux-x86_64-580.65.05-vgpu-kvm-custom.run --dkms -m=kernel

重启完成后查看相关服务状态是否正常

# 查看相关服务状态
systemctl status {nvidia-vgpud.service,nvidia-vgpu-mgr.service}
# 重新启动相关服务
systemctl restart {nvidia-vgpud.service,nvidia-vgpu-mgr.service}
# 停止相关服务
systemctl stop {nvidia-vgpud.service,nvidia-vgpu-mgr.service}

正常运转没有错误说明服务正常
以下为输出日志:

root@pve9:~# systemctl status {nvidia-vgpud.service,nvidia-vgpu-mgr.service}
○ nvidia-vgpud.service - NVIDIA vGPU Daemon
     Loaded: loaded (/usr/lib/systemd/system/nvidia-vgpud.service; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/nvidia-vgpud.service.d
             └─vgpu_unlock.conf
     Active: inactive (dead) since Wed 2025-08-27 20:06:00 CST; 3h 46min ago
 Invocation: a74e7620de244604b92a71531071bccb
    Process: 984 ExecStart=/usr/bin/nvidia-vgpud (code=exited, status=0/SUCCESS)
   Main PID: 984 (code=exited, status=0/SUCCESS)
   Mem peak: 7.6M
        CPU: 634ms

Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Encoder Capacity: 0x64
Aug 27 20:06:00 pve9 nvidia-vgpud[984]: BAR1 Length: 0x100
Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Frame Rate Limiter enabled: 0x1
Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Number of Displays: 4
Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Max pixels: 16384000
Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Display: width 5120, height 2880
Aug 27 20:06:00 pve9 nvidia-vgpud[984]: Multi-vGPU Exclusive supported: 0x1
Aug 27 20:06:00 pve9 nvidia-vgpud[984]: License: GRID-Virtual-PC,2.0;Quadro-Virtual-DWS,5.0;GRID-Virtual-WS,2.0;GRID-Virtual-WS-Ext,2.0
Aug 27 20:06:00 pve9 systemd[1]: nvidia-vgpud.service: Deactivated successfully.
Aug 27 20:06:00 pve9 systemd[1]: Finished nvidia-vgpud.service - NVIDIA vGPU Daemon.

● nvidia-vgpu-mgr.service - NVIDIA vGPU Manager Daemon
     Loaded: loaded (/usr/lib/systemd/system/nvidia-vgpu-mgr.service; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/nvidia-vgpu-mgr.service.d
             └─vgpu_unlock.conf
     Active: active (running) since Wed 2025-08-27 20:06:00 CST; 3h 46min ago
 Invocation: f323e4299db44e0e9077dbaa55110d14
    Process: 1200 ExecStart=/usr/bin/nvidia-vgpu-mgr (code=exited, status=0/SUCCESS)
   Main PID: 1208 (nvidia-vgpu-mgr)
      Tasks: 6 (limit: 38267)
     Memory: 37.9M (peak: 78.3M)
        CPU: 7.743s
     CGroup: /system.slice/nvidia-vgpu-mgr.service
             ├─1208 /usr/bin/nvidia-vgpu-mgr
             └─1574 vgpu

随后使用nvidia-smi
以下为输出日志:

root@pve9:~# nvidia-smi
Wed Aug 27 23:54:38 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.65.05              Driver Version: 580.65.05      CUDA Version: N/A      |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA P106-100                On  |   00000000:08:00.0 Off |                  N/A |
| 23%   46C    P8              7W /  120W |    1041MiB /   6144MiB |      1%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            1574    C+G   vgpu                                   1012MiB |
+-----------------------------------------------------------------------------------------+
root@pve9:~# nvidia-smi vgpu
Wed Aug 27 23:54:44 2025       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 580.65.05              Driver Version: 580.65.05                 |
|---------------------------------+------------------------------+------------+
| GPU  Name                       | Bus-Id                       | GPU-Util   |
|      vGPU ID     Name           | VM ID     VM Name            | vGPU-Util  |
|=================================+==============================+============|
|  0   NVIDIA P106-100            | 00000000:08:00.0             |   0%       |
|      3251634191  GRID T4-1Q     | dd02...  Windows10-22H2,d... |    0%      |
+---------------------------------+------------------------------+------------+

以及mdevctl types查看
以下为输出日志:

root@pve9:~# mdevctl types
0000:08:00.0
  nvidia-222
    Available instances: 15
    Device API: vfio-pci
    Name: GRID T4-1B
    Description: num_heads=4, frl_config=45, framebuffer=1024M, max_resolution=5120x2880, max_instance=16
  nvidia-223
    Available instances: 0
    Device API: vfio-pci
    Name: GRID T4-2B
    Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=8
  nvidia-224
    Available instances: 0
    Device API: vfio-pci
    Name: GRID T4-2B4
    Description: num_heads=4, frl_config=45, framebuffer=2048M, max_resolution=5120x2880, max_instance=8
  nvidia-225
    Available instances: 15
    Device API: vfio-pci
    Name: GRID T4-1A
    Description: num_heads=1, frl_config=60, framebuffer=1024M, max_resolution=1280x1024, max_instance=16
  nvidia-226
    Available instances: 0
    Device API: vfio-pci
    Name: GRID T4-2A
    Description: num_heads=1, frl_config=60, framebuffer=2048M, max_resolution=1280x1024, max_instance=8
  nvidia-227
    Available instances: 0
    Device API: vfio-pci
    Name: GRID T4-4A
    Description: num_heads=1, frl_config=60, framebuffer=4096M, max_resolution=1280x1024, max_instance=4
  nvidia-228
    Available instances: 0
    Device API: vfio-pci
    Name: GRID T4-8A
    Description: num_heads=1, frl_config=60, framebuffer=8192M, max_resolution=1280x1024, max_instance=2
  nvidia-229
    Available instances: 0
    Device API: vfio-pci
    Name: GRID T4-16A
    Description: num_heads=1, frl_config=60, framebuffer=16384M, max_resolution=1280x1024, max_instance=1
  nvidia-230
    Available instances: 15
    Device API: vfio-pci
    Name: GRID T4-1Q
    Description: num_heads=4, frl_config=60, framebuffer=1024M, max_resolution=5120x2880, max_instance=16

Ampere架构显卡开启vGPU

Ampere架构的显卡在PVE安装好vGPU HOST驱动后,还需要开启VF才能使用vGPU,开启VF前你需要在BIOS打开SR-IOV功能。(用的不是Ampere架构以上的显卡请跳过这部分@零帧起手
在PVE Shell 新建一个Systemd自启动服务,开机自启动VF

cat > /etc/systemd/system/nvidia-sriov.service <<EOF
[Unit]
Description=Enable NVIDIA SR-IOV
After=network.target nvidia-vgpud.service nvidia-vgpu-mgr.service
Before=pve-guests.service

[Service]
Type=oneshot
ExecStartPre=/bin/sleep 5
ExecStart=/usr/lib/nvidia/sriov-manage -e ALL

[Install]
WantedBy=multi-user.target
EOF

打开VF后,就可以选Mdev类型开启vGPU给虚拟机了。

# 重新加载服务
systemctl daemon-reload
# 设置nvidia-sriov.service,开机自启动
systemctl enable nvidia-sriov.service
# 启动VF
systemctl restart nvidia-sriov.service


像RTX A5000/A6000这类带显示接口的显卡,还需要切换到无显示模式才能用vGPU,先切换好无显示模式再来安装驱动顺序不能乱。

# 下载displaymodeselector工具到PVE根目录
wget https://yun.yangwenqing.com/NVIDIA/vGPU/NVIDIA/Tools/NVIDIA_Display_Mode_Selector_Tool/displaymodeselector
# 授权可执行文件
chmod  +x displaymodeselector
# 切换无显示模式,跟着提示步骤进行关闭
./displaymodeselector --gpumode
# 重启PVE后生效
reboot

演示图为Windows下操作,Linux也是一样的

创建vGPU资源映射

如果机器的PCI设备列表有很多,或者设备里存在多张显卡又或者在用Ampere架构及以上的显卡采用的是SR-IOV拆分,会多出很多个VF设备。直接从原始设备中添加vGPU的时候很难查找。

这时就可以来创建PCI设备的资源映射,这样在添加vGPU设备时能更快的选择到我们vGPU设备。
A5000采用SR-IOV拆分,会多出很多个VF设备,只需要全部勾选

添加PCI设备时,在映射的设备列表就能找到我们需要的vGPU设备。

搭建fastapi-dls授权服务

NVIDIA vGPU并非免费产品,需要对vGPU驱动购买许可才能正常使用vGPU,这里我用的是技术社区fastapi-dls项目来取得90天的试用许可。我这里提供一个PVE的LXC容器,使用docker服务部署的fastapi-dls授权。

LXC容器信息:

NVIDIA vGPU 驱动授权服务器(90天授权期,客户端在每13天12点续订1次许可证,授权服务需要保持运行才能自动续期)
FASTAPI-DLS 版本:2.0.2
CT容器IP:10.10.10.99
登录LXC账号:root
登录LXC密码:123123

1)将下载下来的LXC容器还原包vzdump-lxc-999-2025_07_31-19_21_51.tar.zst上传到PVE的/var/lib/vz/dump/路径下。然后进行还原

2)并将原来的IP改为自己局域网的IP,这里我用10.10.10.251

3)开机并登录LXC容器(账号:root密码:123123)并创建fastapi-dls授权服务。注意下边的IP10.10.10.251改为自己的IP。

docker run --restart always -d -e DLS_URL=10.10.10.251 -e DLS_PORT=443 -p 443:443 makedie/fastapi-dls:2.0.2
# 检查fastapi-dls容器是否正在运行
docker ps

创建虚拟机(Win11)

Win11镜像virtio-win-0.1.271.iso驱动上传到PVE。然后在PVE上创建一个Win11虚拟机(24h2)实例

注意:vGPU19.0版本需要系统版本在22h2及以上才能正常使用,低于22h2的系统版本是没法安装驱动的。

安装虚拟机(Win11)

启动虚拟机,开始安装Win11

配置虚拟机(Win11)

1)安装virtio驱动
安装好Win11后,把Virtio驱动给打上,进到CD光驱盘运行virtio-win-guest-tools直接下一步直至安装完成

2)启用QEMU Guest Agent
安装好后,PVE的虚拟机概要处上可以看到ip信息,如果看不到ip信息,请在关闭虚拟机,在虚拟机的选项中,启用QEMU Guest Agent

3)开启RDP远程桌面
在系统设置开启RDP远程桌面

4)允许RDP显卡加速
RDP 支持无显卡运行,在远程桌面的时候默认是不调用显卡,可以开启它,让它支持显卡加速。
首先打开虚拟机上的组策略gpedit.msc,依次找到计算机配置->管理模板->Windows组件->远程桌面服务->远程桌面会话主机->远程会话环境在右边选择将硬件图形适配器应用于所有远程桌面服务会话 右键编辑,选择已启用,确定保存。

5)解除RDP 30帧限制
RDP 默认的帧率限制在30帧,可以设置为60帧传输。
在注册表打开该路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations

在空白处右键->新建->DWORD(32位)值,命名为DWMFRAMEINTERVAL,双击刚添加的这一项,基数选择为十进制,数值数据填写15,确定保存重启生效。

6)关闭防火墙
关闭Windows防火墙,或者放行3389远程桌面端口

7)关闭睡眠/屏幕
在系统设置中,把屏幕超时改为从不

配置vGPU(Guest驱动)

1)添加vGPU设备
PCI设备:选nvidia显卡(勾选ROM-Bar和PCIE在Mdev类型中选择vgpu设备230)

音频设备:ich9-intel-hda/后端驱动器:无(不添加的话,串流玩游戏时是没有声音的)


其中 GRID T4-1Q (nvidia-230) 是 mdev 的名字,GRID T4--显卡名,1--1G 显存,Q 代表 vWS,nvidia-230 代表ID
关于最后一位字母,如下:
Q:为需要Quadro技术的性能和功能的创意和技术专业人员提供的虚拟工作站 - CUDA OpenGL
C:计算密集型服务器工作负载,如人工智能、深度学习或高性能计算。- CUDA Only
B:为业务专业人员和知识工作者提供的虚拟桌面 - 45FPS MAX
A:为虚拟应用的用户,提供应用流或基于会话的解决方案 - Good for RDSH
3D渲染,游戏,AI运算,请选择Q系列型号即可

2)安装Guest驱动
从vGPU 18.x开始,NVIDIA技术团队添加了 NLS ROOT CA 证书验证来保护vGPU授权数据,所以要想正常使用GRID显卡驱动还得想办法把驱动证书强校验给破解。以下是在网上找到的破解方法patched-nvidia-grid-drivers,通过FastAPI-DLS搭配patched-nvidia-grid-driver来跳过证书检查。
将GRID驱动和nvxdapix.dll补丁复制到虚拟机

# Windows GRID驱动程序
580.88_grid_win10_win11_server2022_dch_64bit_international.exe
# vGPU19.0的nvxdapix.dll补丁用于修补WIN GRID驱动程序
https://github.com/rbqvq/patched-nvidia-grid-drivers/blob/master/patched/19.0/nvxdapix.dll


双击打开GRID驱动程序,等待程序解压完成,并前往程序解压好的路径

将下载下来的nvxdapix.dll补丁替换到Display.Driver文件夹下,然后开始安装GRID驱动程序

安装GRID驱动选择精简安装,遇到Windows安全中心的弹窗选择始终安装此驱动程序软件即可。

3)授权GRID驱动
在浏览器访问fastapi-dls授权服务:https://10.10.10.251/-/client-token会自动下载好授权文件

将文件放入C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken\这个目录下

3) 重启NVIDIA Display Container Ls服务,即可获得授权

如授权失败:①需要检查虚拟机的时间是否对得上授权服务器时间;②fastapi-dls授权服务是否为2.X版本,vGPU18.x后版本必须升级到2.X版本
4)使用远程桌面工具连接上虚拟机跑个鲁大师测试一下显卡是否正常驱动并工作
Q系列模型帧率限制在60帧


想解除60帧?
编辑nano /etc/vgpu_unlock/profile_override.toml文件,加入以下信息关闭虚拟机重新开机生效。

[profile.nvidia-230]
cuda_enabled = 1
frl_enabled = 0
vgpu_type = "NVS"

参数说明:
[profile.nvidia-230]nvidia-230 为vgpu型号的参数。如选的不是230则改成自己选的那个型号。
cuda_enabled = 1是否开启cuda
frl_enabled = 0 是否限制帧数,0为不限制
vgpu_type = "NVS" 修复Q系列OpenGL性能异常问题


解除帧率后的效果

创建虚拟机(Ubuntu 2504)

演示的是用最新的Ubuntu 2504 桌面版本,内核为linux-image-6.14.0-29-generic
[scode type="share"]
创建Ubuntu虚拟机(2504)
名称:自定义
光驱挂载:Ubuntu安装ISO镜像
系统中显卡:默认
机型:q35
BIOS:默认 (SeaBIOS)
磁盘:SCSI 大小100G(按需设置,或硬盘直通)
CPU:host 核心数量4(按需设置)
内存:8G
网络:virtIO 网卡
添加PCI设备:nvidia显卡(勾选ROM-Bar和PCIE在Mdev类型中选择vgpu设备)
音频设备:ich9-intel-hda/后端驱动器:无


安装驱动

1) 安装显卡驱动前先将需要的依赖文件打上

# 安装ssh工具,使用第三方SSH工具(putty,终端)连接到Ubuntu,PVE里面控制台无法复制命令
sudo apt-get install openssh-server
# 需要所需依赖
sudo apt install build-essential linux-headers-generic libglvnd-dev pkg-config -y
# 安装dkms
sudo apt install dkms -y
# 安装32位兼容库
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 -y

2)屏蔽自带的显卡驱动

# 创建blacklist-nouveau.conf文件
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
# 在blacklist-nouveau.conf文件添加如下内容:
blacklist nouveau
options nouveau modeset=0
# 重载内核initramfs
sudo update-initramfs -u
# 重启Ubuntu
sudo reboot
# 重启完成后检查nouveau是否已禁用,没有任何输出说明已经禁用
lsmod | grep nouveau
# 切换到文本命令行控制台
sudo chvt 3
# 关闭图形界面服务
sudo service gdm stop

3)安装显卡GRID驱动,将NVIDIA-Linux-x86_64-580.65.06-grid.run上传到/root目录下

# 切换root权限
sudo -i
# 给可执行权限
cd /root && chmod +x NVIDIA-Linux-x86_64-580.65.06-grid.run
# 安装驱动(默认回车直至安装完成即可)
./NVIDIA-Linux-x86_64-580.65.06-grid.run --dkms
# 安装完驱动后删除官方nvidia-gridd文件
rm -f /usr/bin/nvidia-gridd
# 下载破解好的nvidia-gridd文件
wget -O /usr/bin/nvidia-gridd https://github.com/rbqvq/patched-nvidia-grid-drivers/raw/refs/heads/master/patched/19.0/nvidia-gridd
# 授予可执行权限
chmod +x /usr/bin/nvidia-gridd
# 重启服务
systemctl restart nvidia-gridd

4)使用nvidia-smi验证驱动是否正常

ubuntu@ubuntu-Standard-PC-Q35-ICH9-2009:~$ nvidia-smi
Thu Aug 28 23:02:49 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.65.06              Driver Version: 580.65.06      CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  GRID T4-1Q                     On  |   00000000:01:00.0 Off |                  N/A |
| N/A   N/A    P0            N/A  /  N/A  |      11MiB /   4096MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            1454      G   /usr/lib/xorg/Xorg                       10MiB |
+-----------------------------------------------------------------------------------------+

启用授权

# 获取授权文件,以下IP替换成自己的授权服务IP
wget --no-check-certificate -O /etc/nvidia/ClientConfigToken/client_configuration_token_$(date '+%d-%m-%Y-%H-%M-%S').tok https://10.10.10.251/-/client-token
# 或者
curl --insecure -L -X GET https://10.10.10.251/-/client-token -o /etc/nvidia/ClientConfigToken/client_configuration_token_$(date '+%d-%m-%Y-%H-%M-%S').tok

验证授权

# 重启服务
sudo service nvidia-gridd restart
# 验证授权获取情况
nvidia-smi -q | grep License
# 看到有Licensed字样,就授权好了。
ubuntu@ubuntu-Standard-PC-Q35-ICH9-2009:~$ nvidia-smi -q | grep License
    vGPU Software Licensed Product
        License Status                    : Licensed (Expiry: 2025-11-26 14:31:55 GMT)


如果你需要用vGPU跑大模型,可能还需要安装CUDA/CuDNN,vGPU19.0支持最新的CUDA 13.0版本,当然cuda12 cuda11版本也是可以安装。

安装CUDA

打开官网:https://developer.nvidia.com/cuda-toolkit-archive
选择CUDA 13.0,如下图选择Linux及对应的架构、系统、版本和安装形式

复制网站给我们的安装命令,依次在终端中输入:

# 下载cuda 13 安装程序
wget https://developer.download.nvidia.com/compute/cuda/13.0.0/local_installers/cuda_13.0.0_580.65.06_linux.run
# 执行安装cuda程序
sudo sh cuda_13.0.0_580.65.06_linux.run

输入accept接受条款

┌──────────────────────────────────────────────────────────────────────────────┐
│  End User License Agreement                                                  │
│  --------------------------                                                  │
│                                                                              │
│  NVIDIA Software License Agreement and CUDA Supplement to                    │
│  Software License Agreement.                                                 │
│                                                                              │
│  The CUDA Toolkit End User License Agreement applies to the                  │
│  NVIDIA CUDA Toolkit, the NVIDIA CUDA Samples, the NVIDIA                    │
│  Display Driver, NVIDIA Nsight tools (Visual Studio Edition),                │
│  and the associated documentation on CUDA APIs, programming                  │
│  model and development tools. If you do not agree with the                   │
│  terms and conditions of the license agreement, then do not                  │
│  download or use the software.                                               │
│                                                                              │
│  Last updated: January 12, 2025                                              │
│                                                                              │
│                                                                              │
│  Preface                                                                     │
│  -------                                                                     │
│                                                                              │
│──────────────────────────────────────────────────────────────────────────────│
│ Do you accept the above EULA? (accept/decline/quit):                         │
│ accept                                                                       │
└──────────────────────────────────────────────────────────────────────────────┘

注意:由于之前以及安装过驱动了,这次不要再安装驱动。在Driver这里按ENTER将勾去掉!将2项CUDA选项勾选然后选择Install

┌──────────────────────────────────────────────────────────────────────────────┐
│ CUDA Installer                                                               │
│ - [ ] Driver                                                                 │
│      [ ] 580.65.06                                                           │
│ + [X] CUDA Toolkit 13.0                                                      │
│   [X] CUDA Documentation 13.0                                                │
│ - [ ] Kernel Objects                                                         │
│      [ ] nvidia-fs                                                           │
│   Options                                                                    │
│   Install                                                                    │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│                                                                              │
│ Up/Down: Move | Left/Right: Expand | 'Enter': Select | 'A': Advanced options │
└──────────────────────────────────────────────────────────────────────────────┘

安装完成后,来配置环境变量:
nano 编辑bashrc文件
nano ~/.bashrc

# 在最后添加以下变量信息
export PATH=$PATH:/usr/local/cuda-13.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-13.0/lib64

最后,使其生效

source ~/.bashrc

执行nvcc -V即可查看CUDA版本

root@ubuntu-Standard-PC-Q35-ICH9-2009:~# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jul_16_07:30:01_PM_PDT_2025
Cuda compilation tools, release 13.0, V13.0.48
Build cuda_13.0.r13.0/compiler.36260728_0

安装CuDNN

打开官网:https://developer.nvidia.com/cudnn-downloads
选择CuDNN 9.12.0,如下图选择Linux及对应的架构、系统、版本和安装形式

复制网站给我们的安装命令,依次在终端中输入:

wget https://developer.download.nvidia.com/compute/cudnn/9.12.0/local_installers/cudnn-local-repo-ubuntu2404-9.12.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2404-9.12.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2404-9.12.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn9-cuda-13

学习|致谢

广告:PROXMOX-VE 技术支持,疑难解答,有需要可以闲鱼与我联系↓↓↓

PVE技术支持
最后修改:2025 年 08 月 29 日
如果觉得我的文章对你有用,请随意赞赏