APP下载

接口降级识别加密狗

2016-11-26

网络安全和信息化 2016年8期
关键词:服务器端U盘手册

引言:单位更换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配置。

第一步,先用lspci查找USB 3.0接口信息。Chipset Family USB xHCI Host Controller[8086:1e31] (rev 04)

00:14.0表示总线和插槽,8086:1e31为厂商标识和设备标识,不同的设备可能标识也不同。

为更多地了解setpci命令的修改结果,也为了以后可以恢复设置,修改前先用lspci命令将USB 3.0控制器当前情况保存下来(如图 1)。注意 d0行的值,下面的修改影响的就是这一行。

第二步,关闭USB 3.0接口的SuperSpeed能力。

(注 :Intel手 册17.1.35部分这样描述:“When set to 0,the port's SuperSpeed capability is not visible to the xHC.”)

查 看Configuration Space的修改情况,如图2所示。

第三步,实现将连接到USB 3.0接口上的设备交由EHCI1主控器处理。

图1 保存USB 3.0控制器当前情况

图2 查看Configuration Space的修改情况

图3 再次修改Configuration Space的情况

(注:Intel手 册 17.1.33部分这样描述:“When set to 0, this bit routes all the corresponding USB 2.0 port pins to the EHCI controller (D29:F0) and RMH #1. The USB 2.0 port is masked from the xHC and the USB 2.0 port's OC pin is routed to the EHCI controller(D29:F0).”)

再次查看Configuration Space的修改情况,如图3所示。修改到此结束。

将加密狗接到USB 3.0接口,系统顺利地识别出来。

恢复办法

不过,新的问题又出现了。系统重启后,上面的设置会失效。解决办法是,写一个批处理程序usb3to2.bat,内容如下:

然后添加计划任务,让系统启动时执行usb3to2.bat即可。

关于USB Over Network

这是一个功能强大可靠、使用方便的USB设备共享解决方案,可以允许分享和获取本地或者网上的USB设备。可以通过网络远程访问指定的USB接口的软件。分为USB Over Network Client和USB Over Network Server。Server相当于服务器端安装在提供USB内容的电脑上,Client相当于客户端安装在其他电脑上用来访问Server端的USB内容。在Client上输入Server端电脑的IP地址就可以访问。

Intel 7 Series/C216 Chipset Family Platform Controller Hub数据手册下载地址:

猜你喜欢

服务器端U盘手册
Linux环境下基于Socket的数据传输软件设计
采用U盘文件冗余方案实现TSP系统的可靠装载
自动辨认插口方向的U盘
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
U盘“闹肚子”
School Admission择校
兔兔自杀手册
School Admission择校