接口降级识别加密狗
2016-11-26
引言:单位更换PC,加密狗插入到新PC的USB接口上后无法识别。经过一番检查和测试,发现是因为这个接口是USB 3.0的,接KVM和U盘没问题,但不兼容加密狗。通过修改xHCI PCI Configuration Space,将USB接口从3.0转换为2.0模式,实现了在3.0接口上识别该加密狗。
故障现象
单位有一台PC,安 装了USB Over Network服务器端,用于共享USB设备。该PC共有6个USB接口,其中5个口连接加密狗,剩下的一个口用于连接KVM。因其性能不能满足需要,所以找了一台新的PC机(也是6个USB接口)将其替换。新PC上安装好Windows 2008系统和USB Over Network服务器端后,从旧PC上逐一拔下USB加密狗,插入到新PC的USB接口上并安装驱动,结果第五个加密狗插入后无法识别。
故障原因
经过一番检查和测试,发现原来新PC最后两个USB接口是USB 3.0的,接KVM和U盘没问题,但不兼容加密狗。
解决方案
由于该PC已无可用USB接口,若要连接加密狗,有两个办法,一是接一个USB Hub到2.0接口上,通常可扩展出四个USB接口。二是想办法将USB接口从3.0转换为2.0,也就是让操作系统把3.0接口识别成2.0。
解决过程
经测试,接USB Hub的办法可行,只是有点儿影响美观。
如何将USB接口识别成2.0呢?本人在网上找了一下,有修改BIOS的,也有修改xHCI PCI Configuration Space的。修改BIOS,一般是开机进如BIOS后,在Config-USB菜单下,将USB 3.0 Mode修改为Disabled。只可惜在这台PC的BIOS里没找到相关的设置。于是我们采用另一种办法——修改xHCI PCI Configuration Space。关于具体参数值的含义可参考Intel 7 Series/C216 Chipset Family Platform Controller Hub数据手册(注:下文简称Intel手册)。
此外,修改配置还需要用到一款软件——PCI Utilities。软件下载并解压到C盘后,以管理员身份打开命令行窗口, 将当前目录切换到PCI Utilities文件夹。
下面会用到两个程序文件 lspci和 setpci。lspci用于显示PCI总线和设备的信息,setpci用于修改PCI配置。……
