Skip to content

安装 Nvidia 显卡

我的环境信息
硬件软件
主板X99-TurboESXI8
CPUE5-2678 v3LinuxUbuntu 24.04 LTS
显卡2080Ti 22G

Bios

解释
MMIO High Base最大映射外围设备到内存,的起始高地址
Above 4G DecodingEnable允许系统访问大内存的 PCI 设备
Intel Virtualization TechnologyEnable硬件辅助虚拟化技术

ESXI

  • 关闭安全引导:编辑 > 虚拟机选项 > 引导选项 > 启用 UEFI 安全引导 > 是否为此虚拟机启用 UEFI 安全引导:否
  • 配置虚拟机参数:编辑 > 虚拟机选项 > 高级 > 配置参数 > 编辑配置:
解释
hypervisor.cpuid.v0FALSE让驱动认为设备不在虚拟环境中
pciPassthru.use64bitMMIOTRUE使用 64bit 位宽寻址。未开则识别不到显卡
pciPassthru.64bitMMIOSizeGB64设置 MMIO 内存大小

Ubuntu

shell
lspci | grep -i nvidia # 查看显卡型号

禁用nouveau驱动

shell
cat << EOF > /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0
EOF

update-initramfs -u  # 更新设置
reboot               # 重启系统
lsmod | grep nouveau # 检查nouveau是否运作。无输出则成功。

其他设置

shell
echo "options nvidia NVreg_OpenRmEnableUnsupportedGpus=1" > /etc/modprobe.d/nvidia.conf

安装GPU驱动

卸载Nviadia驱动
shell
# 软件包
apt-get --yes --purge remove "*nvidia*"
apt purge --yes nvidia-cuda-* cuda-*
apt purge --yes nvidia-*
apt autoremove --yes
apt autoclean

/usr/bin/nvidia-uninstall # Nvidia 安装包的卸载器

# 内核模块
dkms status
dkms remove -m nvidia -v 550.120 --all
update-initramfs -u

# 残留文件
rm -rf /usr/lib/nvidia/ /usr/share/nvidia/ /var/lib/nvidia/

echo "-------------------------- 检查  --------------------------"
lsmod | grep nvidia
dpkg -l | grep nvidia
apt list --installed | grep nvidia
dkms status
nvidia-smi
shell
# 安装依赖
apt update; apt install gcc make build-essential libglvnd-dev pkg-config

# 安装驱动
ubuntu-drivers devices             # 检测显卡型号和推荐的驱动
apt install nvidia-driver-550-open # 实测只有开源版本能正常用
nvidia-smi                         # 检查驱动是否正常运转
reboot                             # 安装驱动后应该重启系统

这个命令会输出显卡信息,例如:

shell
Mon Feb 17 10:46:16 2025
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01             Driver Version: 535.183.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| 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 GeForce RTX 2080 Ti     Off | 00000000:03:00.0 Off |                  N/A |
| 31%   37C    P8              11W / 250W |      3MiB / 22528MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

总结

在 ESXi 8 中的 Linux 虚拟机中使用显卡直通,必要的步骤:

  • 关闭 UEFI 安全引导
  • 使用开源版驱动
  • 设置NVreg_OpenRmEnableUnsupportedGpus=1

参考

Linux安装Nvidia显卡驱动+CUDA+cuDNN+PyTorch - 知乎ESXi 8直通NVIDIA显卡至Linux系统