Linux Virtual Delivery Agent

USB 重定向

USB 设备在 Citrix Workspace™ 应用程序和 Linux VDA 桌面之间共享。当 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,则会在系统 /dev 路径中创建一个或多个设备节点。但是,有时重定向的设备无法用于活动的 Linux VDA 会话。USB 设备依赖驱动程序才能正常运行,并且某些设备需要特殊驱动程序。如果未提供驱动程序,则活动的 Linux VDA 会话将无法访问重定向的 USB 设备。为确保 USB 设备连接,请安装驱动程序并正确配置系统。

Linux VDA 支持可成功重定向到客户端和从客户端重定向的 USB 设备列表。

支持的 USB 设备

以下设备已验证支持此版本的 Linux VDA。其他设备可能可以自由使用,但结果可能出乎意料:

注意:

-

Linux VDA 仅支持 USB 2.0 协议。

   
       
USB 大容量存储设备 VID:PID 文件系统
Netac Technology Co., Ltd 0dd8:173c FAT32
Kingston Datatraveler 101 II 0951:1625 FAT32
Kingston Datatraveler GT101 G2 1567:8902 FAT32
SanDisk SDCZ80 flash drive 0781:5580 FAT32
WD HDD 1058:10B8 FAT32
USB 3D 鼠标 VID:PID  
3DConnexion SpaceMouse Pro 046d: c62b  
USB 扫描仪 VID:PID  
Epson Perfection V330 photo 04B8: 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. 单击“新建”以添加重定向规则,或单击“编辑”以查看现有规则。
      1. 创建(或编辑)规则后,单击“确定”

客户端 USB 重定向规则设置

构建 VHCI 内核模块

USB 重定向依赖于 VHCI 内核模块(usb-vhci-hcd.kousb-vhci-iocif.ko)。这些模块是 Linux VDA 分发版的一部分(作为 RPM 软件包的一部分)。它们是根据官方 Linux 分发版内核编译的,并在下表中注明:

支持的 Linux 分发版 内核版本
Amazon Linux 2 4.14.268-205
Debian 11.3 5.10.0-10
Debian 10.9 4.19.0-19
RHEL 8.x 4.18.0-240
RHEL 7.9, CentOS 7.9 3.10.0-1160
SUSE 15 5.3.18
Ubuntu 20.04 5.4.0-81
Ubuntu 18.04 4.15.0-154
  • 重要:

  • 如果您的计算机内核与为 Linux VDA 构建的驱动程序不兼容,USB 服务可能无法启动。在这种情况下,只有在您构建自己的 VHCI 内核模块时,才能使用 USB 重定向功能。

验证您的内核是否与 Citrix 构建的模块一致

在命令行中,运行以下命令以验证内核是否一致:

-  insmod /opt/Citrix/VDA/lib64/usb-vhci-hcd.ko
<!--NeedCopy-->

如果命令成功运行,则内核模块已成功加载,并且版本与 Citrix 安装的版本一致。

如果命令运行出错,则内核与 Citrix 模块不一致,必须重新构建。

重新构建 VHCI 内核模块

如果您的内核模块与 Citrix 版本不一致,请执行以下操作:

  1. Citrix 下载站点下载 LVDA 源代码。在“Linux Virtual Delivery Agent (sources)”部分中选择文件。

  2. 提取 citrix-linux-vda-sources.zip 文件。导航到 linux-vda-sources/vhci-hcd-1.15.zip,然后使用 unzip vhci-hcd-1.15.zip 命令提取 VHCI 源文件。

  3. 确保已安装 Linux VDA 软件包,然后运行以下任一命令:

    • sudo bash ctxusbcfg.sh dkms

      此命令允许您使用动态内核模块支持 (DKMS) 程序来管理您的 VHCI 内核模块。DKMS 不适用于 SUSE。

      注意:

      sudo bash ctxusbcfg.sh dkms 命令会在您的 VDA 上安装 kernel-develDKMS 程序。在 RHEL 和 CentOS 上安装程序时,该命令会在您的 VDA 上安装并启用 Extra Packages for Enterprise Linux (EPEL) 存储库。

      当您进行主要的内核升级时(例如,从版本 4.x.y 升级到版本 5.x.y),DKMS 可能会无法构建 VHCI 内核模块 (usb-vhci-hcd.kousb-vhci-iocif.ko)。如果 DKMS 失败,请再次运行 sudo bash ctxusbcfg.sh dkms

    • sudo bash ctxusbcfg.sh build

      此命令在不使用 DKMS 选项的情况下构建并安装 VHCI 内核模块。

排查 USB 重定向问题

使用本节中的信息来排查使用 Linux VDA 时可能遇到的各种问题。

无法卸载重定向的 USB 磁盘

Linux VDA 在管理员权限下管理从 Citrix Workspace 应用程序重定向的所有 USB 磁盘,以确保只有所有者才能访问重定向的设备。因此,您只能使用管理员权限卸载设备。

无法卸载设备

停止重定向 USB 磁盘时文件丢失

如果您使用 Citrix Workspace 应用程序的工具栏立即停止重定向 USB 磁盘,则您在磁盘上修改或创建的文件可能会丢失。出现此问题的原因是,当您将数据写入文件系统时,系统会在文件系统中挂载内存缓存。数据不会写入磁盘本身。如果您使用 Citrix Workspace 应用程序的工具栏停止重定向,则没有剩余时间将数据刷新到磁盘,从而导致数据丢失。要解决此问题,请在停止 USB 重定向之前,在终端中使用 sync 命令将数据刷新到磁盘。

停止重定向 USB 磁盘时文件丢失

Citrix Workspace 应用程序工具栏中没有设备

有时,您可能无法在 Citrix Workspace 应用程序的工具栏中看到列出的设备,这表明没有进行 USB 重定向。如果您遇到此问题,请验证以下各项:

  • 策略已配置为允许 USB 重定向
  • 内核模块与您的内核兼容

Workspace 应用程序工具栏中的“设备”选项卡

注意:

设备”选项卡在适用于 Linux 的 Citrix Workspace 应用程序中不可用。

USB 设备在 Citrix Workspace 应用程序工具栏中可见,但标记为 策略受限 时重定向失败

出现此问题时,请执行以下操作:

  • 配置 Linux VDA 策略以启用重定向。
  • 检查 Citrix Workspace 应用程序的注册表中是否配置了任何其他策略限制。检查注册表路径中的 DeviceRules,以确保此设置未拒绝设备访问:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\GenericUSB

USB 设备已成功重定向,但在我的会话中无法使用

通常,只有 支持的 USB 设备 才能重定向。其他设备也可能重定向到活动的 Linux VDA 会话。对于每个重定向的设备,都会在系统 /dev 路径中创建一个由用户拥有的节点。但是,驱动程序和配置决定了用户是否可以成功使用该设备。如果您发现设备已拥有(已插入)但无法访问,请将该设备添加到不受限制的策略中。

注意:

对于 USB 驱动器,Linux VDA 会配置并挂载磁盘。用户(并且只有安装它的所有者)无需任何额外配置即可访问磁盘。对于不在支持设备列表中的设备,情况可能并非如此。

USB 重定向