当前位置: 首页 > ds >正文

Proxmox VE 8.4 显卡直通完整指南:NVIDIA 2080 Ti 实战

背景:

PCIe Passthrough 技术允许虚拟机直接访问物理GPU设备,绕过宿主机系统,从而获得接近原生性能的图形处理能力. 参照:从Proxmox VE开始:安装与配置指南。在R740服务器完成了proxmox的安装,并且安装了一张2080ti 魔改22g显存的的显卡。现在我需要将显卡直接直通到一台vm实例上面。

验证系统信息

系统版本与显卡信息如下:

cat /etc/os-release
pveversion -v 

****输出确认当前proxmox server 是基于debian 12 版本的 8.4.0 proxmox操作系统 :

显卡信息 2080ti的信息:

 lspci -nnk|grep "NVIDIA"

下面就就详细记录一下具体过程!

请注意:当前服务器cpu为intel处理器,amd处理器配置有些许不同,请注意查找一下相关资料…

Proxmox VE 8.4 显卡直通完整指南:NVIDIA 2080 Ti 实战

检查和启用IOMMU支持

IOMMU(Input-Output Memory Management Unit)是硬件辅助的虚拟化技术,为PCI设备直通提供必要的内存管理和隔离功能。

修改GRUB配置

# 备份原始配置
cp /etc/default/grub /etc/default/grubold
# 编辑GRUB配置
vi /etc/default/grub

编辑/etc/default/grub文件,并在GRUB_CMDLINE_LINUX_DEFAULT行中添加以下内容(使用默认,pve版本为8.4):

# 修改 GRUB_CMDLINE_LINUX_DEFAULT 配置为GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream"#注意:pve  7.2 以前版本使用
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off,vesafb:off pcie_acs_override=downstream"

参数说明(deepseek总结的参数定义,可以个人查缺补漏):

**参数说明 **:

  • **intel_iommu=on **: 启用Intel平台的IOMMU支持
  • **iommu=pt **: 仅对直通设备启用IOMMU,减少性能开销
  • **initcall_blacklist=sysfb_init **: 防止宿主机占用显卡帧缓冲区
  • **pcie_acs_override=downstream **: 解决某些PCIe设备的ACS限制问题

**注意 **:对于AMD平台,需将 **intel_iommu=on **替换为 **amd_iommu=on **

更新grub配置:

update-grub

添加必要的的内核模块

打开文件 /etc/modules ,新增以下4行内容

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

**reboot **重启 proxmox 主机

验证IOMMU是否启用

待服务器启动后,登录服务器验证IOMMU是否启用:

dmesg | grep -E "DMAR|IOMMU"

验证并 配置VFIO

验证VFIO模块:

dmesg | grep -i vfio

查看显卡id:

root@proxmox1:~# lspci -nn | grep NVIDIA
3b:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti Rev. A] [# 添加PCI设备
echo "options vfio-pci ids=10de:1e07 disable_vga=1" > /etc/modprobe.d/vfio.conf
] (rev a1)
3b:00.1 Audio device [0403]: NVIDIA Corporation TU102 High Definition Audio Controller [10de:10f7] (rev a1)
3b:00.2 USB controller [0c03]: NVIDIA Corporation TU102 USB 3.1 Host Controller [10de:1ad6] (rev a1)
3b:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU102 USB Type-C UCSI Controller [10de:1ad7] (rev a1)

得到显卡的id是:10de:1e07(注意这里的10de:10f7,10de:1ad6 ,10de:1ad7应该都加上去,我这里就用显卡功能无所谓了 )

将设备ID添加到 vfio.conf:

# 添加PCI设备
echo "options vfio-pci ids=10de:1e07 disable_vga=1" > /etc/modprobe.d/vfio.conf

注意请一定注意这里的将设备Id添加到vfio.conf操作。往上很多笔记遗忘了该部分!

验证是否支持 **中断重映射 **

dmesg | grep 'remapping'

屏蔽显卡驱动 :

在proxmox主机屏蔽掉显卡的驱动:

echo "# NVIDIA" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia_drm" >> /etc/modprobe.d/blacklist.conf
echo "" >> /etc/modprobe.d/blacklist.conf

其他有用的配置

  • 允许不安全的中断
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf

  • 为 NVIDIA 卡添加稳定性修复和优化
echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf

更新内核引导文件

更新内核引导文件并重启宿主机:

update-initramfs -k all -u
reboot

验证是否成功:

lspci -nn | grep NVIDIA
lspci -nnk -s 3b:00

正常直通时,输出应显示内核驱动为 **vfio-pci ****,如果未显示则需要执行 **验证并配置VFIO部分。

vm实例添加显卡

等待宿主机启动后完成如下操作!

VM实例添加显卡:

这里使用了登录web控制台增加pci设备的方式,当然也可以shell登录宿主机使用命令添加的方式!

以VM实例301为例:点击vm 实例-硬件-添加-PCI设备-原始设备,找到2080TI设备选中,添加:

启动虚拟机实例:

确认当前vm实例是关闭状态,启动 VM实例:

注意,由于proxmox reboot操作过,并且我的vm实例不是开机自启动,这里可以操作后直接启动,如果是正在运行中的实例,请关闭实例后启动.

验证vm实例挂载显卡成功:

登录vm 301实例,使用如下命令确认vm实例成功挂载了显卡设备:

lspci | grep -i vga
lspci -nn | grep NVIDIA

ok到这里 显卡就完成了 显卡直通的相关操作!下一章节给vm实例安装显卡驱动与cuda!

http://www.xdnf.cn/news/3684.html

相关文章:

  • 【OFDM过程中正交子载波特性的应用及全面解析】
  • C++负载均衡远程调用学习之HOOK注册机制
  • deepseek 技巧整理
  • 《Java高级编程:从原理到实战 - 进阶知识篇三》
  • 【算法应用】基于鲸鱼优化算法WOA求解VRPTW问题
  • Oracle无法正常OPEN(三)
  • ARConv的复现流程
  • btrace2.0使用方法
  • 基于FastApi实现本地部署DeepSeek-R1-Distill-Qwen与流式输出
  • 文章四《深度学习核心概念与框架入门》
  • 读书记:《认知红利》
  • 云盘系统设计
  • Vue3+Element Plus全套学习笔记-目录大纲
  • UE自动索敌插件Target System Component
  • MAAS Anvil - 高可用 MAAS 部署管理工具
  • 纳米AI搜索体验:MCP工具的实际应用测试,撰写报告 / 爬虫小红书效果惊艳
  • Matplotlib核心课程-2
  • JavaWeb学习打卡-Day7-正向代理、反向代理、Nginx
  • 使用AI-01开发板和开源后端服务搭建整套小智服务系统
  • 在运行 Hadoop 作业时,遇到“No such file or directory”,如何在windows里打包在虚拟机里运行
  • 赎金信(简单)
  • 单一职责原则(SRP)
  • 安妮推广导航系统开心版多款主题网址推广赚钱软件推广变现一键统计免授权源码Annie
  • 写了个脚本将pdf转markdown
  • C/C++工程师使用 DeepSeek
  • [面试]SoC验证工程师面试常见问题(三)
  • 2505C++,wmi客户端示例
  • MySQL:联合查询
  • Linux-07-Shell
  • 大模型在终末期肾脏病风险预测与临床方案制定中的应用研究