使用PCI直通解决ESXi硬件故障

我有一个带有Atheros AR5008 PCI Express卡(D-LINK DWA-556,设备= 0024&Vendor = 168C)的Supermicro X9SCM板。 该卡可成功标记为ESXi中的PCI直通(我试过版本4.1和5.0),但是每次启动一个与Wifi卡关联的虚拟机 – 整个主机都冻结并需要硬重置。

这张卡有一个很好的机会,因为某种原因不兼容 – 虽然至less有一个报告,我可以find它“工作”,或者至less是客人可以启动。 我真的很想明白为什么它失败了。 我试图挖掘一些日志文件和其他资源,看看我是否可以收集任何有关如何最好地排除故障的知识,尽pipe我远离VMWare工具的专家。

这是我迄今为止所看到的:

  • BIOS,尝试最新版本(1.1a)和一个旧版本(1.0c)。
  • BIOS发生冻结事件时,会logging“PCI ERR”或“PCI ERR – Asserted”。
  • 我从ESXi主机上的/ var / log中获取了各种日志,但是我还没有真正能够从中看到任何有用的东西。 也许我不知道在哪里看。
  • 我尝试将PCI卡添加到passthru.map文件,以查看是否可以向ESXi提示它应该如何运行。 (注:我还没有尝试复位方法/ fpt可共享的所有组合)
  • 我已经读过,可能与“有源”PCI Express卡有所不同。 我相信这可能是指活跃国家电力pipe理,虽然我不知道如何甚至检查这一点。
  • 我已经联系Supermicro的支持,看看是否有一个已知的BIOS /硬件问题,虽然我还没有听到。 我也尝试着登陆VMWare社区,并在论坛上发帖,尽pipe由于一些奇怪的原因,我还没有能够激活我的账户。

同样,我真正的问题是:如何理解为什么这个设备导致虚拟机pipe理程序在分配给guest虚拟机时被locking?

这可能不是pipe理程序locking,而是某种硬件(如PCIe交换机)。 如果没有任何一种PCIedebugging硬件和一大堆PCIe专有知识,您将很难进行debugging,因此可能不值得追求。 一般来说,PCI传递不是你应该使用的,没有太多的考虑。

如果您需要虚拟机上的无线连接接口,请考虑使用将无线networking连接到有线networking的外部设备(路由器/网桥),并使用连接到此networking的虚拟机中的虚拟接口。 另一种select是将USB插入式接口与USBnetworkingredirect器一起使用。

我很好奇你的计划在这里。 您正试图将无线网卡的ESXi PCI直通运行到来宾虚拟机? 什么是客户操作系统? 这个设置的目的是什么?

并非所有PCIe设备都与VMDirectPath兼容。 这可能只是其中之一。

意识到这个问题可能过时了,但是当我遇到这个问题的时候,仍然是最好的谷歌结果。 在这里find一个解决scheme,所以我想分享。

我的环境:

  • VMware ESXi 6.5
  • SuperMicro SYS-E300-8D
  • OPNsense(基于FreeBSD)的客人
  • 高通Atheros AR9462

假设:

  • 您已经物理安装了该卡。
  • 您已经在ESXi中启用它,并重新启动
  • 您已将此PCI设备添加到VM

回答:

在/etc/vmware/passthru.map中设置正确的传递参数,像这样添加一个条目。

# passthrough attributes for devices # file format: vendor-id device-id resetMethod fptShareable # vendor/device id: xxxx (in hex) (ffff can be used for wildchar match) # reset methods: flr, d3d0, link, bridge, default # fptShareable: true/default, false # Atheros Wireless 168c 0034 d3d0 false 

然后重新启动主机。

注1:这里的第一个和第二个字段是供应商和设备特定的,但我从ESXi Web界面下的主机>pipe理>硬件> PCI设备

注2:passthru.map中还有其他有用的东西,所以不要只是覆盖,追加。

我也定了

 pciPassthru0.msiEnabled=false 

在客人的.vmx文件,但在获得passthru.map之前,所以我不积极,这是必要的。

我还没有完成configuration卡或使其有用,但是当VM启动并且guest虚拟机检测到它时,我的主机仍然保持运行状态。