ESXi6.7实现直通独显(RTX 3060)给Ubuntu炼丹

发布于 / Linux / 3 条评论

ESXi对普通消费级显卡直通的支持度不是很好,高版本的内核和驱动可能造成直通失败或报错。折腾了一下午,看了大量教程,终于使用ESXi6.7成功将显卡直通给了Ubuntu。

0、硬件直通

左侧导航器-主机-管理,选项卡找到硬件,确保PCI设备中显卡的直通为活动。如果不是活动,点击上面的切换直通,并重新引导ESXi即可

image.png

1、ESXi打补丁

注册账号,登录到这里:产品补丁程序 - VMware Customer Connect,下载最新的补丁。如果之前没有注册过账号,下载前可能需要注册账号。注册账号的时候输入中国地址和邮编大概率会报错,可以改成美国的地址和邮编。邮箱填自己的就行

image.png

找个地方上传到ESXi任意的硬盘内

image.png

打开SSH

image.png

登录ssh,执行命令:

esxcli software vib update -d /vmfs/volumes/SSD1/ESXi670-201912001.zip

注意将/vmfs/volumes/SSD1/esxi670-201912001.zip中的SSD1换成你的存储设备名称,esxi670-201912001.zip换成你下载的补丁包名称

执行需要一定的时间,执行完毕后重启。

此外,你还需要确保宿主机bios的VT-d、Above 4G decoding、Memory mapped I/O above 4GB 或 PCI 64-bit resource handing above 4G处于enable状态。

2、ESXi创建虚拟机

Ubuntu尽量选择20.04。我下载的是ubuntu-20.04.6-live-server,内核版本为5.4.0-147-generic

创建虚拟机时这些配置需要改动:

预留全部内存

image.png

添加PCIe显卡设备

image.png

上方选项卡切换到虚拟机选项,引导选项中固件修改为EFI。如果你的独显直通给Windows10/11系统工作正常,而直通给Linux提示找不到设备,检查这里是否选择正确。如果之前是bios且已经安装好系统,则需要将其转成uefi,具体方法详见百度

image.png

选择高级-编辑配置

image.png

添加三个参数:

  1. hypervisor.cpuid.v0值为FALSE

  2. pciPassthru.use64bitMMIO值为TRUE

  3. pciPassthru.64bitMMIOSizeGB值为24(这个数字填写2*GPU显存总量。例如我的3060显存12G,这里填写24即可)

OK,到这里可以保存并开机了,进入Ubuntu安装过程。

3、驱动安装

先执行lspci | grep VGA确保Ubuntu的pci设备中有显卡

image.png

ESXi不支持≥470的驱动,建议安装460和465版本的

465版本驱动下载点:Linux x64 (AMD64/EM64T) Display Driver | 465.24.02 | Linux 64-bit | NVIDIA

460版本驱动下载点:Linux x64 (AMD64/EM64T) Display Driver | 460.91.03 | Linux 64-bit | NVIDIA

下载run文件后su用户运行,一路回车即可

4、安装CUDA、cuDNN、libcudnn

安装前用nvidia-smi命令看看显卡是否正常识别,如果不识别,提示no device were found,可以用dmesg看看报什么错误,可以重启宿主机试试

image.png

如果正常识别,在这里下载CUDA:CUDA Toolkit 12.1 Update 1 Downloads | NVIDIA Developer

我使用的是CUDA11.3。下载run文件安装即可。注意,中间有个选择是否安装驱动的地方:

image.png

千万不要安装,千万不要安装,千万不要安装,否则显卡会不识别!!如果你已经不慎安装了,可以按照上述方法重新安装驱动,重启宿主机后方可。

在这里下载cuDNN:cuDNN Archive | NVIDIA Developer

我使用的是8.8.1.3版本。注意cuDNN和CUDA版本的对应关系,不要下错。下载deb文件后使用dpkg -i安装即可

在这里下载libcudnn(解决libcudnn.so.8找不到的问题):Index of /compute/cuda/repos (nvidia.cn)

我使用的是:https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/libcudnn8_8.2.1.32-1+cuda11.3_amd64.deb

下载后使用dpkg -i安装即可。

转载原创文章请注明,转载自: 斐斐のBlog » ESXi6.7实现直通独显(RTX 3060)给Ubuntu炼丹
  1. wwwh

    主板两张显卡,直通win11可以输出画面,但另一个直通到ubuntu安装好驱动不显示画面,还会把整个主机卡死。这是为啥呀

  2. xssh

    请教一下,esxi也能直出画面到显示器,比如通过把显卡直通到Windows10

    1. kidultff
      @xssh 可以直出画面到显示器