Product Documentation

Configurer la redirection USB

Feb 26, 2018

Les périphériques USB sont partagés entre Citrix Receiver et le bureau VDA Linux. Une fois qu'un périphérique USB a été redirigé sur le bureau, les utilisateurs peuvent utiliser le périphérique USB comme s'il était connecté localement.  

La redirection USB contient trois domaines de fonctionnalité :

  • Open Source Project Implementation (VHCI)
  • Service VHCI
  • Service USB

Open source VHCI

Cette partie de la fonctionnalité de redirection USB développe un système de partage de périphérique USB général sur un réseau IP. Elle comprend un pilote noyau Linux et des bibliothèques en mode utilisateur, ce qui vous permet de communiquer avec le pilote noyau pour obtenir toutes les données USB. Dans la mise en œuvre du VDA Linux, Citrix réutilise le pilote noyau de VHCI. Toutefois tous les transferts de données USB entre le VDA Linux et Citrix Receiver sont encapsulés dans le protocole ICA de Citrix.

Service VHCI

Le service VHCI est un service open source fourni par Citrix pour communiquer avec le module noyau VHCI. Ce service fonctionne en tant que passerelle entre VHCI et le service USB Citrix.

Service USB

Le service USB représente un module Citrix qui gère tous les transferts de données et de virtualisation sur le périphérique USB.

Fonctionnement de la redirection USB

En général, si un périphérique USB n'est pas redirigé correctement sur le VDA Linux, un ou plusieurs nœuds de périphérique sont créés dans le chemin d'accès system/dev. Toutefois, dans certains cas, le périphérique redirigé ne peut pas être utilisé par une session VDA Linux active. Les périphériques USB s'appuient sur des pilotes pour fonctionner correctement (et certains périphériques requièrent des pilotes spéciaux) ; dans certains cas, les pilotes ne sont pas fournis et les périphériques USB redirigés sont alors inaccessibles dans une session VDA Linux active. Dans de telles situations, les pilotes doivent être installés et le système doit être correctement configuré pour assurer la connectivité du périphérique USB.

Le VDA Linux prend en charge une liste de périphériques USB qui peuvent être redirigés vers et depuis le client. En outre, le périphérique est correctement monté, notamment le disque USB, ce qui permet à l'utilisateur d'accéder au disque sans aucune configuration supplémentaire.

Configurer la redirection USB

Une stratégie Citrix détermine si la redirection de périphérique USB est activée ou désactivée. En outre, le type de périphérique peut également être spécifié à l'aide d'une stratégie Delivery Controller. Lors de la configuration de la redirection USB pour les VDA Linux, les stratégies et règles suivantes doivent être configurées :

  • Stratégie de redirection de périphérique USB client
  • Règles de redirection des périphériques USB clients

Activer la stratégie de redirection USB

Dans Citrix Studio, activez (ou désactivez) la redirection de périphérique USB vers et depuis le client (hôtes de station de travail uniquement).

Dans la boîte de dialogue Modifier le paramètre :

  1. Sélectionnez Autorisé.
  2. Cliquez sur OK.
localized image

Définir des règles de redirection USB

Après activation de la stratégie de redirection USB, définissez les règles de redirection à l'aide de Citrix Studio en spécifiant les périphériques qui sont autorisés (ou interdits) sur le VDA Linux.

Dans la boîte de dialogue Règles de redirection de périphérique USB client :

  1. Cliquez sur Nouveau pour ajouter une règle de redirection, ou cliquez sur Modifier pour afficher une règle existante. 
  2. Après création (ou modification) d'une règle, cliquez sur OK.
localized image

Pour de plus amples informations sur la configuration de la redirection USB générique, reportez-vous au Guide de configuration de la redirection USB générique Citrix.

Résolution des problèmes de redirection USB

Utilisez les informations de cette section pour résoudre les problèmes que vous pourriez rencontrer lors de l'utilisation du VDA Linux.

Aucun périphérique sur la barre d'outils de Receiver

Dans certains cas, vous ne pouvez pas voir les périphériques figurant sur la barre d'outils de Citrix Receiver, ce qui indique qu'aucune redirection USB n'est en cours. Si cela se produit, vérifiez les points suivants :

  • La stratégie est configurée pour permettre la redirection USB.
  • Le module du noyau est compatible avec votre noyau.    
localized image

Les périphériques USB sont affichés dans la barre d'outils de Receiver, mais avec la mention Limité par une stratégie, ce qui entraîne l'échec de la redirection

Ce problème se produit en raison de la configuration de la stratégie du périphérique. Dans ce cas :

  • configurer la stratégie du VDA Linux pour activer la redirection
  • Vérifiez si des restrictions de stratégie supplémentaires sont configurées dans le registre Receiver ; un périphérique peut être bloqué par le paramètre de registre Receiver. Vérifiez DeviceRules dans le chemin d'accès du registre pour vous assurer que ce paramètre n'interdit pas l'accès au périphérique :

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

Pour de plus amples informations, consultez la section Comment configurer la redirection automatique des périphériques USB sur le site de support de Citrix.

Un périphérique USB est redirigé correctement, mais je ne peux pas l'utiliser dans ma session 

Dans la plupart des cas, seuls les périphériques USB figurant dans la liste des périphériques pris en charge peuvent être redirigés. Toutefois, dans certains cas, d'autres types de périphériques peuvent être redirigés dans une session VDA Linux active. Dans ce cas, pour chaque périphérique redirigé, un nœud appartenant à l'utilisateur est créé dans le chemin d'accès /dev système. Toutefois, ce sont les pilotes et la configuration qui déterminent si l'utilisateur peut utiliser le périphérique. Si un périphérique vous appartenant (branché) n'est pas accessible, ajoutez-le à une stratégie sans restriction.

Remarque

Dans le cas des lecteurs USB, le VDA Linux configure et monte le disque. L'utilisateur (et seul l'utilisateur qui l'a installé) peut accéder au disque sans aucune configuration supplémentaire. Cela peut ne pas être possible avec les périphériques qui ne se trouvent pas dans la liste des périphériques pris en charge.

Créer le module noyau VHCI

La redirection USB dépend des modules noyau VHCI (usb-vhci-hcd.ko et usb-vhci-iocif.ko). Ces modules font partie de la distribution de VDA Linux (inclus dans le package RPM). Ils sont compilés selon les noyaux de distribution Linux officiels et sont indiqués dans le tableau ci-dessous :

Distribution Linux prise en charge

Version du noyau

RHEL 6.9

2.6.32-696.10.3.el6.x86_64

RHEL 7.3

3.10.0-514.el7.x86_64

SUSE 12.3

4.4.73-5-default

Ubuntu 16.04

4.4.0-45-generic

Important

Si le noyau de votre machine n'est pas compatible avec le pilote créé par Citrix pour les VDA Linux, le service USB peut ne pas parvenir à démarrer. Dans ce cas, vous ne pouvez pas utiliser la fonctionnalité de redirection USB, sauf si vous créez vos propres modules noyau VHCI.

Vérifier que votre noyau est cohérent avec les modules créés par Citrix

Sur la ligne de commande, exécutez la commande suivante pour vérifier si le noyau est cohérent :

commande Copier

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

Si la commande s'exécute correctement, le module noyau a été chargé avec succès et la version est cohérente avec celle installée par Citrix.

Si la commande s'exécute avec des erreurs, le noyau n'est pas cohérent avec le module et doit être recréé.

Recréer le module noyau VHCI

Si votre module noyau n'est pas cohérent avec la version Citrix, procédez comme suit :

1. Téléchargez le code source LVDA depuis le site de téléchargement de Citrix. Sélectionnez le fichier contenu dans la section « Linux Virtual Delivery Agent (sources). »

2. Restaurez les fichiers depuis le fichier citrix-linux-vda-sources.zip ; les fichiers source VHCI sont disponibles dans linux-vda-souces/vhci-hcd-1.15.tar.bz2 ; vous pouvez restaurer les fichiers VHCI à l’aide de tar xvf vhci-hcd-1.15.tar.bz2.

3. Créez le module noyau en fonction des fichiers d'en-tête et du fichier Module.symvers. Utilisez les étapes suivantes pour installer les fichiers d'en-tête du noyau et créer le fichier Module.symvers en fonction de la distribution Linux appropriée :

RHEL/CentOS

commande Copier

yum install kernel-devel

SUSE 12

commande Copier

zypper install kernel-devel

zypper install kernel-source

Ubuntu 16.04

commande Copier

apt-get install linux-headers

Conseil

Si l'installation réussit, un dossier de noyau similaire au suivant est créé :

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

4. Dans le dossier /usr/src/kernels/3.10.0-327.10.1.el7.x86_64, vérifiez que le fichier Module.symvers est présent. Si le fichier ne figure pas dans le dossier, vous devez créer le noyau pour obtenir ce fichier (par exemple, make oldconfig; make prepare;make modules;make) ou le copier depuis /usr/src/kernels/3.10.0-327.10.1.el7.x86_64-obj/x86_64/defaults/module.*  

5. Dans le fichier vhci-hcd-1.15/Makefile , modifiez le Makefile de VCHI et définissez KDIR sur le répertoire du noyau :

commande Copier

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

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

6.  Dans le dossier vhci-hcd-1.15/, exécutez make pour créer le noyau VHCI.

Remarque

Si la création a réussi, usb-vhci-hcd.ko et usb-vhci-iocifc.ko sont créés dans le dossier vhci-hcd-1.15/.

7. Remplacez le module noyau par la version nouvellement créée : cp -f usb-vhci-*.ko /opt/Citrix/VDA/lib64/

8. Redémarrez le service USB : service ctxusbsd restart

9. Fermez, puis rouvrez la session. Vérifiez si la redirection USB fonctionne.

Périphériques USB pris en charge

Les périphériques suivants ont été testés avec cette version de VDA Linux. D'autres périphériques peuvent être utilisés, avec des résultats imprévisibles :

Périphérique de stockage de masse USB VID:PID Système de fichiers
Netac Technology Co., Ltd 0dd8:173c FAT32
Kingston Datatraveler 101 II 0951:1625 FAT32
Kingston Datatraveler GT101 G2 1567:8902 FAT32
Lecteur Flash SanDisk SDCZ80 0781:5580 FAT32
SanDisk Cruzer 16GB 1058:10B8 FAT32
WD HDD  0781:5567 FAT32

 

Souris 3D USB VID:PID
3DConnexion SpaceMouse Pro   046d: c62b

 

Scanner USB VID:PID
Epson Perfection V330 photo        04B8: 0142  

Problèmes connus

Impossible de démonter le disque USB redirigé. Pour le contrôle d'accès de tous les disques USB redirigés à partir de Citrix Receiver, le VDA Linux gère tous ces périphériques sous privilèges d'administrateur afin de garantir que seul le propriétaire peut accéder au périphérique redirigé. Par conséquent, l'utilisateur n'est pas autorisé à démonter le périphérique sans privilèges d'administrateur.

localized image

Perte de fichier lorsque vous arrêtez la redirection d'un disque USB.  Si vous redirigez un disque USB dans une session, essayez de le modifier (par exemple, en créant des fichiers sur le disque), puis arrêtez de le rediriger immédiatement à l'aide de la barre d'outils de Receiver, le fichier que vous avez modifié (ou créé) peut être perdu. 

Ce problème se produit car, lors de l'écriture de données dans un système de fichiers, le système monte le cache mémoire dans le système de fichiers, les données ne sont pas écrites sur le disque lui-même. Si vous arrêtez la redirection à l'aide de la barre d'outils de Receiver, les données n'ont pas le temps d'être purgées vers le disque, ce qui entraîne une perte de données. 

Pour résoudre ce problème, chaque fois que vous écrivez des données dans le disque, utilisez la commande de synchronisation dans un terminal pour purger les données vers le disque, puis arrêtez la redirection USB.

localized image