对于一台ESXI上的虚拟机,如果想要直接通过显示器输出、连接USB键盘鼠标或蓝牙使用其它外设,那么可以通过设备直通实现。
显卡直通
显卡直通的配置比较简单,步骤如下:
- 在设备管理里找到显卡,点击【切换为直通】,然后需要重启ESXI主机。
- 在虚拟机配置里添加PCI设备,并选择你要直通的显卡。
- 在虚拟机高级选项中配置参数 hypervisor.cpuid.v0 = FALSE,该参数是为了欺骗虚拟机系统,使其认为不是运行在虚拟机中。
- 启动并进入虚拟机内安装对应的显卡驱动(Windows设备会自动安装对应的驱动)。
完成以上的操作后,就可以直接将显示器的连接线(HDMI或DP)连接到对应的显卡上。
USB设备直通
首先需要通过ssh连接到ESXI主机,执行 lsusb
命令查看USB设备信息,并记录下对应的厂商和产品编号, 例如:1a2c:2d23。
在 /etc/vmware/config
文件中添加要直通的USB设备信息,例如:
1
2
3
usb.quirks.device0 = "0x1a2c:0x2d23 allow"
usb.quirks.device1 = "0x046d:0xc05a allow"
usb.quirks.device2 = "0x0a12:0x0001 allow"
注意需要在lsusb命令获取的厂商和产品编号前加上0x
前缀,多个设备的话 usb.quirks.device0
后面的编号递增就可以了。
以上的设置后,下次若再重新启动ESXI时, ESXI kernel还是会获取设备的控制权,这就需要在ESXI启动引导中禁用ESXI kernel对以上设备的获取控制权。修改 /bootbank/boot.cfg
在启动参数 kernelopt 后面加上以下参数:
1
CONFIG./USB/quirks=0x1a2c:0x2d23::0xffff:UQ_KBD_IGNORE:0x046d:0xc05a::0xffff:UQ_KBD_IGNORE:0x0a12:0x0001::0xffff:UQ_KBD_IGNORE
注意上面参数中的USB设备厂商和产品编号需要替换为自己的,保存后重新启动ESXI主机。
然后在对应虚拟机的高级选项
中添加配置参数
:
1
2
3
4
usb.generic.allowHID = TRUE
usb.quirks.device0 = 0x1a2c:0x2d23 allow
usb.quirks.device1 = 0x046d:0xc05a allow
usb.quirks.device2 = 0x0a12:0x0001 allow
接着配置虚拟机:添加其它设备 -> 选择USB设备
,选择对应的USB设备就可以启动虚拟机了。
完成以上的配置后,就可以直接把显示器的输出给虚拟机使用了,并且可以通过键盘鼠标控制虚拟机,这样虚拟机就和一台真实的机器没什么区别了。
建议可以直接直通一个USB的蓝牙适配器,这样就可以直接通过蓝牙连接多种外设了。