ESXI直通显卡

ESXI直通显卡

环境

ESXI 8.0

Ubuntu 22.04

显卡4090D 48G x 2

两张显卡设置

创建虚拟机时,添加PICE适配器。显卡和其声音模块都要添加 不然驱动可能不识别。

17.00.0是显卡,17.00.1就是其对应的声音模块

设置EFI引导模式, 取消安全引导 必须要取消不然嘎嘎报错

编辑配置参数

pciPassthru0.present = "TRUE"
pciPassthru0.deviceId = "0x2685"
pciPassthru0.vendorId = "0x10de"
pciPassthru.64bitMMIOSizeGB = "256"
hypervisor.cpuid.v0 = "FALSE"

hypervisor.cpuid.v0值为FALSE

pciPassthru.use64bitMMIO值为TRUE

pciPassthru.64bitMMIOSizeGB值为256(这个数字一般填写所有显卡加起来的总显存数,这里因为用的是魔改版本不是标准版,所以填的最大值256)

启动虚拟机安装驱动 直接安装英伟达官方步骤安装即可,注意区别操作系统版本

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=24.04&target_type=deb_network

ubuntu中禁用nouveau

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
update-initramfs -u
reboot

最后验证显卡信息

如果还有问题,请按照以下思路排查。输出的日志直接发给ChatGPT就行,他判断的很准确。

//查看nvidia模块
lsmod | grep nvidia

//查看nvidia报错日志
dmesg | grep -iE "nvrm|nvidia|bar"

//查看 GPU 初始化日志
dmesg | grep -i nvrm

//检查 PCIe / BAR 分配
lspci -vv | grep -i nvidia -A 12

//IOMMU 检查
dmesg | grep -i iommu

https://blog.csdn.net/zhouleizhou_lei/article/details/105945697

https://blog.csdn.net/zhangzhibo921/article/details/139441863

允许驱动加载未完全支持的 GPU,有助于 Linux 兼容性(我用的显卡是4090D魔改48G版,添加了这个参数才可以正常识别。。。。。)

sudo nano /etc/default/grub

# 在 GRUB_CMDLINE_LINUX_DEFAULT 添加:
GRUB_CMDLINE_LINUX_DEFAULT="nvidia.NVreg_OpenRmEnableUnsupportedGpus=1"

# 更新 GRUB
sudo update-grub
sudo reboot

我的解决案例

https://chatgpt.com/share/68ea118b-af28-800c-9308-587842b124e6