最近在使用电脑的时候需要用到加密锁,就是一个USBKey,但是发现在VMWare虚拟机下,这个USB设备根本不会出现在USB设备列表里,也就无法通过虚拟机进行连接了,导致在虚拟机下面的windows里,根本不会有这个设备,无奈通过bootcamp启动windows系统,是可以识别出这个设备并且可以正常使用的,而且在Mac系统下的系统信息里也能看到这个设备的信息,说明设备没有问题,应该是VMWare的问题。
过程:
在网上找资料,发现有很多说“网银”的USB Key也有类似情况的帖子,但是没有一个是解决了的帖子,尝试了几天都无果。
但是朋友的PD虚拟机却没这个问题,USBKey设备能够正常在虚拟机下识别出,由于用VMWare较早,有感情了,一直吹嘘“最好虚拟机”的我,不甘心就这样放弃VMWare(差点就去装PD了),于是潜下心来找英文资料,结果发现...,这些问题直接就在VMWare的TroubleShooting内躺着,居然没有一个中文的帖子说明这些问题,我这个不知道算不算是第一个了。
结果:
根据VMWare的TroubleShooting的内容,顺利解决这个问题,以下是教程:
第一步,打开VMWare,在最上面菜单栏的地方找到 “窗口” -> “虚拟机资源库”
在列表中找到要解决问题的虚拟机,我直接就是Bootcamp做虚拟机,所以选中Bootcamp,然后右键。
点击“在Finder中显示”,其实这里可以通过按住option按钮,直接出现编辑的功能选项,但是按住option的时候我没法截图了,所以就写个全一点的教程,如果大家按住option了,可以直接进入编辑步骤,找文件的步骤可以省略。
在finder中右键虚拟机文件,选择“显示包内容”。
然后找到vmx文件:
选择用“文本编辑”打开
在文件内增加一行
usb.generic.allowHID = "TRUE"
这个就是编辑过程,注意英文引号,可以直接拷贝我这里写的这行:
改好保存退出,退出VMWare,重启虚拟机,原来没有的USB设备,现在应该出现在VMWare的USB列表中了,选择要连接的设备就可以了。
成功出现USBKey,教程结束
原理及注意:
这一行设置的目的是什么呢,为什么这样做了就能出现USBKey呢,这样做对系统有什么影响呢?我来一一解答下,省得大家不放心。
首先,苹果笔记本的键盘和触摸板,其实也是USB设备,只是它是通过内部线连接的,我们看不到USB接口而已,实际上对于系统来说,都是统一按照USB设备来识别和使用的,它们的类型是HID设备(可以认为是USB设备的一种),HID就是人体学输入设备的英文简写,VMWare的默认设置,是不会把HID设备列在USB设备的列表中的,否则如果用户不小心连接了某个HID设备,如果是键盘或者触摸板,那Mac系统下就用不来这些设备了,只能在虚拟机里面使用,我没试过,不知道电源键还有用不,而且一般情况下,这些设备的信号本来也会通过Mac系统传递给虚拟机,而不需要去独占USB连接,因此出于种种考虑,HID设备是不会出现在VMWare的USB设备列表中的。
不幸的是,我们的这个USBKey,恰恰就被认为是一种HID设备,所以也就不会出现在VMWare的USB设备列表中,导致虚拟机无法选择连接该设备。
上面那行代码的意思就是让VMWare显示出所有的USB设备,不要屏蔽HID设备,所以USBKey就出现了。但是,看下面的图:
旁边就是我刚才说的苹果的内置键盘/触摸板设备,如果选择连接了这个,那么键盘和触摸板在Mac下就无效了,不过不用担心,虚拟机关机后,这些设备都会释放给Mac,只不过在关机前,是无法切换到Mac使用这些设备了,而且在选择连接HID设备时,VMWare都会提示警告,让你确定(虽然这个警告能取消,但是不建议取消),所以一般不可能会弄错连接哪个设备的。