Linux Virtual Delivery Agent

USB-Geräteumleitung

USB-Geräte werden von der Citrix Workspace-App und Linux VDA-Desktop gemeinsam verwendet. Wenn ein USB-Gerät an einen Desktop umgeleitet wird, können Sie es wie ein lokal verbundenes Gerät verwenden.

Tipp:

Bei einer Netzwerklatenz unter 100 Millisekunden empfehlen wir die Verwendung einer USB-Geräteumleitung. Verwenden Sie keine USB-Geräteumleitung, wenn die Netzwerklatenz höher als 200 Millisekunden ist.

Die USB-Geräteumleitung umfasst drei hauptsächliche Funktionalitätsbereiche:

  • Open-Source-USB/IP-Projekt
  • Citrix USB-Sitzungsmodul
  • Citrix USB-Servicemodul

Open-Source-USB/IP-Projekt:

Das USB/IP-Projekt umfasst einen Linux-Kerneltreiber und einige Benutzermodusbibliotheken für die Kommunikation mit dem Kerneltreiber zum Abruf aller USB-Daten.

Der Linux VDA implementiert die USB-Geräteumleitung auf der Grundlage des Open-Source-USB/IP-Projekts und verwendet den Kerneltreiber und die Benutzermodusbibliotheken von USB/IP wieder. Alle USB-Datenübertragungen zwischen dem Linux VDA und der Citrix Workspace-App erfolgen jedoch gekapselt im Citrix ICA USB-Protokoll.

Citrix USB-Sitzungsmodul:

Das Citrix USB-Sitzungsmodul fungiert als Kommunikationsbrücke zwischen dem USB/IP-Kernelmodul und der Citrix Workspace-App.

Citrix USB-Servicemodul:

Das Citrix USB-Servicemodul verwaltet alle Vorgänge auf USB-Geräten, z. B. das Anschließen oder Trennen von USB-Geräten.

Funktionsweise der USB-Geräteumleitung

Wenn ein USB-Gerät an den Linux VDA umgeleitet wird, werden normalerweise ein oder mehrere Geräteknoten im Systempfad /dev erstellt. Gelegentlich kann das umgeleitete Gerät jedoch nicht für eine aktive Linux VDA-Sitzung verwendet werden. USB-Geräte funktionieren nur mit Treibern, und manche Geräte erfordern auch Spezialtreiber. Sind diese Treiber nicht vorhanden, kann in der aktiven Linux VDA-Sitzung nicht auf das umgeleitete USB-Gerät zugegriffen werden. Installieren Sie die Treiber und konfigurieren Sie das System, um eine Verbindung mit USB-Geräten zu ermöglichen.

Der Linux VDA unterstützt diverse USB-Geräte, die erfolgreich von dem Client umgeleitet werden können.

Unterstützte USB-Geräte

Tipp:

Wir haben Unterstützung für USB 3.0-Anschlüsse hinzugefügt. Sie können USB 3.0-Geräte an USB 3.0-Anschlüsse eines Clientgeräts anschließen.

Bei den folgenden Geräten wurde die Unterstützung dieser Version des Linux VDA in Tests verifiziert. Andere Geräte können verwendet werden, jedoch können unerwartete Ergebnisse auftreten.

USB-Massenspeichergerät VID:PID Dateisystem
Netac Technology Co., Ltd 0dd8:173c FAT32, NTFS
Kingston Datatraveler 101 II 0951:1625 FAT32, NTFS
Kingston Datatraveler GT101 G2 1567:8902 FAT32, NTFS
SanDisk SDCZ80 flash drive 0781:5580 FAT32, NTFS
WD HDD 1058:10B8 FAT32, NTFS
Toshiba Kingston DataTraveler 3.0 USB device 0930:6545 FAT32, NTFS
Taiwan OEM – OBSOLETE VendorCo ProductCode Disk 2.0 FFFF:5678 FAT32, NTFS
TD-RDF5A Transcend USB device 8564:4000 FAT32, NTFS

Hinweis:

Um NTFS auf Amazon Linux 2, CentOS, RHEL, Rocky Linux und SUSE zu verwenden, aktivieren Sie zuerst die NTFS-Unterstützung für diese Distributionen.

USB-3D-Maus VID:PID
3DConnexion SpaceMouse Pro 046d: c62b
USB-Scanner VID:PID
Epson Perfection V330 photo 04B8: 0142
Yubico USB VID:PID
Yubico YubiKey OTP+FIDO+CCID -Keyboard, HID 1050:0407
Webcam USB VID:PID
Logitech composite USB device – WebCam, Audio 0460:0825

Konfigurieren der USB-Geräteumleitung

Installieren oder Kompilieren des USB/IP-Kernelmoduls (nur für CentOS, RHEL und Rocky Linux)

Der Linux VDA verwendet USB/IP als virtuellen Hostcontroller für die USB-Geräteumleitung. Da das USB/IP-Kernelmodul in den meisten Fällen mit der Linux-Kernelversion 3.17 und höher veröffentlicht wird, müssen Sie das Kernelmodul nicht standardmäßig erstellen. Das USB/IP-Kernelmodul ist jedoch nicht für CentOS, RHEL und Rocky Linux verfügbar. Um die USB-Geräteumleitung mit diesen Linux-Distributionen zu verwenden, müssen Sie das USB/IP-Kernelmodul installieren oder kompilieren. Führen Sie Download und Installation des USB/IP-Kernelmoduls von https://pkgs.org/download/kmod-usbip gemäß Ihrer Linux-Distribution durch.

Richtlinien für die USB-Geräteumleitung festlegen

Die USB-Geräteumleitung wird über eine Citrix Richtlinie aktiviert bzw. deaktiviert. Der Gerätetyp kann außerdem über eine Delivery Controller-Richtlinie festgelegt werden. Konfigurieren Sie die folgenden Richtlinien und Regeln, um die USB-Geräteumleitung für den Linux VDA zu aktivieren:

  • Richtlinie für die Client-USB-Geräteumleitung
  • Regeln für die Client-USB-Geräteumleitung

USB-Geräteumleitung aktivieren

In Citrix Studio können Sie die Umleitung von USB-Geräten vom Client (nur Arbeitsstationshosts) aktivieren und deaktivieren.

Führen Sie im Dialogfeld Einstellung bearbeiten folgende Schritte aus:

  1. Wählen Sie Zugelassen.
  2. Klicken Sie auf OK.

USB-Geräteumleitung aktivieren

Regeln für die USB-Geräteumleitung festlegen

Nach dem Aktivieren der USB-Umleitungsrichtlinie legen Sie mit Citrix Studio die Regeln für die Umleitung fest, d. h. welche Geräte auf dem Linux VDA zulässig sind und welche nicht.

Führen Sie im Dialogfeld Regeln für die Client-USB-Geräteumleitung folgende Schritte aus:

  1. Klicken Sie auf Neu, um eine Umleitungsregel hinzuzufügen oder auf Bearbeiten, um eine vorhandene Regel zu prüfen.
  2. Nach dem Erstellen bzw. Ändern der Regel klicken Sie auf OK.

Regeleinstellung für die Client-USB-Geräteumleitung

Weitere Informationen zum Konfigurieren der generischen USB-Geräteumleitung finden Sie im Citrix Generic USB Redirection Configuration Guide.

Behandeln von Problemen bei der USB-Geräteumleitung

Anhand der Informationen in diesem Abschnitt können Sie diverse Probleme beheben, die bei der Verwendung des Linux VDA auftreten können.

Bereitstellung eines umgeleiteten USB-Datenträgers kann nicht aufgehoben werden

Der Linux VDA verwaltet alle von der Citrix Workspace-App umgeleiteten USB-Datenträger unter Verwendung von Administratorrechten, damit nur der Besitzer eines umgeleiteten Geräts darauf zugreifen kann. Daher können Sie die Bereitstellung des Geräts nur mit Administratorrechten aufheben.

Bereitstellung eines Geräts kann nicht aufgehoben werden

Dateiverlust beim Beenden der Umleitung eines USB-Datenträgers

Wenn Sie die Umleitung eines USB-Datenträgers sofort über die Symbolleiste der Citrix Workspace-App beenden, können die Dateien, die Sie auf dem Datenträger geändert oder erstellt haben, verloren gehen. Dieses Problem tritt auf, weil beim Schreiben von Daten in ein Dateisystem der Speichercache im Dateisystem eingebunden wird. Die Daten werden nicht auf den Datenträger selbst geschrieben. Wenn Sie die Umleitung über die Symbolleiste der Citrix Workspace-App beenden, bleibt keine Zeit zum Übertragen der Daten auf den Datenträger, und die Daten gehen verloren.

Zur Problemlösung verwenden Sie den sync-Befehl in einem Terminal, um die Daten auf den Datenträger zu übertragen, bevor Sie die USB-Umleitung beenden.

Keine Geräte in der Symbolleiste der Citrix Workspace-App

Es kann vorkommen, dass in der Symbolleiste der Citrix Workspace-App keine Geräte aufgeführt werden, d. h. dass keine USB-Umleitung stattfindet.

Registerkarte "Geräte" in der Symbolleiste der Workspace-App

Prüfen Sie in diesem Fall Folgendes:

  • Die Richtlinie ist auf Zulassen der USB-Geräteumleitung konfiguriert.
  • Das Citrix USB-Servicemodul wird ausgeführt.

Wenn die Richtlinie nicht richtig festgelegt ist, korrigieren Sie sie unter Bezugnahme auf den Abschnitt Festlegen von Richtlinien für die USB-Geräteumleitung in diesem Artikel.

Wenn das Citrix USB-Servicemodul nicht ausgeführt wird, führen Sie die folgenden Schritte aus:

  1. Überprüfen Sie mit dem folgenden Befehl, ob ein USB/IP-Kernelmodul in Ihrer Linux-Distribution verfügbar ist:

    modinfo usbip-core
    <!--NeedCopy-->
    
  2. Wenn die Ausgabe wie folgt angezeigt wird, installieren oder kompilieren Sie das USB/IP-Kernelmodul entsprechend Ihrer Linux-Distribution:

    modinfo: ERROR: Module usbip-core not found.
    <!--NeedCopy-->
    
    • Informationen zu Amazon Linux 2, CentOS, RHEL und Rocky Linux finden Sie im Abschnitt Installieren oder Kompilieren des USB/IP-Kernelmoduls in diesem Artikel.
    • Laden Sie für SUSE das USB/IP-Paket von https://software.opensuse.org/package/usbip herunter und installieren Sie es.
    • Führen Sie für Ubuntu/Debian die folgenden Schritte aus, um das USB/IP-Kernelmodul zu kompilieren und zu installieren:

      1. Laden Sie den Quellcode des USB/IP-Kernelmoduls herunter.

        Rufen Sie das Linux-Kernel-Repository unter https://github.com/torvalds/linux/tree/master/drivers/usb/usbip auf, wählen Sie die Ziel-Linux-Kernelversion (v4.15 oder höher) aus und fordern Sie den Link an, z. B. https://github.com/torvalds/linux/tree/v4.15/drivers/usb/usbip.

        Gehen Sie zu DownGit und geben Sie den vorherigen Link ein, um einen Download-Link zum Herunterladen des USB/IP-Quellcodes zu erstellen.

      2. Entpacken Sie die Quelldatei mit den folgenden Befehlen:

        unzip ${USBIP_SRC}.zip
        
        cd usbip
        <!--NeedCopy-->
        
      3. Ändern Sie die Datei Makefile wie folgt:

        # SPDX-License-Identifier: GPL-2.0
        
        ccflags-$(CONFIG_USBIP_DEBUG) := -DDEBUG
        
        obj-$(CONFIG_USBIP_CORE) += usbip-core.o
        
        usbip-core-y := usbip_common.o usbip_event.o
        
        obj-$(CONFIG_USBIP_VHCI_HCD) += vhci-hcd.o
        
        vhci-hcd-y := vhci_sysfs.o vhci_tx.o vhci_rx.o vhci_hcd.o
        
        #obj-$(CONFIG_USBIP_HOST) += usbip-host.o
        
        #usbip-host-y := stub_dev.o stub_main.o stub_rx.o stub_tx.o
        
        #obj-$(CONFIG_USBIP_VUDC) += usbip-vudc.o
        
        #usbip-vudc-y := vudc_dev.o vudc_sysfs.o vudc_tx.o vudc_rx.o vudc_transfer.o vudc_main.o
        <!--NeedCopy-->
        
      4. Kompilieren Sie den Quellcode:

        apt-get install linux-headers-`uname -r`
        
        make -C /lib/modules/`uname -r`/build M=$PWD
        <!--NeedCopy-->
        
      5. Installieren Sie das USB/IP-Kernelmodul:

        cp usbip-core.ko vhci-hcd.ko /opt/Citrix/VDA/lib64/
        <!--NeedCopy-->
        
      6. Starten Sie den Dienst ctxusbsd neu, um das USB/IP-Kernelmodul zu laden:

        service ctxusbsd restart
        <!--NeedCopy-->
        

Die Umleitung schlägt fehl, wenn in der Symbolleiste der Citrix Workspace-App angezeigte USB-Geräte als richtlinienbeschränkt ausgewiesen sind

Wenn das Problem auftritt, führen Sie die folgenden Schritte aus:

  • Konfigurieren Sie die Linux VDA-Richtlinie zum Aktivieren der Umleitung.
  • Prüfen Sie, ob in der Registrierung der Citrix Workspace-App weitere Richtlinieneinschränkungen konfiguriert sind. Prüfen Sie DeviceRules im Registrierungspfad, um sicherzustellen, dass dem Gerät durch diese Einstellung kein Zugriff verweigert wird:

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

Ein USB-Gerät wird umgeleitet, kann jedoch nicht in einer Sitzung verwendet werden

In der Regel können nur unterstützte USB-Geräte umgeleitet werden. Auch andere Geräte werden evtl. in eine aktive Linux VDA-Sitzung umgeleitet. Es wird für jedes umgeleitete Gerät ein im Besitz des Benutzers stehender Knoten im Systempfad /dev erstellt. Allerdings bestimmen Treiber und Konfiguration, ob der Benutzer das Gerät verwenden kann. Wenn Sie ein angeschlossenes Gerät finden, auf das nicht zugegriffen werden kann, fügen Sie es einer uneingeschränkten Richtlinie hinzu.

Hinweis:

Für USB-Laufwerke erfolgt die Konfiguration und Einbindung durch den Linux VDA. Der Benutzer, der das Laufwerk installiert hat (und kein anderer), kann ohne zusätzliche Konfiguration auf das Laufwerk zugreifen. Dies ist bei Geräten, die nicht auf der Liste der unterstützten Geräte stehen, evtl. nicht möglich.

USB-Geräteumleitung