前置条件
- CPU和主板需要支持 VT-x 和 VT-D 功能
- 在 BIOS 上关掉集显。集显无法直通给虚拟机,而且也不可以宿主机使用集显,虚拟机使用独显。所以需要禁用
步骤
- 安装 ESXi
- 进入 ESXi 的 Host Web Client
- 依次进入 Host -> Manage -> Hardware -> PCI Devices
- 选中你需要直通的 PCI 设备。在我的机器上是
NVIDIA Corporation GM206 [GeForce GTX 960]
,然后点击Toggle passthrough
- 如果在列表里面没有一个 PCI 可以选择的话,那么表示你的CPU或者主板不支持直通,可以尝试在 BIOS 里面开启 VT-D
- 重启 ESXi
- 创建虚拟机
- 跟以往一样配置虚拟机
- 最后在自定义的界面里面添加其他设备,然后选择 PCI ,然后选择之前选的显卡
- 保存,开机
- 进入虚拟机,然后安装 VMtools,重启
- 进入虚拟机,下载安装显卡驱动,重启
- 进入虚拟机,此时有两种情况
- 一种是虚拟机开机完成之后界面直接显示在直连的显示器上。此时就算是成功了。
- 一种是依旧不能在显示器上显示虚拟机界面。此时在虚拟机的设备管理器上可以看到显卡,但是处于被禁用状态,错误码是 43。Nvidia 的显卡大多都会出现这个问题。这时候进入下一步
- 关闭虚拟机,然后编辑虚拟机,依次选择: VM Options -> Advanced ->Edit Configuration -> Add parameter
- 在新增的记录里面填入:
hypervisor.cpuid.v0 = FALSE
- 保存,开启虚拟机。如无意外的话即可看到虚拟机成功在显示器上显示内容了。
- 第10步也可以通过手动编辑虚拟机的 vmx 文件,添加
hypervisor.cpuid.v0 = FALSE
这一行配置信息来实现。
Tips
由于直通显卡之后,宿主机就没有显卡可以使用了。所以你可以发现,在宿主机刚开机的时候,显示器是显示 ESXi 的 Console 的。但是如果你开启了直通显卡的虚拟机之后,显示器就黑屏了,ESXi 的 Console 就没有地方显示了。接着显示器就会直接显示虚拟机的界面。所以,ESXi 的配置只能通过 Web Client 或者 Desktop client 来管理,而不能通过 Console 来管理。
Reference
- http://blog.csdn.net/zhanxix/article/details/71516316
- https://www.reddit.com/r/homelab/comments/441w1z/help_needed_with_esxi_60_gtx_960_passthrough_and/#bottom-comments