配置USB重定向
Citrix Workspace应用程序和Linux VDA桌面之间共享USB设备。当USB设备被重定向到桌面时,用户可以像本地连接一样使用USB设备。
提示:
当网络延迟低于100毫秒时,我们建议使用USB重定向。当网络延迟超过200毫秒时,建议不要使用USB重定向。
USB重定向包括三个主要功能领域:
- 开源项目实现(VHCI)
- VHCI服务
- USB接口服务
开源VHCI:
USB重定向特性的这一部分通过IP网络开发了一个通用的USB设备共享系统。它由一个Linux内核驱动程序和一些允许您与内核驱动程序通信以获取所有USB数据的用户模式库组成。在Linux VDA实现中,Citrix重用了VHCI的内核驱动程序。但是,在Linux VDA和Citrix Workspace应用程序之间的所有USB数据传输都封装在Citrix ICA协议包中。
VHCI服务:
VHCI服务是Citrix提供的与VHCI内核模块通信的开源服务。该服务作为VHCI和Citrix USB服务之间的网关。
USB服务:
USB服务表示一个Citrix模块,该模块管理USB设备上的所有虚拟化和数据传输。
USB重定向工作原理
通常,如果USB设备成功重定向到Linux VDA,则在system /dev路径中创建一个或多个设备节点。但是,有时重定向的设备对于活动的Linux VDA会话是不可用的。USB设备依赖驱动程序才能正常工作,有些设备需要特殊的驱动程序。如果没有提供驱动程序,重定向的USB设备将无法访问活动的Linux VDA会话。为保证USB设备的连接,需要正确安装驱动程序并进行系统配置。
Linux VDA支持一个成功重定向到客户机和从客户机的USB设备列表。此外,设备是正确挂载的,特别是u盘,允许用户访问磁盘,而不需要任何额外的配置。
支持USB设备
以下设备已经验证支持此版本的Linux VDA。其他设备可能会自由使用,产生意想不到的结果:
注意:
Linux VDA仅支持usb2.0协议。
USB海量存储设备 | 视频:PID | 文件系统 |
---|---|---|
Netac科技有限公司 | 0 dd8:173c | FAT32 |
金斯顿数据旅行者101 II | 0951:1625 | FAT32 |
金士顿数据旅行者GT101 G2 | 1567:8902 | FAT32 |
SanDisk SDCZ80闪存驱动器 | 0781:5580 | FAT32 |
WD硬盘 | 1058:10B8 | FAT32 |
USB 3 d鼠标 | 视频:PID |
---|---|
3 dconnexion SpaceMouse职业 | 046 d: c62b |
USB扫描仪 | 视频:PID |
---|---|
爱普生完美V330照片 | 04 b8: 0142 |
配置USB重定向
Citrix策略控制是否启用或禁用USB设备重定向。此外,还可以使用Delivery Controller策略指定设备的类型。配置Linux VDA的USB重定向时,需要配置以下策略和规则:
- 客户端USB设备重定向策略
- 客户端USB设备重定向规则
启用USB重定向
在Citrix Studio中,启用(或禁用)与客户机之间的USB设备重定向(仅适用于工作站主机)。
在编辑设置对话框:
- 选择允许.
- 点击好吧.
设置USB重定向规则
启用USB重定向策略后,需要通过Citrix Studio设置重定向规则,指定在Linux VDA上允许(或禁止)哪些设备。
在客户端USB设备重定向规则对话框中:
- 点击新添加重定向规则,或单击编辑审查现有的规则。
- 创建(或编辑)规则后,单击好吧.
有关配置通用USB重定向的更多信息,请参见Citrix通用USB重定向配置指南.
构建VHCI内核模块
USB重定向依赖于VHCI内核模块(usb-vhci-hcd.ko
而且usb-vhci-iocif.ko
).这些模块是Linux VDA发行版的一部分(作为RPM包的一部分)。它们是基于官方Linux发行内核编译的,并在下表中说明:
支持Linux发行版 | 内核版本 |
---|---|
RHEL 8.3, CentOS 8.3 | 4.18.0-240 |
RHEL 8.2, CentOS 8.2 | 4.18.0-240 |
RHEL 8.1, CentOS 8.1 | 4.18.0-240 |
RHEL 7.9, CentOS 7.9 | 3.10.0-1160 |
RHEL 7.8, CentOS 7.8 | 3.10.0-1160 |
SUSE 12.5 | 4.12.14 |
Ubuntu 20.04 | 5.4.0-81 |
Ubuntu 18.04 | 4.15.0-154 |
Ubuntu 16.04 | 4.4.0-210 |
Debian 10 | 4.19.0-17 |
重要的是:
如果您的计算机的内核与为Linux VDA构建的驱动程序不兼容,USB服务可能无法启动。在这种情况下,只有构建自己的VHCI内核模块,才能使用USB重定向特性。
验证您的内核是否与Citrix构建的模块一致
在命令行中,执行如下命令验证内核是否一致:
insmod / opt / Citrix / VDA / lib64 / usb-vhci-hcd。ko < !——NeedCopy >
如果命令执行成功,说明加载内核模块成功,且版本与Citrix安装的版本一致。
如果命令运行时出现错误,则说明内核与Citrix模块不一致,必须重新构建内核。
重新构建VHCI内核模块
如果您的内核模块与Citrix版本不一致,请执行以下操作:
下载LVDA源代码Citrix下载站点.选择包含在"Linux虚拟交付代理(来源).”
提取citrix-linux-vda-sources.zip文件。导航到linux-vda-sources / vhci-hcd-1.15.zip,提取VHCI源文件
解压缩vhci-hcd-1.15.zip
命令。确保您已经安装了Linux VDA包,然后运行以下命令之一:
Sudo bash ctxusbcfg.sh DKMS
这个命令允许您使用动态内核模块支持(DKMS)程序来管理VHCI内核模块。SUSE系统不支持DKMS。
注意:
的
Sudo bash ctxusbcfg.sh DKMS
命令在您的VDA上安装kernel-devel和DKMS程序。在RHEL和CentOS上安装程序时,该命令将在您的VDA上安装并启用Enterprise Linux的Extra Packages (EPEL)存储库。DKMS可能无法构建VHCI内核模块(
usb-vhci-hcd.ko
而且usb-vhci-iocif.ko
)当您执行一个主要的内核升级时,例如从版本4.x升级。Y到版本5.x.y。如果DKMS失败,请执行Sudo bash ctxusbcfg.sh DKMS
一次。Sudo bash ctxusbcfg.sh build
这个命令构建和安装VHCI内核模块,而不使用DKMS选项。
排除USB重定向问题
使用本节中的信息来排除在使用Linux VDA时可能遇到的各种问题。
无法卸载重定向u盘
对于从Citrix Workspace应用重定向的所有USB盘的访问控制,Linux VDA以管理权限管理所有这些设备,以确保只有所有者可以访问重定向的设备。因此,没有管理员权限的用户无法卸载设备。
停止重定向u盘时文件丢失
如果您将一个u盘重定向到一个会话并试图修改它(例如,在磁盘上创建一些文件),然后立即使用Citrix Workspace应用程序的工具栏停止重定向它,您修改或创建的文件可能会丢失。出现此问题是因为当您向文件系统写入数据时,系统将在文件系统中挂载内存缓存。数据不写入磁盘本身。如果停止使用Citrix Workspace应用程序的工具栏重定向,将没有时间将数据刷新到磁盘,这将导致数据丢失。若要解决此问题,请在终端中使用sync命令在停止USB重定向之前将数据刷新到磁盘。
Citrix Workspace应用程序的工具栏中没有设备
有时,您可能无法在Citrix Workspace应用程序的工具栏中看到列出的设备,这表明没有发生USB重定向。如果遇到此问题,请进行以下检查:
- 配置策略为允许USB重定向
- 内核模块与您的内核兼容
注意:
的设备选项卡在Citrix工作区的应用程序中不可用。
当USB设备可以在Citrix Workspace应用程序的工具栏中看到,但被标记时,重定向失败政策的限制
出现此问题时,请按照以下步骤进行处理:
- 配置Linux VDA策略,启用重定向。
检查Citrix Workspace应用的注册表中是否配置了任何附加的策略限制。检查DeviceRules在注册表路径中,以确保设备不会被此设置拒绝访问:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Citrix \ \ GenericUSB ICA客户机
有关更多信息,请参阅知识中心的文章如何配置USB设备自动重定向.
USB设备被成功重定向,但我不能在会话中使用它
通常情况下,只支持USB设备可以被重定向的。其他设备也可能被重定向到活动的Linux VDA会话。对于每个重定向设备,在系统中创建一个用户拥有的节点/ dev路径。但是,决定用户能否成功使用设备的是驱动程序和配置。如果您发现一个设备拥有(插入)但不可访问,请将该设备添加到无限制策略。
注意:
在USB驱动器的情况下,Linux VDA配置和挂载磁盘。用户(只有安装它的所有者)可以访问磁盘,无需任何额外配置。对于不在支持的设备列表中的设备,情况可能不是这样。