Linux虚拟交付代理

配置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设备重定向(仅适用于工作站主机)。

编辑设置对话框:

  1. 选择允许
  2. 点击好吧

启用USB重定向

设置USB重定向规则

启用USB重定向策略后,需要通过Citrix Studio设置重定向规则,指定在Linux VDA上允许(或禁止)哪些设备。

在客户端USB设备重定向规则对话框中:

  1. 点击添加重定向规则,或单击编辑审查现有的规则。
  2. 创建(或编辑)规则后,单击好吧

客户端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版本不一致,请执行以下操作:

  1. 下载LVDA源代码Citrix下载站点.选择包含在"Linux虚拟交付代理(来源).”

  2. 提取citrix-linux-vda-sources.zip文件。导航到linux-vda-sources / vhci-hcd-1.15.zip,提取VHCI源文件解压缩vhci-hcd-1.15.zip命令。

  3. 确保您已经安装了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重定向之前将数据刷新到磁盘。

停止重定向u盘时文件丢失的映像

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配置和挂载磁盘。用户(只有安装它的所有者)可以访问磁盘,无需任何额外配置。对于不在支持的设备列表中的设备,情况可能不是这样。

配置USB重定向