USB-Umleitung konfigurieren
USB-Geräte werden zwischen Citrix Receiver™ und dem Linux VDA-Desktop gemeinsam genutzt. Wenn ein USB-Gerät auf den Desktop umgeleitet wird, kann der Benutzer das USB-Gerät so verwenden, als wäre es lokal angeschlossen.
-
Die USB-Umleitung umfasst drei Hauptfunktionsbereiche:
- Open-Source-Projektimplementierung (VHCI)
- VHCI-Dienst
- USB-Dienst
Open-Source-VHCI:
Dieser Teil der USB-Umleitungsfunktion entwickelt ein allgemeines USB-Gerätefreigabesystem über ein IP-Netzwerk. Es besteht aus einem Linux-Kernel-Treiber und einigen Benutzermodus-Bibliotheken, die die Kommunikation mit dem Kernel-Treiber ermöglichen, um alle USB-Daten zu erhalten. In der Linux VDA-Implementierung verwendet Citrix den Kernel-Treiber von VHCI wieder. Alle USB-Datenübertragungen zwischen dem Linux VDA und Citrix Receiver werden jedoch im Citrix ICA®-Protokollpaket gekapselt.
VHCI-Dienst:
Der VHCI-Dienst ist ein von Citrix bereitgestellter Open-Source-Dienst zur Kommunikation mit dem VHCI-Kernelmodul. Dieser Dienst fungiert als Gateway zwischen VHCI und dem Citrix USB-Dienst.
USB-Dienst:
Der USB-Dienst stellt ein Citrix-Modul dar, das die gesamte Virtualisierung und Datenübertragung auf dem USB-Gerät verwaltet.
Funktionsweise der USB-Umleitung
Wenn ein USB-Gerät erfolgreich an den Linux VDA umgeleitet wird, werden typischerweise ein oder mehrere Geräteknoten im Systempfad /dev erstellt. Manchmal ist das umgeleitete Gerät jedoch für eine aktive Linux VDA-Sitzung nicht nutzbar. USB-Geräte benötigen Treiber, um ordnungsgemäß zu funktionieren, und einige Geräte erfordern spezielle Treiber. Wenn keine Treiber bereitgestellt werden, sind die umgeleiteten USB-Geräte für die aktive Linux VDA-Sitzung nicht zugänglich. Um die USB-Gerätekonnektivität sicherzustellen, installieren Sie die Treiber und konfigurieren Sie das System ordnungsgemäß.
Der Linux VDA unterstützt eine Liste von USB-Geräten, die erfolgreich zum und vom Client umgeleitet werden. Darüber hinaus wird das Gerät, insbesondere die USB-Festplatte, ordnungsgemäß gemountet, sodass der Benutzer ohne zusätzliche Konfiguration auf die Festplatte zugreifen kann.
Unterstützte USB-Geräte
Die folgenden Geräte wurden für die Unterstützung dieser Version des Linux VDA verifiziert. Andere Geräte können frei verwendet werden, mit unerwarteten Ergebnissen:
Hinweis:
Der Linux VDA unterstützt nur USB 2.0-Protokolle.
-
USB-Massenspeichergerät VID:PID Dateisystem 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-Maus VID:PID 3DConnexion SpaceMouse Pro 046d: c62b USB-Scanner VID:PID Epson Perfection V330 photo 04B8: 0142
USB-Umleitung konfigurieren
Eine Citrix-Richtlinie steuert, ob die USB-Geräteumleitung aktiviert oder deaktiviert ist. Darüber hinaus kann der Gerätetyp auch über eine Delivery Controller™-Richtlinie angegeben werden. Beim Konfigurieren der USB-Umleitung für den Linux VDA konfigurieren Sie die folgende Richtlinie und Regeln:
- Client-USB-Geräteumleitungsrichtlinie
- Client-USB-Geräteumleitungsregeln
USB-Umleitungsrichtlinie aktivieren
Aktivieren (oder deaktivieren) Sie in Citrix Studio die USB-Geräteumleitung zum und vom Client (nur für Workstation-Hosts).
Im Dialogfeld Einstellung bearbeiten:
- Wählen Sie Zulässig.
- Klicken Sie auf OK.

USB-Umleitungsregeln festlegen
Nachdem Sie die USB-Umleitungsrichtlinie aktiviert haben, legen Sie in Citrix Studio Umleitungsregeln fest, indem Sie angeben, welche Geräte auf dem Linux VDA zugelassen (oder verweigert) werden.
Im Dialogfeld Client-USB-Geräteumleitungsregeln:
- Klicken Sie auf Neu, um eine Umleitungsregel hinzuzufügen, oder klicken Sie auf Bearbeiten, um eine vorhandene Regel zu überprüfen.
- Nachdem Sie eine Regel erstellt (oder bearbeitet) haben, klicken Sie auf OK.

VHCI-Kernelmodul erstellen
Die USB-Umleitung hängt von den VHCI-Kernelmodulen (usb-vhci-hcd.ko und usb-vhci-iocif.ko) ab. Diese Module sind Teil der Linux VDA-Distribution (als Teil des RPM-Pakets). Sie werden basierend auf den offiziellen Linux-Distributions-Kerneln kompiliert und sind in der folgenden Tabelle aufgeführt:
| Unterstützte Linux-Distribution | Kernel-Version |
|---|---|
| RHEL 7.3 | 3.10.0-514.el7.x86_64 |
| RHEL 6.6 | 2.6.32-504.el6.x86_64 |
| SUSE 12.2 | 4.4.49-92.11-default |
| SUSE 11.4 | 3.0.101-0.47.55-default |
| Ubuntu 16.04 | 4.4.0-45-generic |
Wichtig:
Wenn der Kernel Ihres Computers nicht mit dem von Citrix für den Linux VDA erstellten Treiber kompatibel ist, kann der USB-Dienst möglicherweise nicht gestartet werden. In diesem Fall können Sie die USB-Umleitungsfunktion nur verwenden, wenn Sie Ihre eigenen VHCI-Kernelmodule erstellen.
Überprüfen, ob Ihr Kernel mit den von Citrix erstellten Modulen konsistent ist
Führen Sie in der Befehlszeile den folgenden Befehl aus, um zu überprüfen, ob der Kernel konsistent ist:
insmod /opt/Citrix/VDA/lib64/usb-vhci-hcd.ko
<!--NeedCopy-->
Wenn der Befehl erfolgreich ausgeführt wird, wurde das Kernelmodul erfolgreich geladen und die Version ist konsistent mit der von Citrix installierten.
Wenn der Befehl Fehler aufweist, ist der Kernel inkonsistent mit dem Citrix-Modul und muss neu erstellt werden.
VHCI-Kernelmodul neu erstellen
Wenn Ihr Kernel-Modul nicht mit der Citrix-Version übereinstimmt, gehen Sie wie folgt vor:
-
Laden Sie den LVDA-Quellcode von der Citrix Download-Website herunter. Wählen Sie die Datei im Abschnitt “Linux Virtual Delivery Agent (Quellen)” aus.
-
Stellen Sie Dateien aus der Datei citrix-linux-vda-sources.zip wieder her; Sie finden VHCI-Quelldateien unter linux-vda-souces/vhci-hcd-1.15.tar.bz2; Sie können VHCI-Dateien mit tar xvf vhci-hcd-1.15.tar.bz2 wiederherstellen.
-
Erstellen Sie das Kernel-Modul basierend auf den Header-Dateien und der Datei Module.symvers. Verwenden Sie die folgenden Schritte, um die Kernel-Header-Dateien zu installieren und Module.symvers basierend auf der entsprechenden Linux-Distribution zu erstellen:
RHEL 7.3/RHEL 6.9/RHEL 6.6:
yum install kernel-devel <!--NeedCopy-->SUSE 12.2:
- zypper install kernel-devel zypper install kernel-source <!--NeedCopy-->SUSE 11.4:
zypper install kernel-source <!--NeedCopy-->Ubuntu 16.04:
apt-get install linux-headers <!--NeedCopy-->Tipp:
Wenn die Installation erfolgreich ist, gibt es einen Kernel-Ordner, der wie folgt aussieht:
/usr/src/kernels/3.10.0-327.10.1.el7.x86_64
-
Überprüfen Sie im Ordner /usr/src/kernels/3.10.0-327.10.1.el7.x86_64, ob die Datei Module.symvers vorhanden ist. Wenn diese Datei nicht im Ordner ist, erstellen Sie den Kernel, um diese Datei zu erhalten (z. B.
make oldconfig;make prepare;make modules;make), oder kopieren Sie sie von /usr/src/kernels/3.10.0-327.10.1.el7.x86_64-obj/x86_64/defaults/module.* -
Ändern Sie in der Datei vhci-hcd-1.15/Makefile das Makefile von VCHI und setzen Sie KDIR auf das Kernel-Verzeichnis:
#KDIR = $(BUILD_PREFIX)/lib/modules/$(KVERSION)/build KDIR = /usr/src/kernels/3.10.0-327.10.1.el7.x86_64 <!--NeedCopy--> -
Führen Sie im Ordner vhci-hcd-1.15/ den Befehl make aus, um den VHCI-Kernel zu erstellen.
Hinweis:
Wenn der Build erfolgreich war, werden usb-vhci-hcd.ko und usb-vhci-iocifc.ko im Ordner vhci-hcd-1.15/ erstellt.
-
Ersetzen Sie das Kernel-Modul durch das neu erstellte: cp -f usb-vhci-*.ko /opt/Citrix/VDA/lib64/
-
Starten Sie den USB-Dienst neu: service ctxusbsd restart
-
Melden Sie sich von der Sitzung ab und wieder an. Überprüfen Sie, ob die USB-Umleitung funktioniert.
Beheben von Problemen bei der USB-Umleitung
Verwenden Sie die Informationen in diesem Abschnitt, um verschiedene Probleme zu beheben, die bei der Verwendung des Linux VDA auftreten können.
Umgeleitete USB-Festplatte kann nicht ausgeworfen werden
Für die Zugriffssteuerung aller von Citrix Receiver umgeleiteten USB-Festplatten verwaltet der Linux VDA alle diese Geräte mit Administratorrechten, um sicherzustellen, dass nur der Eigentümer auf das umgeleitete Gerät zugreifen kann. Folglich kann der Benutzer das Gerät ohne Administratorrechte nicht auswerfen.

Datei geht verloren, wenn Sie die Umleitung einer USB-Festplatte beenden
Wenn Sie eine USB-Festplatte an eine Sitzung umleiten und versuchen, sie zu ändern (z. B. einige Dateien auf der Festplatte zu erstellen), und dann die Umleitung sofort über die Symbolleiste von Citrix Receiver beenden, kann die von Ihnen geänderte oder erstellte Datei verloren gehen. Dieses Problem tritt auf, weil beim Schreiben von Daten in ein Dateisystem das System den Speicher-Cache im Dateisystem einbindet. Die Daten werden nicht direkt auf die Festplatte geschrieben. Wenn Sie die Umleitung über die Symbolleiste von Citrix Receiver beenden, bleibt keine Zeit mehr, die Daten auf die Festplatte zu schreiben, was zu Datenverlust führt. Um dieses Problem zu beheben, verwenden Sie den Befehl sync in einem Terminal, um Daten auf die Festplatte zu schreiben, bevor Sie die USB-Umleitung beenden.

Keine Geräte in der Symbolleiste von Citrix Receiver
Manchmal werden in der Symbolleiste von Citrix Receiver keine Geräte angezeigt, was darauf hindeutet, dass keine USB-Umleitung stattfindet. Wenn dieses Problem auftritt, überprüfen Sie Folgendes:
- Die Richtlinie ist so konfiguriert, dass die USB-Umleitung zugelassen wird
- Das Kernel-Modul ist mit Ihrem Kernel kompatibel

Hinweis:
Die Registerkarte Geräte ist in Citrix Receiver für Linux nicht verfügbar.
Fehlgeschlagene Umleitung, wenn USB-Geräte in der Symbolleiste von Citrix Receiver sichtbar sind, aber als richtlinienbeschränkt gekennzeichnet sind
Dieses Problem tritt aufgrund der Richtlinienkonfiguration des Geräts auf. In solchen Fällen:
- Konfigurieren Sie die Linux VDA-Richtlinie, um die Umleitung zu aktivieren
-
Überprüfen Sie, ob zusätzliche Richtlinieneinschränkungen in der Registrierung von Citrix Receiver konfiguriert sind. Ein Gerät könnte durch die Registrierungseinstellung von Citrix Receiver blockiert werden. Überprüfen Sie DeviceRules im Registrierungspfad, um sicherzustellen, dass dem Gerät der Zugriff durch diese Einstellung nicht verweigert wird:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\GenericUSB
Ein USB-Gerät wird erfolgreich umgeleitet, aber ich kann es in meiner Sitzung nicht verwenden
Normalerweise können nur unterstützte USB-Geräte umgeleitet werden. Manchmal können jedoch auch andere Arten von Geräten an eine aktive Linux VDA-Sitzung umgeleitet werden. In diesen Situationen wird für jedes umgeleitete Gerät ein vom Benutzer besessener Knoten im Systempfad /dev erstellt. Es sind jedoch die Treiber und die Konfiguration, die bestimmen, ob der Benutzer das Gerät erfolgreich verwenden kann. Wenn Sie ein Gerät finden, das besessen (angeschlossen) aber unzugänglich ist, fügen Sie das Gerät einer uneingeschränkten Richtlinie hinzu.
Hinweis:
Bei USB-Laufwerken konfiguriert und mountet der Linux VDA die Festplatte. Der Benutzer (und nur der Eigentümer, der sie installiert hat) kann ohne zusätzliche Konfiguration auf die Festplatte zugreifen. Dies trifft möglicherweise nicht auf Geräte zu, die nicht in der Liste der unterstützten Geräte aufgeführt sind.