本文介绍了桌面云涉及主要外设的配置方法,以及遇到兼容性调试时的解决思路。以方便服务,一线的人员更快的适配完成; 1 桌面云外设概述1.1 外设基本类型从接口类型分,主要包括以下三种 USB口、串口 、并口 从功能类型分,主要包括 U盘,移动硬盘,摄像头,智能卡读卡器,Ukey,加密狗,打印机,扫描仪,高拍仪,USB耳机等设备 1.2 桌面云外设重定向技术外设重定向是指将外设连接到TC上,当TC登陆虚拟机时将外设映射到虚拟机中。 按接口类型有以下三种重定向方式 USB重定向(适用于所有USB口的设备) 串口重定向(适用于串口设备) 并口重定向(适用于并口设备) USB设备按照功能类型又分为以下几种重定向方式 PC/SC方式 (适用于部分智能卡读卡器,key,u盾等安全类设备) TWAIN重定向(适用于部分图像设备,如扫描仪,高拍仪,数码相机) Webcam重定向(适用于摄像头设备) 驱动器重定向(适用于存储类设备) 1)所有USB口设备理论上都支持USB重定向,如果USB重定向效果不好,可尝试使用下面表格中对应的另一种技术。 2)串、并口设备可以使用串、并口重定向,如果无法使用,可尝试使用USB串口转接线、USB并口转接线。 以下为不同功能类型设备所对应的重定向技术。
2 外设调试三板斧根据经验,此方法可解决70%左右的一线测试。 2.1 外设整体调试方法1) 先在物理机上将外设调试成功确保外设能够使用; 2) 尝试更换外设,tc,虚拟机,可能其中一个出现异常; 3) 查看ddc的USB设备策略是否打开,可通过一个U盘测试,U盘为最简单的外设, 基本都可以映射成功(比较老的或者一些山寨贴牌的U盘除外); 4) 保证TC能够识别设备,即在XPE TC建议安装设备驱动。Linux TC可不考虑, 接下来要看USB重定向是否开启,VM中是否正确安装了驱动。然后再看虚拟机设备管理器中能否看到该设备。接下来按策略、配置、换驱三部曲来尝试; 5) liunx tc的控制中心->ICA设备管理中将串口,usb口,并口映打勾; 6) Liunx tc的控制中心->ICA全局设置中相关项打勾 注:liunx tc个版本控制中心的外设设置地方各有差异,上图只供参考 7) 若在使用Linux TC连接虚拟机出现外设不能识别,可尝试使用XPE TC 或者PC连 接虚拟机,尝试可行性。如果可行,证明Linux TC本身不能支持此设备,或不能完美兼容此设备; 8) 若win7虚拟机无法使用该设备,而xp可以使用,说明设备驱动无法支持win7系统; 9) 若使用微软自带的设备驱动时,如果无法识别。可尝试下载设备厂商官网提供的驱 动; 10) 确定是设备驱动时,可尝试新旧多个版本; 11) 遇到设备使用过程中的错误时,请尝试在物理机上使用该设备是否存在同样的错误; 12) 使用xptc时有些外设需要手动连接,即需要在虚拟机顶端工具栏的USB中选择外 设,才能在虚拟机中映射成功(由于许多国内外很多外设做的不标准,桌面云重定向自动映射功能自动映射过去,需要每次登陆虚拟机在工具栏上手动映射),可以尝试修改xpe tc的注册表HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\GenericUSB\Devices下所有键值为1; 13) 如果想要允许或禁用某个设备,可使用allow or deny命令,在USB重定向相关项 中进行修改。相关项包括Linux TC中的USB.conf 、XPE TC中的devicerUles注册表、DDC上的usb配置策略; 14) 按照上述方法测试还是无法使用时,尝试更新虚拟机的VDA到最新版本,更新xpe tc的receiver到最新版本(citrx官网下载),新版本receiver需要将首选项中的”为我简化设备连接”去勾(liunx tc无法自行更新receiver版本); 最新XPE版本receiver下载路径 http://receiver./ 15) R2C01和后续版本上在DDC上增加了TWAIN策略,默认为打开,目的使扫描仪、 数码相机、数字音频等外设能够更好在虚拟机使用,但也可以可能对这些外设的使用产生影响,如果效果不好可以关闭此策略尝试; 16) 打印机外设相对复杂,即使设备映射成功,可能打印也有问题,这块已不是虚拟 机的问题,一般都是打印机配置不对,先和物理机对比差别,同时可以在网上查下相关问题; 17) 串口设备如果无法使用,可先通过串口调试工具检测串口是否映射成功,以检查是 否串口映射没有配对; 2.2 外设通用案例2.2.1 配置修改方法如果设备在USB重定向方式下,无法在虚拟机中发现该设备,需做以下步骤 1) 在VM端安装驱动,若OK,结束;否则转2) 2) 在XPE TC安装驱动,若OK,结束;Linux TC不用操作。否则转3) 3) 获取设备的vid,pid,获取方法请参考2.2.2节 4) 在TC端修改注册表。注册表位置 双击DeviceRules这个值,编辑,在最上面添加命令 allow:vid=? Pid=? “?”处应填写实际设备的ID值。若OK,结束,否则,转6) 5) Linux TC修改USB.conf文件 找到配套USB.conf文件,进行如下修改 打开USB.conf文件,在文件最上面添加 allow:vid=? pid=? allow: class=? 保存。 通过配套证书打包工具将修改后的USB.conf打包成补丁。通过TCM下发到TC TC端USB.conf路径为 /usr/lib/ICAClient/。 若OK,结束,否则,转6) 6) 在DDC USB配置中添加 allow:vid=? pid=? 2.2.2 设备信息标识查看在物理机上插上USB设备,在设备管理器的对应设备(以SIM卡写卡器为例)驱动程序属性中可以看到设备信息标识如下:(设备商ID, 产品ID和版本ID,以及设备类别)。 下图中得出,该设备 vid=096e pid=0005 class=ff, subclass=00 prot=00 这些都是在USB重定向配置中经常用到的参数。 USB定义了各种class值,它被用来识别设备的功能,根据这些功能,以加载设备驱动:
3 摄像头3.1 USB重定向方式摄像头只是使用拍照,推荐USB重定向 3.2 webcam方式。1) ddc的媒体重定向、麦克风重定向打开; 2) Liunx tc的控制中心->ICA全局设置中将所有项打勾 3) 虚拟机的VDA为5.5及以上版本 4) XPE TC端使用13.0 citrix receiver及以上版本; 5) 摄像头不能在虚拟机的设备管理器中看到,如果在虚拟机中可以看到,xpe tc需要手 工到desktop viewer->usb设备中将摄像头去勾,liunx tc需要在usb.conf文件中禁止将摄像头class id; 摄像头使用视频通话,推荐使用webcam方式 3.3 Amcap工具调试摄像头6) Amcap工具为一款摄像头软件可以检测摄像头是支持usb重定向还是web camera方 式 注:许多摄像头无法支持webcam方式,只能使用usb重定向 4 扫描仪、高拍仪类4.1 usb重定向方式大部分扫描仪,高拍仪可支持USB重定向方式,使用方法和摄像头的usb重定向方法一样。 4.2 TWAIN重定向若TC为XPE TC,可使用TWAIN重定向,TWAIN重定向默认开启,使用该方式时,需要在XPE TC安装扫描仪驱动(虚拟机端可以不用安装驱动); 1) 验证设备是否支持TWAIN技术(绝大部分能够支持,这个在设备的驱动包readme 中可以找到相关说明); 2) 确认客户端(TC/SC端)的设备管理器(device manager)是否可以看到扫描设备; 3) 确认虚拟机的VDA为5.5及以上版本(确认在安装文件中可以找到twnhook.dll和 twnmUx.dll两个链接库); 4) 确认TC端使用13.0 citrix receiver及以上版本; 5) 默认策略下虚拟机中是不能在设备管理器(device manager)中看到扫描仪的(默认情况 下扫描仪,高拍仪的USB重定向是关闭的),如果这时候你仍可以看到,需要手工到desktop viewer->usb设备中手动将Unselect扫描仪去勾,(虚拟机的设备管理中不能看到此设备,如果看到了,就变成USB重定向方式); 6) 虚拟机中将扫描仪,高拍仪去勾后,确认这个时候在SC/TC客户端的设备管理中能 够看到相应扫描仪、高拍仪; 7) 在虚拟机中安装irfanview的方法可以验证是否支持TWAIN方式; 备注irfanview使用方法 1) 下载路径http://www./; 2) 安装并打开软件后,打开File菜单; 3) 选择”select the TWAIN soUrce”选项; 4) 可以看到一个TWAIN兼容设备的列表,选择任意一个; 5) 选择”AcqUire/baTCh scanning”选项; 6) 可以进入扫描图像的界面; 注:扫描仪推荐使用USB重定向,高拍仪推荐使用TWAIN重定向 5 USB耳机、音箱USB耳机、音箱等音频类设备推荐使用音频重定向,而不是USB重定向,音频重定向下音质会好很多。 1) 在DDC配置上做如下配置,重新连接虚拟机; 2) 在虚拟机的控制面板->声音中选择citrix HDX Audio(可能会存在别的声音驱动); 3) 如果声音中出现安装的音频外设型号的驱动,可以根据实际情况看哪种效果更好,可选择哪个; 6 打印机云平台接入的打印机主要分为三类:并口打印机、USB打印机、串口打印机。 USB打印机直接使用USB重定向。 串、并口打印机,可以使用串、并口直连方式,或者USB串口转接线的方式。 如果TC有串并口,建议优先选择串并口直连打印机的方式 如果TC没有串并口,使用USB转接线连接打印机 6.1 USB打印机1) Liunxtc中控制中心->设备管理中usb打印机打勾 2) 映射方式和其他usb外设一样; 3) 打印机在虚拟机的设备管理器中能够识别; 4) 安装驱动、添加打印机的步骤和物理机上操作一样(可先在物理机上测试通过); 6.2 并口打印机6.2.1 并口打印机安装1) 在虚拟机里安装需要接入的打印机型号对应的驱动程序,如下图所示: 2) 在TC的操作界面上指定虚拟机所需要的打印机驱动类型。Tc->控制中心->打印机管理->添加打印机如下图所示: 3) 设置好后,登录虚拟机桌面可以发现“打印机和传真”里有已经映射好的打印机图标。 注意:“服务器驱动”栏中的名称与虚拟机中驱动程序的名称需要保持一致。 6.2.2 并口打印机调试6.2.2.1 打印失败1) 首先考虑端口是否没有选对。右键点击打印机图标,选择“属性->端口” (win7为右键点击打印机图标,选择“打印机属性-端口),查看并口打印机的端口设置。正常的情况下是这样,CLIENT端口只有1个; 2) 下图可以看出,CLIENT端口有2个。2个端口的出现是由于人为添加过打印机的图标,自行设置了一个端口。这样很容易导致端口混乱,打印机映射失败; 3) 将这个图标删除,注销虚拟桌面。在TC上将打印机的驱动重新指定一下。然后再登录虚拟机,查看打印机端口,检查打印机驱动,打印测试页以确认打印机恢复正常; 6.2.2.2 打印乱码1) 确认虚拟机是否已经安装并口打印机的驱动程序,虚拟机已经添加了部分打印机的驱动,可以通过如下操作查看; 2) 开始->打印机和传真->空白处右键->服务器属性->驱动程序(win7开始->设备和打印机->打印机服务器属性->驱动程序),如下图所示: 3) 在TC的打印管理中添加并口,串口打印机,开始->控制中心->打印管理->添加,如下图所示: 注意:TC中的打印机设置的服务器驱动一定要虚拟机中安装的驱动程序名称一致,否则会导致打印机的驱动映射出错,出现打印机打印乱码的问题 4) 重新登录,检查是否映射出打印机,打印机端口和驱动是否正确,选中打印机,右键属性->端口,如下图: 正确的端口应该是:CLIENT:0:xxx,xxx是TC中添加的打印机名称 5) 选择高级标签栏,查看驱动程序,如下图: 6) 配置正确仍打印乱码 or 配置正确却不能识别并口打印机尝试断开TC与VM连接,重新启动TC; 6.3 串口打印机6.3.1 串口打印机安装1) 登录DDC,设置DDC允许串口映射策略; 2) 登录WI,使用调试账号登录相关虚拟机; 3) 输入用户名和密码,登录虚拟机; 4) 在Linux/XPE TC终端上,不用进行安装软件和配置; 5) 在虚拟机里: C00环境,需要先在cmd中执行以下命令, net Use com1 \\client\com1 (R2C01开始都是自动映射,不需输入此命令) C01环境,自动连接客户端串口设备,不需要执行上面命令 6) 在虚拟机上安装串口打印机驱动程序; 7) Tc端配置和并口打印机的配置一样; 8) 打开串口打印机业务系统,调试串口打印功能; 6.3.2 串口转USB安装方式1) DDC上将USB映射策略开启; 2) 在Linux/XPE TC的USB接口接入USB转串口连接线; 3) USB转串口连接线接入串口打印机; 4) 在TC和虚拟机里安装USB转串口线的驱动程序(如果系统能够自动识别此串口线,可以不需要安装驱动,Linux TC可不安装) 5) 上层业务应用通过驱动映射的串口进行串口打印机输出打印 6.3.3 串口打印机调试6.3.3.1 TC 重启后,串口打印机无法工作可能原因: TC和VM 之间的com映射在TC重启后丢失,通过net use命令可以查看。 解决方法: 在虚拟机里使用命令net Use com1 \\client\com1 重建建立连接。 6.3.3.2 串口打印机工作不稳定可能原因: 串口设备插上后不会自动的发现,需要上层程序主动的检测,所以才需要每次连接到虚拟机桌面时都是用net Use命令进行设备映射,而且串口设备的使用经常的遇到不稳定的情况,相比较USB接口而言,很多机器已经不提供串口物理接口,所以业界提供了USB转串口线的方案:只需要使用一条USB转串口线,即可像使用USB设备一样使用这个COM口设备。在虚拟机中可以映射一个虚拟串口提供给上层应用进行串口打印输出。 解决方法: 在DDC上将USB映射打开,在TC的USB接口接入USB转串口线,该转接线的另外一头连接串口打印机,在TC和虚拟机里安装USB转串口线的驱动程序,如果系统能够自动识别此串口线,可以不需要安装驱动,上层应用通过驱动映射的串口进行输出打印。 7 智能卡读卡器桌面云安全方案中支持的Ukey使用PC/SC方式 其他型号Ukey、读卡器等,使用USB重定向方式 7.1 智能卡读卡器安装7.1.1 SIM卡读卡器1) 登录DDC,开启USB口映射策略; 2) 登录WI,使用用户账号登录虚拟机; 3) 在虚拟机中安装SIM读卡器驱动程序; 4) 在虚拟机中安装读卡器应用软件; 5) 虚拟机:打开虚拟机注册表编辑器: 6) [HK_Local_Mchine\Software\Citrix\CtxHook\AppInit_Dlls\SmarTCard Hook],双击 FilePathName,将键值中的“ScardHook.dll”修改为“ScardHook.dll.old”; 7) [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\PortICA\GenericUSB],双击 DeviceRUles,修改DeviceRUles键值中“DENY: class=0b # SmarTCard”改成“# DENY: class=0b # SmarTCard” 8) Linux TC:打开指导书第14章中的USB.conf文件,将“DENY: class=0b # SmarTCard” 行注释掉,修改为“# DENY: class=0b # SmarTCard”,使用配套证书打包工具将USB.conf打包成ICA补丁,USB.conf路径为/Usr/lib/ICAClient/,通过TCM下发到TC。 9) XPE TC:在XPE TC侧打开注册表编辑器: [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\GenericUSB],修改DeviceRUles键值中“DENY: class=0b # SmarTCard”改成“# DENY: class=0b # SmarTCard” 10) PC:在PC侧打开注册表编辑器: [HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\GenericUSB],修改DeviceRUles键值中“DENY: class=0b # SmarTCard”改成“# DENY: class=0b # SmarTCard” 11) 在Linux TC/XPE TC/PC侧插入读卡器,在虚拟机的设备管理器界面能够正常识别 读卡器设备接入; 12) 打开读卡器应用软件,读取SIM卡信息; 13) 打开运营商综合业务系统,进行读写卡相关操作; 7.1.2 社保卡/身份证读卡器1) 登录DDC,开启USB口映射策略; 2) 登录WI,使用用户账号登录虚拟机; 3) 在Linux/XPE TC侧不需要安装软件和配置; 4) 在虚拟机中安装社保卡/身份证读卡器驱动程序; 5) 在虚拟机中安装社保卡/身份证读卡器应用系统软件; 6) 在Linux/XPE TC侧接入社保卡/身份证读卡器设备; 7) 打开社保卡/身份证读卡器应用系统软件,将社保卡/二代身份证放置后,通过系统应 用软件进行读卡操作; 8) 如果还是无法使用可参考SIM卡读卡器修改注册表; 7.1.3 USB Key1) 登录WI,使用用户账号登录虚拟机; 2) 在虚拟机中安装USB Key驱动程序; 3) 在虚拟机中安装USB Key应用软件; 4) 打开虚拟机注册表编辑器: 5) HK_Local_Mchine-Software-Citrix-CtxHook-AppInit_Dlls-SmarTCard Hook-FilePathname,双击FilePathname,将键值中的ScardHook.dll改名,例如修改为ScardHook.dll.old 6) 在Linux/XPE TC侧接入USB Key设备; 7) 在虚拟机里启动USB Key应用软件,读取USB Key的密钥信息; 8) 启动运营商综合业务系统,进行USB Key相关鉴权操作; 8 扫描枪8.1 扫描枪安装PS/2扫描枪: 1) 登录WI,使用用户账号登录虚拟机; 2) 在TC侧和虚拟机侧,均不用进行设置和安装,直接将扫描枪插上TC终端即可; 3) 在虚拟机里建立并打开一个记事本,使用扫描枪扫描相关条码,扫描的信息会正确显示到记事本上; USB扫描枪: 1) 登录DDC,开启USB口映射策略; 2) 登录WI,使用用户账号登录虚拟机; 3) 在虚拟机侧,安装USB扫描枪驱动程序; 4) 将扫描枪插入TC终端USB接口; 5) 在虚拟机里建立并打开一个记事本,使用扫描枪扫描相关条码,扫描的信息会正确显示到记事本上; 9 存储设备存储类设备有两种使用方式,一种为USB重定向,一种为驱动器重定向。都可在指导书第13章DDC配置中看到。 使用驱动器重定向时,可将客户端驱动器重定向、客户端可移动驱动器重定向全部允许。 此类设备推荐使用驱动器重定向,拷贝速度会比USB重定向方式下略快。 9.1 U盘安装1) 登录WI,使用用户账号登录虚拟机; 2) LinuxTC->控制中心->设备管理中选中u盘加载 3) Linux自由版TC需要在“ICA全局设置”中USB磁盘映射打勾,XPE TC上无需进行设置; 4) 登录DDC,开启USB口映射策略或者驱动器重定向策略; 5) 将U盘插上TC终端的USB接口,在虚拟机中看到对应的驱动盘符出现即可; 6) 在虚拟机里打开U盘的文件夹目录,进行基本文件读写操作; 9.1.1 U盘拷贝速度慢桌面云架构下,U盘的数据流向为U盘-》TC-》网络-》VM,比在物理机上使用时多走了几个环节,尤其是网络,导致在拷贝数据时出现无法达到物理机水平的情况。 在桌面云场景下,U盘的拷贝速度平均为4M左右,达到桌面云业界水平,如果无法达到可以升级TC端receiver到最新版本。 9.1.2 禁用存储类设备10 触摸屏10.1 触摸屏安装1) 登录DDC,开启USB口映射策略; 2) 登录WI,使用用户账号登录虚拟机; 3) 在虚拟机侧,安装USB接口的触摸屏驱动程序; 4) 在虚拟机侧,安装触摸屏调试应用软件,对触摸屏屏幕进行校准调试; 5) 校准调试成功后,在触摸屏上对虚拟机界面进行操作; 10.2 双屏场景点击触摸屏,点击事件在其他屏响应初始安装触摸屏驱动后,默认使用的是显示设备0。双屏场景下,触摸屏一般接入的是显示设备2。 在虚拟机【开始】->【控制面板】->【触摸屏软件】 -> 【校正】,使用校正程序的页面切换功能,将触摸屏切换到外屏显示,进行校正。 11 手写板11.1 手写笔/板安装1) 登录DDC,开启USB口映射策略; 2) 登录WI,使用用户账号登录虚拟机; 3) 在虚拟机侧,安装USB接口的手写笔/板驱动程序; 4) 在虚拟机里建立并打开一个记事本,使用手写笔/板输入,输入的信息会正确显示到记事本上; 11.2 手写板调试11.2.1 虚拟机无法识别手写笔设备1) 由于手写笔通过USB接入Linux TC,Linux TC将USB接入的设备都以默认驱动方 式识别设备,怀疑Linux TC将手写笔识别成了鼠标键盘等设备而无法驱动; 2) USB.conf文件中可以看到有如下配置: DENY: class=03 subclass=01 prot=01 # HID Boot keyboards DENY: class=03 subclass=01 prot=02 # HID Boot mice 3) 从上面的配置可以看出,TC通过设备class、subclass、prot识别到鼠标和键盘设备, 但无需映射到虚拟机,虚拟机也不再需要安装鼠标和键盘的驱动; 4) 将手写笔接入物理机,查看参数发现class、subclass、prot和鼠标都相同,可以断定 TC将手写板DENY(虚拟机中也一样),导致该设备无法映射到虚拟机; 5) 根据此现象, 可以按照如下修改(tc,虚拟机中都需要修改); #DENY: class=03 subclass=01 prot=01 # HID Boot keyboards #DENY: class=03 subclass=01 prot=02 # HID Boot mice 6) 重启tc,重启虚拟机后,查看此现象是否解决; 11.2.2 虚拟机识别手写板,但是鼠标操作异常1) 将class=03允许后,鼠标,键盘也被映射到虚拟机中,可以导致鼠标操作比较飘; 2) 将鼠标,键盘的class id再屏蔽掉,单独将手写板的vid,pid打开即可,图例如下: # Don't remote hUbs, hUman-interface devices, or smarTCards DENY: class=02 # CommUnications and CDC-Control DENY: class=09 # HUb devices ALLOW: vid=0B57 pid=8021 # Hanwang ALLOW: vid=5543 pid=0003 # PowerPen DENY: class=03 subclass=01 prot=01 # HID Boot keyboards DENY: class=03 subclass=01 prot=02 # HID Boot mice DENY: class=0a # CDC-Data DENY: class=0b # SmarTCard DENY: class=e0 # Wireless controller ALLOW: # Ultimate fallback: allow everything else 3) 这样USB鼠标由TC来识别,而手写板由虚拟机识别,这样鼠标和手写板就都能正 常使用了; 4) 如果在虚拟机上安装手写笔后,虚拟机就无法断开连接,可以判定手写笔驱动与 VDA程序之间存在冲突,禁用两者当中的非主要进程应该可以规避; 5) 首先检查注册表项,检查VDA是否有个MFAPHOOK.DLL在安装手写笔驱动后,手 写笔驱动将原有的MFAPHOOK.DLL修改为自己的PPINKDLL.DLL了; 6) 在虚拟机注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CUrrentVersion\Windows\AppInit_DLLs中改为如下值: C:\PPENSB\Win32\PPINKDLL.DLL,MFAPHOOK.DLL; 7) 在虚拟机注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxHook中,删除 HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\UI Tweak\explorer.exe; 8) 若进行上述处理后发现虚拟机使用全屏识别模式异常,可以通过任务管理器检查是 否增加了freeime.exe、MSNChk.exe进程,禁用MSNChk.exe可解决; |
|