ESXi CentOS 虚拟机 NVIDIA 显卡驱动升级备案文档

ESXi CentOS 虚拟机 NVIDIA 显卡驱动升级备案文档

问题描述

使用ESXI虚拟化切分显卡,可以让8卡GPU服务器分别运行Windows和Linux环境。 在 ESXi 7虚拟化环境中,通过 PCI Passthrough 直通 NVIDIA 显卡到 CentOS 虚拟机时,加载新版本驱动失败,出现类似与以下关键错误:

bash 复制代码
NVRM: GPU 0000:0b:00.0: RmInitAdapter failed! (0x26:0x56:1474)
BUG: unable to handle page fault for address: 0000000000004628

解决方案

通过修改虚拟机高级配置 + 使用 NVIDIA 开放内核模块 解决:

ESXi 虚拟机 关键配置项

ini 复制代码
# ESXi 虚拟机高级选项
hypervisor.cpuid.v0 = FALSE    # 隐藏虚拟化特征
pciPassthru0.msiEnabled = FALSE # 禁用 MSI 中断

使用 kernel-open 模式安装驱动

bash 复制代码
# 必须使用 kernel-open 模式安装  root权限
sh cuda_12.4.0_550.54.14_linux.run -m=kernel-open

# 安装后更新 initramfs  可选 
update-initramfs -u
# 重启可选
reboot

完整操作流程

1. ESXi 虚拟机配置

  1. 关闭虚拟机

  2. 编辑设置 > VM Options > Advanced:

    ini 复制代码
    hypervisor.cpuid.v0 = FALSE
    pciPassthru0.msiEnabled = FALSE
  3. 确认 PCI 设备直通配置

2. 驱动安装准备

bash 复制代码
# 清理旧驱动 ubuntu 可选
nvidia-uninstall
apt purge -y '^nvidia-*' '^libnvidia-*'
rm -r /var/lib/dkms/nvidia
apt autoremove
update-initramfs -c -k $(uname -r)

3. 安装开放内核驱动

bash 复制代码
# 下载驱动(示例版本)
axel -n 12 https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run        

# 安装命令(关键参数!)
chmod +x cuda_12.4.0_550.54.14_linux.run 
./cuda_12.4.0_550.54.14_linux.run  -m=kernel-open

# 验证安装
modinfo nvidia | grep version  # 应显示驱动版本
version:        550.54.14
rhelversion:    7.9
srcversion:     BABF5253924D36C48E7D170
vermagic:       3.10.0-1160.81.1.el7.x86_64 SMP mod_unload modversions

NVIDIA 显卡持久模式配置指南

持久模式控制命令

1. 启用持久模式

bash 复制代码
nvidia-smi -pm 1

2. 禁用持久模式

bash 复制代码
nvidia-smi -pm 0

3. 状态验证

bash 复制代码
nvidia-smi -q | grep "Persistence Mode"
# 预期输出:Persistence Mode     : Enabled

参考文档

NVIDIA Persistence Mode 参考帖子
kernel-open 模式 | Nvidia-smi shows no devices were found although driver is installed
ESXi 显卡直通 | SOLVED - RmInitAdapter failed! to load 530.41.03 (or any nvidia modules other than 450.236.01) Linux via ESXi 7.0u3 Passthrough PCI GTX 1650

相关推荐
Hommy88几秒前
【剪映小助手】添加图片接口(Add Images)
后端·github·剪映小助手·视频剪辑自动化
GetcharZp33 分钟前
别再盲目用 OpenCV 读图了,这才是 CV 预处理的终极杀手锏!
后端
IT_陈寒4 小时前
Vite热更新失效?可能你在用Windows
前端·人工智能·后端
椰椰椰耶5 小时前
[SpringCloud][14]OpenFeign参数传递方法
后端·spring·spring cloud
onething3656 小时前
Spring Boot + Spring AI 从入门到实战:7天转型计划 Day 3 —— 消息表设计 + 级联删除 + 事务管理
人工智能·后端
荣江6 小时前
Hermes Agent 代码仓库打包工具使用指南(repomix-rs 高性能版)
后端
王某某人6 小时前
LangChain4j 入门:Java 程序员的第一个 AI 对话程序
人工智能·后端
码农刚子6 小时前
从零开始:在 Windows 服务器上部署 Node.js 项目(小白实战教程)
后端·node.js
Cache技术分享6 小时前
435. Java 日期时间 API - Clock 灵活获取当前时间
前端·后端
浩子coding6 小时前
通过 Spring AI Alibaba 源码,看如何玩转 ReAct 智能体范式
人工智能·后端