前言
闲着没事,今天看到了那个经典图片放大工具——Waifu2x,想起来这玩意好像可以自己部署到本地,于是我就看了一下,发现需要N卡的CUDA技术支持,然后我想着是在服务器上部署,于是我就顶着我服务器破硬盘掉盘的风险(最后还是掉盘了,焯),再试了一次显卡直通。为啥要说再?其实之前有试过,但是当时没成功,而且也掉盘,搞得我很难受,就放弃了,主要是老报错43,后来查的时候说是显卡不支持巴拉巴拉的,就放弃了。今天尝试了一下,发现其实是支持的,当然也成功了(不然哪有这文章),主要是之前有一个步骤没做好,所以一直报错。那么现在就开始写下操作记录。
正文
准备工具
1.ESXi服务器(本人测试环境是ESXi6.7)
2.显卡一张(A卡和N卡有点小差别,后面说一下,这里用的是GT730)
操作步骤
1.首先把显卡插上(这不是废话么),然后在ESXi的web配置界面获取需要用的东西,并启用直通。
具体操作:管理-硬件-PCI设备,找到你要直通的显卡。点上前面的勾,然后点击启用直通。
显卡一般都会有个配套的音频处理的设备,一般点击其中一个,两个都会自动勾选上。这里需要获取显卡设备部分的一些信息,由于强制自动勾选两个的原因,需要使用搜索功能,不然当两个都勾选上的时候就会无法看到具体信息
例如我这里是GT730,下面是我设备信息:
| 名称 | 参数 | 名称 | 参数 |
|---|---|---|---|
| 显卡名称 | GF108 [GeForce GT 730] | ||
| ID | 0000:04:00.0 | Vendor Name | NVIDIA Corporation |
| Device ID | 0xf02 | Class ID | 0x300 |
| Vendor ID | 0x10de | Subdevice ID | 0x0 |
| Function | 0x0 | Subvendor ID | 0x0 |
| Bus | 0x4 | Slot | 0x0 |
这里需要记住两个加粗的信息:Device ID和Vendor ID,后面会有用。
此处完成后先重启一下服务器。
2.使用ssh连接到ESXi命令行后台,修改相关配置信息。
命令行输入:/etc/vmware/passthru.map,然后拉到后面,找到#Nvidia,如果没有就手动添加。
一般情况下会显示以下内容:
# NVIDIA
10de ffff bridge false
这里解释一下每4个部分:10de:是设备的供应商IDffff:是设备的硬件IDbridge:是连接模式,模式有三个:link、bridge、d3d0false:(不是很清楚,这里先保留)
然后回去看下第一步记录的Vendor ID和Device ID,Vendor ID对应的是设备的供应商ID,Device ID对应的是设备的硬件ID,那么就可以直接插入内容,以我上面的GT730为例:
# NVIDIA
10de ffff bridge false
10de 0f02 link false
10de 0f02 bridge false
10de 0f02 d3d0 false
有三点需要注意:
首先,第一步获取的ID,0x是不用写上去的,只需要写后面部分;
其次,有些Device ID或者Vendor ID只有三位数,最好直接再前面补一个0,例如我这里本来是f02的,我在前面补一个0组成0f02作为参数填写进去;
最后,就是连接模式,这个连接模式三个的区别是什么我不清楚,不过网上有人说写link,也有人说只写d3d0,具体我也不知道,我个人只写了iink和d3d0,也测试可用,如果不行最好都加上看看。
AMD的区别主要是在这一步上面,就是配置这个信息会有点出入,其他操作都是一样的。
完成这里之后再重启一次。
3.虚拟机添加显卡设备。
虚拟机关机状态下,打开编辑模式,选择增加其他设备,选择新PCI设备,然后找到你要直通的显卡设备,选择保存。
然后再进入编辑模式的VM选项,找到高级,找到配置参数,编辑配置,添加以下参数:
| Key键 | Value值 |
|---|---|
| hypervisor.cpuid.v0 | FALSE |
最后保存,启动虚拟机,安装相关驱动即可
总结
百度下来有很多问题,普遍教程都是抄自CSDN这坑货,都缺少了中间第二步的内容,所以每次弄完都是43错误码,然后第二步的内容很多都是省略,只告诉你在这个文件里面输入这些内容,没有具体说清楚这些ID怎么来,这次直接写一个整体的,方便以后自己查阅。现在距离我以后想搞虚拟服务器在家做网吧更进一步了。




esxi7.0有试过吗?能成功吗?
By jjww at June 21st, 2022 at 08:17 am.
@jjww
7.0没试过,因为我之前设备安装不了7.0
By Rickdroid at August 6th, 2022 at 10:25 am.