Product Documentation

Konfigurieren der USB-Umleitung

Nov 01, 2016

Version 1.4 des Linux VDA unterstützt die USB-Umleitung. Die USB-Umleitung ermöglicht die Freigabe von USB-Geräten zwischen Citrix Receiver und Linux VDA-Desktop. Wenn ein USB-Gerät an einen Desktop umgeleitet wird, kann es wie ein lokal verbundenes Gerät verwendet werden.  

Die USB-Umleitung umfasst drei hauptsächliche Funktionalitätsbereiche:

  • Open-Source-Projektimplementierung (VHCI)
  • VHCI service
  • USB service

Open-Source-VHCI

Dieser Teil der USB-Umleitung besteht aus der Entwicklung eines allgemeinen Systems zur USB-Gerätefreigabe über ein IP-Netzwerk. Er umfasst einen Linux- Kerneltreiber und einige Benutzermodusbibliotheken für die Kommunikation mit dem Kerneltreiber zum Abruf aller USB-Daten.  In der Linux VDA-Implementierung hat Citrix den VHCI-Kerneltreiber verwendet. Alle USB-Datenübertragungen zwischen Linux VDA und Citrix Receiver erfolgen jedoch gekapselt im Citrix ICA-Protokollpaket.

VHCI service

Der VHCI-Dienst ist ein von Citrix zur Kommunikation mit dem VHCI-Kernelmodul bereitgestellter Open-Source-Dienst. Der Dienst fungiert als Gateway zwischen VHCI und dem Citrix USB-Dienst.

USB service

Der USB-Dienst ist ein Citrix Modul, das sämtliche Virtualisierungen und Datenübertragungen auf dem USB-Gerät verwaltet.

Dieser Artikel enthält folgende Abschnitte:

Funktionsweise der USB-Umleitung

Wenn ein USB-Gerät an den Linux VDA-Client umgeleitet wird, werden normalerweise ein oder mehrere Geräteknoten im Systempfad /dev erstellt. In manchen Fällen kann das umgeleitete Gerät jedoch nicht von einer aktiven Linux VDA-Sitzung verwendet werden. USB-Geräte benötigen zur ordnungsgemäßen Funktion Treiber (manche erfordern Spezialtreiber). Es kann vorkommen, dass ein Treiber nicht vorhanden ist, sodass in der aktiven Linux VDA-Sitzung nicht auf das umgeleitete USB-Gerät zugegriffen werden kann. In diesem Fall müssen fehlende Treiber installiert und das System richtig konfiguriert werden, damit eine Verbindung mit USB-Geräten möglich ist.

Version 1.4 des Linux VDA unterstützt diverse USB-Geräte, die erfolgreich an den Client umgeleitet werden können. Außerdem werden solche Geräte, insbesondere USB-Datenträger, ordnungsgemäß eingebunden, sodass die Benutzer ohne zusätzliche Konfiguration darauf zugreifen können.

Konfigurieren der USB-Umleitung

Die USB-Geräteumleitung wird über eine Citrix Richtlinie aktiviert bzw. deaktiviert. Außerdem kann der Gerätetyp über eine DDC-Richtlinie festgelegt werden. Die Konfiguration der USB-Umleitung für den Linux VDA umfasst folgende Elemente:

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

Richtlinie zur Aktivierung der USB-Umleitung

In Citrix Studio können Sie die Umleitung von USB-Geräten zum und 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.
localized image

Hinweis

Weitere Informationen zum Konfigurieren der USB-Umleitung finden Sie in der Citrix Anleitung zur Konfiguration der generischen USB-Umleitung.

Festlegen von Regeln für die USB-Umleitung

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-Client 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 Regel hinzuzufügen oder auf Bearbeiten, um eine vorhandene Regel zu prüfen. 
  2. Nach dem Erstellen bzw. Ändern der Regel klicken Sie auf OK.
localized image

Behandeln von Problemen bei der USB-Umleitung

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

Keine Geräte auf Receiver-Symbolleiste

Es kann vorkommen, dass auf der Citrix Receiver-Symbolleiste keine Geräte aufgeführt werden, d. h. dass keine USB-Umleitung stattfindet. Prüfen Sie in diesem Fall Folgendes:

  • Die Richtlinie ist auf Zulassen der USB-Umleitung konfiguriert.
  • Das Kernelmodul ist mit Ihrem Kernel kompatibel.
localized image

Auf der Receiver-Symbolleiste angezeigte USB-Geräte sind als richtlinienbeschränkt ausgewiesen und die Umleitung schlägt fehl

Dieses Problem wird durch die Richtlinienkonfiguration der Geräte verursacht. Gehen Sie in solchen Fällen folgendermaßen vor:

  • Konfigurieren Sie die Linux VDA-Richtlinie zum Aktivieren der Umleitung.
  • Prüfen Sie, ob weitere Richtlinieneinschränkungen in der Receiver-Registrierung konfiguriert sind. Möglicherweise ist ein Gerät durch die Einstellung in der Receiver-Registrierung gesperrt. Prüfen Sie DeviceRules im Registrierungspfad, um sicherzustellen, dass kein Gerätezugriff durch diese Einstellung verweigert wird:

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

Hinweis

Weitere Informationen finden Sie in der Anleitung zum Konfigurieren der automatischen Umleitung von USB-Geräten auf der Citrix Supportsite.

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

Normalerweise können nur die in der Liste der unterstützten Geräte aufgeführten USB-Geräte umgeleitet werden. In manchen Fällen werden jedoch andere Geräte in eine aktive Linux VDA-Sitzung umgeleitet. Es wird dann 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

Im Fall von USB-Laufwerken 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.

Erstellen des VHCI-Kernelmoduls

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 auf Basis der Kernel der offiziellen Linux-Distribution kompiliert:

Unterstützte Linux-DistributionKernelversion
RHEL 6.82.6.32-573.8.1.el6.x86_64
RHEL 7.23.10.0-327.4.4.el7.x86_64
SUSE 11.43.0.101-0.47.55-default
SUSE 12.13.12.43-52.6-default

Important

Wenn der Kernel Ihres Computers nicht mit dem Citrix Treiber für den Linux VDA kompatibel ist, kann der USB-Dienst möglicherweise nicht gestartet werden. In diesem Fall können Sie die USB-Umleitung nur dann verwenden, wenn Sie eigenen VHCI-Kernelmodule erstellen.

Prüfen des vorliegenden Kernels auf Konsistenz mit dem Modul von Citrix

Führen Sie an der Befehlszeile den folgenden Befehl aus, um zu überprüfen, ob Ihr Kernel konsistent ist:

command Kopieren

insmod /opt/Citrix/VDA/lib64/usb-vhci-hcd.ko

Wird der Befehl ausgeführt, dann wurde das Kernelmodul erfolgreich geladen und die Version ist mit der von Citrix installierten konsistent. 

Treten bei der Ausführung des Befehls Fehler auf, bedeutet dies, dass der Kernel nicht mit dem Citrix Modul konsistent ist und neu erstellt werden muss.

Neuerstellen des VHCI-Kernelmoduls

Wenn das Kernelmodul nicht mit der Citrix Version konsistent ist führen Sie die folgenden Schritte aus:

1. Erstellen Sie das VHCI-Kernelmodul. Laden Sie den VHCI-Quellcode von der Projektseite herunter.

2. Erstellen Sie das Kernelmodul basierend auf den Headerdateien und der Datei Module.symvers. Installieren Sie die Kernelheaderdateien und erstellen Sie Module.symvers mit dem für Ihre Linux-Distribution geltenden Befehl:

RHEL 7.2

command Kopieren

yum install kernel-devel

RHEL 6.8

command Kopieren

yum install kernel-headers

SUSE 12.1

command Kopieren

zypper install kernel-devel

zypper install kernel-source

SUSE 11.4

command Kopieren

zypper install kernel-source

Tipp

Wird die Installation erfolgreich abgeschlossen, dann gibt es nun einen Kernelordner, der in etwa folgenden Pfad hat:

/usr/src/kernels/3.10.0-327.10.1.el7.x86_64

3. Vergewissern Sie sich, dass im Ordner /usr/src/kernels/3.10.0-327.10.1.el7.x86_64 die Datei Module.symvers enthalten ist. Ist die nicht der Fall, müssen Sie den Kernel erstellen um sie zu erhalten (z. B., make oldconfig; make prepare;make modules;make) oder die Datei aus /usr/src/kernels/3.10.0-327.10.1.el7.x86_64-obj/x86_64/defaults/module* kopieren.  

4. vhci-hcd-1.15/Makefile, ändern Sie die Makefile von VCHI, legen Sie KDIR auf das Kernelverzeichnis fest: 

command Kopieren

#KDIR = $(BUILD_PREFIX)/lib/modules/$(KVERSION)/build

KDIR = /usr/src/kernels/3.10.0-327.10.1.el7.x86_64

5. cd vhci-hcd-1.15/ and make; Erstellen des VHCI-Kernels.

Hinweis

War die Erstellung erfolgreich, werden usb-vhci-iocifc.ko und usb-vhci-hcd.ko im Verzeichnis vhci-hcd-1.15/ erstellt.

6. Ersetzen Sie das Kernelmodul durch das neu erstellte: cp -f usb-vhci-*.ko /opt/Citrix/VDA/lib64/

7. Starten Sie den USB-Dienst neu: service ctxusbsd restart

8. Melden Sie sich bei der Sitzung ab und wieder an. Überprüfen Sie, ob die USB-Umleitung funktioniert.

Bekannte Probleme

  • Bereitstellung eines umgeleiteten USB-Datenträgers kann nicht aufgehoben werden: Der Linux VDA verwaltet die Zugriffsteuerung für die USB-Datenträger aller von Citrix Receiver umgeleiteten USB-Geräte unter Verwendung von Administratorrechten, damit nur der Besitzer eines umgeleiteten Geräts darauf zugreifen kann. Daher können Benutzer die Bereitstellung eines Geräts ohne Administratorrechte nicht aufheben.
localized image
  • Bei Beenden der Umleitung eines USB-Datenträgers geht eine Datei verloren:  Wenn Sie einen USB-Datenträger in eine Sitzung umleiten, eine Änderung daran ausführen (z. B. eine Datei auf dem Datenträger erstellen) und die Umleitung dann über die Receiver-Symbolleiste sofort beenden, kann die erstellte (oder eine sonstige geänderte) Datei verloren gehen. 

Dieses Problem tritt auf, weil beim Schreiben von Daten in ein Dateisystem der Speichercache im Dateisystem eingebunden wird und die Daten nicht auf den Datenträger selbst geschrieben werden. Wenn Sie die Umleitung über die Receiver-Symbolleiste beenden, bleibt keine Zeit zur Übertragung der Daten auf den Datenträger und die Daten gehen verloren. 

Zur Problemlösung verwenden Sie, wenn Sie Daten auf einen Datenträger geschrieben haben, den Synchronisierungsbefehl in einem Terminal, um die Daten auf den Datenträger zu übertragen, und beenden Sie erst dann die USB-Umleitung.

localized image

Unterstützte USB-Geräte

Bei den folgenden Geräten wurde die ordnungsgemäße Funktion mit dieser Version des Linux VDA in Tests verifiziert. Andere Geräte können verwendet werden, jedoch können unerwartete Ergebnisse auftreten.

USB-MassenspeichergerätHersteller-ID:Produkt-IDDateisystem
Netac Technology Co., Ltd0dd8:173cFAT32
Kingston Datatraveler 101 II0951:1625FAT32
Kingston Datatraveler GT101 G21567:8902FAT32
SanDisk SDCZ80-Flashlaufwerk0781:5580FAT32
SanDisk Cruzer 16 GB1058:10B8FAT32
WD-Festplatte 0781:5567FAT32

 

USB-3D-MausHersteller-ID:Produkt-ID
3DConnexion SpaceMouse Pro      046d:c62b  

 

USB-ScannerHersteller-ID:Produkt-ID
Epson Perfection V330 Photo       04B8:0142